最近的对图像数据进行处理的时候需要将图像中的某个颜色替换为另一个颜色,但是网络上找到的方法都是通过对图像的遍历进行替换,有点浪费时间,这篇文章主要介绍了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实现图像快速替换颜色的方法的全部内容了,赶紧动手去实践一下吧 。
推荐阅读
- Python中如何安装MongoDB数据库?如何对MongoDB数据库进行安装操作?
- Python3如何安装第三方模块?Python3使用pip安装库的命令是什么
- Python中的Pickle库该如何使用?pickle与json之间有什么区别?
- 如何对Python函数重新定义?Python函数重新定义的方法
- python安装pil库方法 Python中pil库安装的简单教程
- print函数可以输出哪些内容?Python函数print如何使用?
- 关于残疾老奶奶装马腿一事,官方是如何回应的?
- Python怎么改shell界面背景颜色?Python工具shell的背景如何修改
- PPT中如何调整显示比例?
- PPT背景边框如何添加花边?