我一直在解决一个问题,我需要将矩阵保存为图像,并使其成为 MATLAB 中矩阵的真正无损示例。
我尝试以无损形式将图像写为 png 和 tiff:
名称大小字节类属性 差异 237x354 671184 双 imPNG 237x354 167796 uint16 imPNGD 237x354 671184 双 imTiff 237x354 83898 uint8 imTiffD 237x354 671184 双 带衬垫的 2042x2170 35449120 双 测试图像 237x354 671184 双
testImage 是我想无损保存的矩阵。
我使用以下几行将矩阵写为 tif 和 png:
EDU>> imwrite(testImage,'imTiff.tif','tiff','compression','none');
EDU>> imwrite(testImage,'imTiff.png','PNG','bitdepth',16);
然后我将图像加载回工作空间(imTiff 和 inPng)并将它们转换为双倍。
EDU>> imPngD = im2double(imPng);
EDU>> imTiffD = im2double(imTiff);
但是当我从 testImage 中减去 imPngD 或 imTiffD 时,会留下剩余值。
我的问题是:
我的处理过程有问题吗?
如果不是,这是否意味着 tif 和 png 并不是真正完全无损的?
如果您认为有帮助,我可以提供图片。
我认为这些图像可能会有所帮助: testImage
ImTiffD 和 testImage 之间的差异 imPngD 和 testImage
之间的差异
请注意:图像 2-3 中的灰度像素值为零,即 testImage 与重新加载的图像之间的差异为零。