繁体   English   中英

如何存储和读取灰度图像-MATLAB

[英]How to store and read a gray scale image - MATLAB

我目前正在使用MATLAB进行某种图像处理算法的研究,该算法要求加载目录中的图像并将其转换为灰度图像。 经过一些其他处理后,图像中的所有像素的值均为0或255。然后,我使用以下方法存储图像:

// temp is of type double
imwrite(temp,'FAST_tree_test_image_1_gray_matlab.jpg');

之后,我使用以下命令重新加载图像:

// image is not defined before hand; its automatically set to type UINT8
image = imread('FAST_tree_test_image_1_gray_matlab.jpg');

当我使用变量编辑器查看图像的值时,这些值是不同的。几乎所有255个值都变为252,并且存储图像之前为0的许多像素变为2。

为什么会这样呢? 关于格式化吗? 我该如何解决? 如果必须在Visual Studio中使用OpenCv加载该图像怎么办,值将如何更改?

这是正常的,因为您要保存为使用有损压缩的JPEG格式,因此您可以获得非常相似的图像,但是添加了一些噪点(这就是为什么颜色计数比2种原始颜色要多一些的原因)。

我建议您将图像保存为PNG格式(它使用无损压缩,并且可以获得良好的压缩率)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM