【问题标题】:How to store and read a gray scale image - MATLAB如何存储和读取灰度图像 - MATLAB
【发布时间】:2014-04-29 21:56:09
【问题描述】:

我目前正在使用 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 加载此图像,值将如何变化?

【问题讨论】:

    标签: image matlab scale grayscale


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-05
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2012-06-13
      • 2020-12-24
      • 2021-06-02
      相关资源
      最近更新 更多