使用来自opencv的imread函数显示工件

时间:2015-10-16 13:11:07

标签: matlab opencv jpeg libjpeg

我使用imread函数读取一个jpeg文件并以bmp格式保存rgb图像。比较这两个文件,我发现了工件,并使用绿色圆圈表示工件。 OpenCV的版本是3.0。我自己编译库,SSE,SSE2和SSE3开启(默认设置)。我的操作系统是Windows 7专业版。您可以使用以下图像进行检查。

original jpeg image

saved bmp file

如果我在Matlab中读取jpeg文件,则rgb图像是正确的。我在matlab中以png格式保存rgb图像,使用opencv读取png文件并将加载的图像保存在bmp文件中。一切都好。似乎jpeg解码器存在问题。使用的jpeg库是libjpeg.lib。

由于尺寸限制,我从第二张图片中剪切了补丁。 enter image description here

1 个答案:

答案 0 :(得分:0)

你总是会得到一些JPEG格式的文物。您可以通过更改使用的量化表(通常会丢失压缩)来减少此类工件的外观。

JPEG编码器通常使用“质量”设置来更改量化表。