2014-01-09 2 views
0

opencv에 hsv mat 파일이 있는데 채널을 분리하고 싶습니다. cvSplit (hsv, h, s, v, NULL)을 찾았지만 Mat 파일에서는 작동하지 않습니다. 그런 다음 매트 이미지 파일의 첫 번째 채널 만 유지하는 방법은 무엇입니까 ?? 내 결과는 위와 같습니다. 기본적으로 내가 변환 한 이미지는 얼굴을 볼 수 있지만 이상한 색조가 있습니다.opencv에서 별도의 hsv 채널

h channel

코드를 사용 :

cvtColor(cropped_rgb, cropped_hsv, CV_BGR2HSV); 
    split(cropped_hsv, channels); 
    cropped_hsv = channels[0]; 
    imshow("cropped_hsv", cropped_hsv); 

답변

10

당신은 단순히 split를 사용할 수 있습니다

Mat hsv; 
vector<Mat> channels; 
split(hsv, channels); 

채널 [0], 채널 [1], 채널 [2]이 포함됩니다 H, S, V를 각각 나타낸다.

+0

imshow ("h channel", channels [0]); 나는 이상한 이미지를 얻는다. 그것은 전환 때문입니까 ?? –

+0

기본적으로 값 채널은 gray_scale 이미지에 더 가깝다고 생각합니다. 실제로는 원하는 부분입니다. –

+0

여기에 다른 색상 모델과 채널이 있습니다. http://blog.patdavid.net/2012/12/getting-around-in-gimp-black-and-white30.html – Micka