以前,我成功的用mathematica把RGB图片的色彩进行了分离。这里所说的色彩分离,并不是把图片分离为灰度图,而是把某个通道的像素值全部置零,这样就能够单独显示剩下的颜色。本文,用python实现这个效果。
工具/原料
1
电脑
2
python3.0+
方法/步骤
1
用opencv模块读取图片数据:import cv2from numpy import *a = cv2.imread('a.jpg')print(a)得到一个三维矩阵。
2
查看图片的大小:b = a.shape
3
用numpy模块构造一个二维0矩阵,规模和图像的大小一样:c = zeros(list(b[:2]))
4
把图片的第一个通道的像素值置零,就相当于去掉了图片的蓝色:a[:,:,0] = c
5
如果想单独分离出绿色,还需要把第三个通道的像素值置零:a[:,:,0] = ca[:,:,2] = c
6
单独显示红色:a[:,:,0] = ca[:,:,1] = c
7
去掉红色:a[:,:,2] = c
8
其实,不构造零矩阵也是可以的,这样就不用调用numpy模块了。
注意事项
以前没成功,可能是某些细节没注意到。