如何保存反转的DCT图像

时间:2017-01-08 08:08:42

标签: matlab

以下是代码:

imshow(idct2(CDCT),[0 255])
i=idct2(CDCT),[0 255];
   imwrite(i,'fa.tif');

当我显示图像时,它工作正常。但只保存黑色线条较少的白色图像(图像不正确)。请告诉我我做错了什么。 :)

1 个答案:

答案 0 :(得分:1)

如果您使用imwrite写入文件的图像数据类型为doublesingle(您的类型),则所有值都应介于0和0之间。 1.由于您的数据都在0到255之间,因此您的值大多大于1,因此这就是图像显示为大多数白色的原因。在调用mat2gray之前,您可以使用imwrite轻松规范化数据。

imwrite(mat2gray(i), 'fa.tif');

否则,如果将uint8值传递给imwrite,则值应在0到255的范围内(如您的数据所示)。因此,您可以在保存

之前简单地将输入数据转换为uint8
imwrite(uint8(i), 'fa.tif');