Отдельные каналы hsv в opencv

У меня есть файл hsv mat в opencv, и я хочу разделить каналы. Я нашел cvSplit (hsv, h, s, v, NULL), но он не работает с файлами Mat. Как тогда сохранить только первый канал h из файла изображения Mat?? Мой результат выше. В основном это изображение, которое я конвертирую, я вижу лицо, но в странных тонах.

ч канал

Используемый код:

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

person Jose Ramon    schedule 09.01.2014    source источник


Ответы (1)


Вы можете просто использовать split:

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

каналы[0], каналы[1], каналы[2] будут содержать ваши H, S, V соответственно.

person Tomas Camin    schedule 09.01.2014
comment
imshow(h канал,каналы[0]); Я получаю в результате странное изображение. Это из-за конвертации?? - person Jose Ramon; 09.01.2014
comment
Хорошо, в основном я думаю, что канал значений ближе к изображению в оттенках серого, что на самом деле то, что я хочу. - person Jose Ramon; 09.01.2014
comment
вот разные цветовые модели и их каналы: blog.patdavid.net/2012/12/ - person Micka; 09.01.2014