Я пытаюсь извлечь и отобразить
Канал Y из преобразованного изображения YUV
Мой код выглядит следующим образом:
Mat src, src_resized, src_gray;
src = imread("11.jpg", 1);
resize(src, src_resized, cvSize(400, 320));
cvtColor(src_resized, src_resized, cv::COLOR_BGR2RGB);
/*
I've tried both with and without the upper conversion
(mentioned here as bug
http://stackoverflow.com/questions/7954416/converting-yuv-into-bgr-or-rgb-in-opencv
in an opencv 2.4.* version - mine is 2.4.10 )
*/
cvtColor(src_resized, src_gray, CV_RGB2YUV); //YCrCb
vector<Mat> yuv_planes(3);
split(src_gray,yuv_planes);
Mat g, fin_img;
g = Mat::zeros(Size(src_gray.cols, src_gray.rows),0);
// same result withg = Mat::zeros(Size(src_gray.cols, src_gray.rows), CV_8UC1);
vector<Mat> channels;
channels.push_back(yuv_planes[0]);
channels.push_back(g);
channels.push_back(g);
merge(channels, fin_img);
imshow("Y ", fin_img);
waitKey(0);
return 0;
В результате я ожидал серого изображения, показывающего люминесценцию.
Вместо этого я получаю изображение канала B/G/R в зависимости от положения (первого/второго/третьего)
channels.push_back(yuv_planes[0]);
как показано здесь: а>
Что мне не хватает? (Я планирую использовать яркость для суммирования строк/столбцов и последующего извлечения номерного знака с использованием полученных данных)