2016-01-10 20 views
5

Bir HSV görüntüsünü kanallarına ayırmaya çalışıyorum, değiştiririm ve onları birleştirir, ancak birleştirme işlevini çalıştırdığımda kanallar RBG kanalları olarak yorumlanır, örneğin Ben sarı bir görüntü elde aşağıdaki örnekte,Python'da OpenCV 3 altında HSV kanallarını birleştirme

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() 

Python kullanarak OpenCV 3'te bunu yapmanın doğru yolu nedir için?

cevap

7

Görüntüler her zaman BGR oldukları gibi görüntülenir. HSV görüntüsünü göstermek istiyorsanız, önce BGR'ye dönüştürmeniz gerekir:

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

Teşekkürler! OpenCV'nin kanalları içsel olarak nasıl yönetdiği konusunda yanlış bir fikre sahip olduğumu düşünüyorum, şimdi bir çekicilik gibi çalışıyor! –