当我在示例图像(RGB)上运行以下代码,然后对其进行处理以显示转换后的 HSV 图像时,两者似乎不同......
谁能解释为什么会发生这种情况?
OR
你能建议一个解决方案来避免这种情况发生吗...因为毕竟是同一张图像
Mat img_hsv,img_rgb,red_blob,blue_blob;
img_rgb = imread("pic.png",1);
cvtColor(img_rgb,img_hsv,CV_RGB2HSV);
namedWindow("win1", CV_WINDOW_AUTOSIZE);
imshow("win1", img_hsv);
我还不太了解新的(2.x)OpenCV,但通常 OpenCV 中加载的图像采用 CV_BGR 通道顺序而不是 RGB,因此您很可能需要 CV_BGR2HSV
OpenCV 实际上并不“了解”HSV,它只会在第一个通道中编码色调,在第二个通道中编码饱和度,在第三个通道中编码值。如果您在 OpenCV 中显示图像,highgui 会假定它是 BGR 图像,从而将第一个通道(现在的色调)解释为蓝色等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)