Matlab与Opencv中Image的像素值差异

时间:2013-03-08 07:06:09

标签: matlab opencv

我从avi视频获取帧并通过Matlab打开彩色图像并检查三个通道R,G,B的像素值。 (案例1)

之后,我使用opencv2.4.3获取帧并通过txt文件保存像素值。然后,我检查了txt文件,我发现像素值与Matlab不同(我知道opencv打开的彩色图像是BGR,像素的索引位置必须是-1(在Matlab中,像素位置(x,y)。)c ,pixelposition(x-1,y-1)))。 (案例2)

最后,我使用opencv通过cvSaveImage函数保存帧,然后我通过Matlab打开这个帧。在这种情况下,像素值也不同于上述两种情况。

为什么会这样?

感谢您的回答!抱歉我的英文!

这是我的代码 http://www.scribd.com/doc/129263549/Code(你必须下载才能阅读)

1 个答案:

答案 0 :(得分:1)

Matlab和OpenCV有不同的存储像素值的方法。 Matlab使用压缩来保存.jpeg图像,然后再存储它们。因此,如果您在Matlab和OpenCV中查看类似图像的像素数据,它将看起来不同。

如果在Matlab和OpenCV中加载并保存相同的源图像,前者小于比后者小;即使您没有对图像进行任何操作。

您无法使两个图像数据看起来相同。幸运的是,对图像所做的任何操作都不会受到内部结构差异的影响。例如,如果你试图在Matlab和OpenCV中找到某些像素的索引,两者都会给出正确的值,尽管这些值看起来不一样。

相关问题