我正在尝试获取图像的红色通道颜色空间,目前我的方法是获得一张灰度图像:
img = img[:,:,2]
但是我想要这样的一张图片:
上面的图片是红色通道颜色空间图像,下面的是原始图像。到底是通过什么方式实现了这个效果?
我也尝试过
img[:,:,0] = 0
img[:,:,1] = 0
但是所得到的结果并不如预期。这里有一篇关于红色通道颜色空间的文章:https://en.wikipedia.org/wiki/RG_color_space。
我正在尝试获取图像的红色通道颜色空间,目前我的方法是获得一张灰度图像:
img = img[:,:,2]
但是我想要这样的一张图片:
上面的图片是红色通道颜色空间图像,下面的是原始图像。到底是通过什么方式实现了这个效果?
我也尝试过
img[:,:,0] = 0
img[:,:,1] = 0
RG
(红绿)颜色空间图像,只需抛弃蓝色通道即可。img[:,:,0] = 0
img = cv2.imread('origin.png')
im_color = cv2.applyColorMap(img, cv2.COLORMAP_HSV)
cv2.imshow('mapped_image', im_color)
# cv2.imwrite('result.png', im_color)
cv2.waitKey(0)
这里是所有OpenCV的颜色映射(COLORMAP):print [sub for sub in dir(cv2) if sub.startswith('COLORMAP_')]
['COLORMAP_AUTUMN', 'COLORMAP_BONE', 'COLORMAP_COOL', 'COLORMAP_HOT', 'COLORMAP_HSV', 'COLORMAP_JET', 'COLORMAP_OCEAN', 'COLORMAP_PINK', 'COLORMAP_RAINBOW', 'COLORMAP_SPRING', 'COLORMAP_SUMMER', 'COLORMAP_WINTER']
使用自定义查找表进行颜色映射的示例,使用cv2.LUT()
:
table = np.array([( i * invert_value) for i in np.arange(256)]).astype("uint8")
cv2.LUT(image, table)
cv2.LUT()
会给我一个数组,我应该构建一个颜色映射表还是什么?如果不需要,那么cv2.LUT()
的输出数组有什么用处? - user4414636
img[:,:,0] = 0
。 - Miki