以下是代码:
imshow(idct2(CDCT),[0 255])
i=idct2(CDCT),[0 255];
imwrite(i,'fa.tif');当我显示图像时,它工作得很好。但是只保存了很少黑线的白色图像(不正确的图像)。请告诉我做错了什么。:)
发布于 2017-01-08 15:23:47
如果使用imwrite写入文件的图像数据是double或single (您的)类型的,那么所有的值都应该在0到1之间。由于数据都在0到255之间,所以图像显示为白色,所以您的值大多大于1。在调用mat2gray之前,可以轻松地使用imwrite对数据进行规范化。
imwrite(mat2gray(i), 'fa.tif');否则,如果将uint8值传递给imwrite,则预期值将在0到255之间(如数据所示)。因此,在保存之前,您可以简单地将输入数据转换为uint8。
imwrite(uint8(i), 'fa.tif');https://stackoverflow.com/questions/41530748
复制相似问题