我怎么能看到我的OpenCV的图像的色彩空间?

我想,以确保它是RGB,之前转换为使用cvCvtColor()函数

另一个

感谢

有帮助吗?

解决方案

不幸的是,OpenCV的不提供任何形式的指示以在结构的IplImage色彩空间,所以如果你一味地拿起一个来自IplImage的某处有只是没有办法知道它是如何编码。此外,没有算法可以肯定地告诉你,如果图像应该被解释为HSV与RGB - 这一切都只是一堆字节到机器(应的是HSV或RGB?)。我建议你换你IplImages在另一个结构(甚至与模板的C ++类!),以帮助您跟踪这些信息。如果你真的绝望了,你就用某种类型的图片(室外场景,办公室,面等)只处理你可以尝试计算您的影像一些统计数据(自然RGB图像和一些用于如构建直方图统计天然HSV图像),然后尝试通过比较图像是哪个颜色空间更靠近到您的完全未知的图像进行分类。

其他提示

txandi使得一个有趣的问题。 OpenCV的这是默认使用的一个BGR颜色空间。这是类似于RGB彩色除了B和R通道图像中的物理交换。如果物理信道的排序是对你很重要,你需要将你的形象使用此功能转换:cvCvtColor(defaultBGR,imageRGB,CV_BGR2RGB)

的IplImage结构具有场名为colorModel由4个字符。不幸的是,OpenCV的忽略这个字段。但是你可以使用这个字段来跟踪不同颜色的机型。

RCV 说,存在以编程方式检测方法没有通过检查三个颜色通道,除非你有颜色空间的先验图像内容的知识(例如,存在其颜色是已知的图像中的标记物)。如果您将来源不明的接受图像,您必须允许用户指定其图像的色彩空间。一个好的默认值是假设RGB。

如果您在显示前修改任何像素的颜色,而你正在使用非OpenCV的观众,你应该使用cvCvtColor(src,dst,CV_BGR2RGB)运行完所有的彩色滤光片后。如果您使用了OpenCV的观众还是会被保存图像出来的文件,你应该确保他们在BGR的色彩空间。

我基本分割信道和显示每一个找出我使用的图像的颜色空间。它可能不是最好的方式,但它为我工作。

有关详细的说明,可以参考下面的链接

https://dryrungarage.wordpress.com/2018/ 3月11日/图像处理-基础/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top