OpenCV - RGB 到 HSV 并返回到 RGB?

OpenCV - RGB to HSV and back to 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 时,结果不正确。

知道为什么吗? 谢谢!

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

应该是(注意它是 BGR2HSV 而不是 RGB2HSV)

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