Как уже объяснялось здесь, нет смысла отображать изображение сразу после его преобразования в HSV, однако вот пример того, как можно использовать канал V:
Если вы хотите извлечь толькоV-канал, вы можете использовать cvtColor
и использовать 3-й (V) канал из изображения HSV, чтобы установить интенсивность оттенков серого для этого изображения:
Mat grayImg, hsvImg;
cvtColor(img, grayImg, CV_BGR2GRAY);
cvtColor(img, hsvImg, CV_BGR2HSV);
uchar* grayDataPtr = grayImg.data;
uchar* hsvDataPtr = hsvImg.data;
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.cols; j++)
{
const int hi = i*img.cols*3 + j*3,
gi = i*img.cols + j;
grayDataPtr[gi] = hsvDataPtr[hi + 2];
}
}
imshow("V-channel", grayImg);