Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Colors 用openCV检测颜色空间_Colors_Opencv_Space - Fatal编程技术网

Colors 用openCV检测颜色空间

Colors 用openCV检测颜色空间,colors,opencv,space,Colors,Opencv,Space,如何使用openCV查看图像的颜色空间 在使用CVTColor()函数转换为另一个之前,我想确认它是RGB 很遗憾,OpenCV没有提供任何关于IplImage结构中颜色空间的指示,因此如果您盲目地从某处拾取IplImage,就无法知道它是如何编码的。此外,没有任何算法可以明确地告诉您图像是否应该解释为HSV vs.RGB-对于机器来说,这只是一堆字节(应该是HSV还是RGB?)。我建议你把你的IPLIGION包在另一个结构中(或者甚至是带有模板的C++类),以帮助你跟踪这些信息。如果你真的很绝

如何使用openCV查看图像的颜色空间

在使用CVTColor()函数转换为另一个之前,我想确认它是RGB


很遗憾,OpenCV没有提供任何关于IplImage结构中颜色空间的指示,因此如果您盲目地从某处拾取IplImage,就无法知道它是如何编码的。此外,没有任何算法可以明确地告诉您图像是否应该解释为HSV vs.RGB-对于机器来说,这只是一堆字节(应该是HSV还是RGB?)。我建议你把你的IPLIGION包在另一个结构中(或者甚至是带有模板的C++类),以帮助你跟踪这些信息。如果你真的很绝望,并且只处理特定类型的图像(室外场景、办公室、人脸等),你可以尝试计算图像的一些统计数据(例如,为自然RGB图像和自然HSV图像构建直方图统计数据),然后尝试通过比较图像更接近哪个颜色空间来对完全未知的图像进行分类。

有一个名为
colorModel
的字段,由4个字符组成。不幸的是,OpenCV忽略了这个字段。但您可以使用此字段跟踪不同的颜色模型。

txandi提出了一个有趣的观点。OpenCV有一个默认使用的BGR颜色空间。这与RGB颜色空间类似,不同之处在于B和R通道在图像中进行物理切换。如果物理通道顺序对您很重要,您将需要使用以下功能转换图像:cvCvtColor(defaultBGR、imageRGB、CV_BGR2RGB)。

如上所述,除非您对图像内容有先验知识,否则无法通过检查三个颜色通道以编程方式检测颜色空间(例如,图像中有一个颜色已知的标记)。如果要接受来自未知来源的图像,则必须允许用户指定其图像的颜色空间。默认情况下,最好采用RGB


如果在显示之前修改任何像素颜色,并且使用的是非OpenCV查看器,则可能应该使用
CVTColor(src、dst、CV_BGR2RGB)
在您运行完所有颜色过滤器后。如果您正在使用OpenCV作为查看器或将图像保存到文件中,则应确保它们位于BGR颜色空间中。

我基本上分割通道并显示每个通道,以计算出我正在使用的图像的颜色空间。这可能不是最好的方法,但它可以工作这是给我的

有关详细说明,请参阅以下链接


谢谢,所以这些照片是由使用谷歌android的智能手机拍摄的。我想它们是RGB图像,对吗?RGB是最常见的颜色空间,对吗?谢谢,如果不实际显示图像,真的没有办法分辨,但我认为RGB是一个非常安全的假设——这是大多数人在拍摄时想到的y谈论三通道颜色空间。如果是其他颜色空间,我会非常惊讶。我看到下面你正在从手机中提取图像。它们是什么格式的?听起来你不再像是在提取实际的
IplImage
structs——你是如何将图像导入OpenCV的?甚至我都想知道我拍摄的图像是否是om我的网络摄像头保存为RGB或BGR?(您是否碰巧找到了解决方案?)链接现在已断开。在opencv4中不再可用