Python如何实现对图像进行颜色替换?python实现图像快速替换颜色的方法

最近的对图像数据进行处理的时候需要将图像中的某个颜色替换为另一个颜色,但是网络上找到的方法都是通过对图像的遍历进行替换,有点浪费时间,这篇文章主要介绍了Python如何实现对图像进行颜色替换?python实现图像快速替换颜色的方法,具有很好的参考价值,希望对大家有所帮助,下面一起来看看吧!

Python如何实现对图像进行颜色替换?python实现图像快速替换颜色的方法

文章插图
如果我们需要将一张图片替换为我们自己想要的颜色,我们可以使用的方法就是通过遍历的操作来进行颜色替换,但是这种方式有点影响操作的速度,下面的代码是通过遍历的方式进行替换的,代码如下:
def replace_color_tran(img, src_clr, hh):    img_arr = np.asarray(img, dtype=np.double)    dst_arr = img_arr.copy()    for i in range(img_arr.shape[1]):           for j in range(img_arr.shape[0]):            if (img_arr[j][i] == src_clr)[0] == True:                dst_arr[j][i] = hh    return np.asarray(dst_arr, dtype=np.uint8)上面的代码就是将一个图像通过遍历的操作来进行颜色的替换,它的替换方式是逐一替换,src_clr表示的是一个需要被替换的颜色,它包含了三种,方便是r、g、b,目标的颜色是hh,最后会对一个替换后的矩阵进行返回 。
【Python如何实现对图像进行颜色替换?python实现图像快速替换颜色的方法】还可以通过矩阵的方式进行对图片的颜色进行替换,这个方法替换的速度会比通过遍历的方法进行替换要快很多,具体的操作方法就是先将一个图形进行拆分,分成不同的三个管道,分别是R、G、B 。然后在使这三个管道进行简单的编码,合并成为一个管道,在矩阵中对颜色进行索引,最后将合并好的管道作为一个图形数据进行输出,代码如下:
def replace_color(img, src_clr, hh):img_arr = np.asarray(img, dtype=np.double)  r_img = img_arr[:,:,0].copy()  g_img = img_arr[:,:,1].copy()  b_img = img_arr[:,:,2].copy()  img = r_img * 256 * 256 + g_img * 256 + b_img  src_color = src_clr[0] * 256 * 256 + src_clr[1] * 256 + src_clr[2] #编码  r_img[img == src_color] = hh[0]  g_img[img == src_color] = hh[1]  b_img[img == src_color] = hh[2]  dst_img = np.array([r_img, g_img, b_img], dtype=np.uint8)  dst_img = dst_img.transpose(1,2,0)  return dst_img以上就是有关python如何实现对图像进行颜色替换?python实现图像快速替换颜色的方法的全部内容了,赶紧动手去实践一下吧 。

    推荐阅读