我一直在解决一个问题,需要将矩阵保存为图像,并且在MATLAB中是真正无损的示例。
我尝试以无损形式将图像写入png和tiff:
名称 大小 字节 类型 属性
diff 237x354 671184 double imPng 237x354 167796 uint16 imPngD 237x354 671184 double imTiff 237x354 83898 uint8 imTiffD 237x354 671184 double padded 2042x2170 35449120 double testImage 237x354 671184 double
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之间的差异为零。