2016-01-10 77 views
5

我试图将HSV图像分割成它的通道,改变它们并将它们合并回来,但是一旦我运行合并功能,通道就被解释为RBG通道,例如对于下面的例子,我得到一个黄色的图像,在Python中的OpenCV 3中合并HSV通道

import cv2 

image = cv2.imread('example.jpg') 
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) 
h, s, v = cv2.split(hsv_image) 
s.fill(255) 
v.fill(255) 
hsv_image = cv2.merge([h, s, v]) 

cv2.imshow('example', hsv_image) 
cv2.waitKey() 

在OpenCV 3中使用Python做到这一点的正确方法是什么?

回答

7

图像始终显示为BGR。如果你想显示你的HSV图像,你需要先转换成BGR:

import cv2 

image = cv2.imread('example.jpg') 
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) 
h, s, v = cv2.split(hsv_image) 
s.fill(255) 
v.fill(255) 
hsv_image = cv2.merge([h, s, v]) 

out = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR) 

cv2.imshow('example', out) 
cv2.waitKey() 
+0

谢谢!我想我对OpenCV如何在内部管理渠道有错误的概念,现在它就像一种魅力! –