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);
Другие вопросы по тегам