以下是代码:
imshow(idct2(CDCT),[0 255])
i=idct2(CDCT),[0 255];
imwrite(i,'fa.tif');
当我显示图像时,它工作正常。但只保存黑色线条较少的白色图像(图像不正确)。请告诉我我做错了什么。 :)
答案 0 :(得分:1)
如果您使用imwrite
写入文件的图像数据类型为double
或single
(您的类型),则所有值都应介于0和0之间。 1.由于您的数据都在0到255之间,因此您的值大多大于1,因此这就是图像显示为大多数白色的原因。在调用mat2gray
之前,您可以使用imwrite
轻松规范化数据。
imwrite(mat2gray(i), 'fa.tif');
否则,如果将uint8
值传递给imwrite
,则值应在0到255的范围内(如您的数据所示)。因此,您可以在保存
uint8
imwrite(uint8(i), 'fa.tif');