OpenCV - RGB в HSV и обратно в RGB?
У меня есть изображение, которое я хочу конвертировать из RGB в HSV, а затем обратно в RGB.
Вот как я это делаю:
Mat frame1, frame2, frame3;
cvtColor(frame1, frame2, CV_RGB2HSV);
cvtColor(frame2, frame3, CV_HSV2BGR);
namedWindow("origin", CV_WINDOW_AUTOSIZE);
namedWindow("rgb2hsv", CV_WINDOW_AUTOSIZE);
namedWindow("hsv2rgb", CV_WINDOW_AUTOSIZE);
imshow("origin", frame1);
imshow("rgb2hsv", frame2);
imshow("hsv2rgb", frame3);
Я считаю, что получаю правильный результат, когда я конвертирую из RGB в HSV. Однако, когда я конвертирую это преобразованное изображение обратно в RGB, это дает мне неверный результат.
Есть идеи почему? Спасибо!
1 ответ
Решение
cvtColor(frame1, frame2, CV_RGB2HSV);
cvtColor(frame2, frame3, CV_HSV2BGR);
должно быть (обратите внимание, что это BGR2HSV вместо RGB2HSV)
cvtColor(frame1, frame2, CV_BGR2HSV);
cvtColor(frame2, frame3, CV_HSV2BGR);