2016-03-08 124 views
0

我有一个图像,我想从RGB转换为HSV,然后回到RGB。OpenCV - 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时,它给了我一个不正确的结果。

任何想法为什么? 谢谢!

回答

3
cvtColor(frame1, frame2, CV_RGB2HSV); 
cvtColor(frame2, frame3, CV_HSV2BGR); 

应为(注意这是BGR2HSV代替RGB2HSV)

cvtColor(frame1, frame2, CV_BGR2HSV); 
cvtColor(frame2, frame3, CV_HSV2BGR); 
+0

真!这是尴尬的不能相信我没有注意到..谢谢! – Gambit2007