2016-01-10 237 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如何在內部管理渠道有錯誤的概念,現在它就像一種魅力! –