Я хочу разделить YCrCb на каналы Y, Cr и Cb.Разделение изображения YCrCb на его каналы интенсивности
Код работает хорошо, но когда я показываю каналы с imshow("Y", y)
для каждого Y, Cr, Cb, все каналы выглядят серыми.
Только Y-канал должен быть серым, другие должны быть красочными. Я прав? Или в чем проблема с кодом?
Mat RGBImage;
RGBImage = imread("xx.jpg");
cvtColor(RGBImage, YCrCb, CV_RGB2YCrCb);
vector<Mat> ycc_planes;
split(YCrCb, ycc_planes);
Mat y = ycc_planes[0];
Mat Cr = ycc_planes[1];
Mat Cb = ycc_planes[2];
Моя конечная цель заключается в применении средний фильтр Y компонента изображения, а затем изменить его обратно в RGB с объединением других компонентов (Cr и Cb). Наконец, я собираюсь получить размытую версию оригинального изображения RGB. Однако мой средний фильтр возвращает всегда серое размытое изображение. Хотя это может быть так из-за того, что мои компоненты Cr, Cb серые.
Вы разбивая трехканальное изображение на 3 1-канальные изображения. 1-канальные изображения имеют оттенки серого и будут отображаться как серый-sh. Тот факт, что их значения пикселей на самом деле является информацией о цвете, не имеет значения, они все еще имеют оттенки серого. Итак, ваш код в порядке, только ваша интерпретация неверна. – Miki
Что я должен добавить в свой код, чтобы сделать их яркими[email protected] – Blu
'cvtColor (RGBImage, YCrCb, CV_BGR2YCrCb);' возможно, лучше – sturkmen