imshow显示与imwrite不同的输出

时间:2016-03-16 14:48:54

标签: matlab image-processing matlab-figure

我想知道如何在matlab中保存由imshow创建的图像。下面的代码使用imshow函数和指定的最小和最大参数 - 如何将其直接应用于图像本身,而不是仅仅指定Matlab来显示它?

maxBlur=3;

a = imshow(fDmap,[0 maxBlur]);

imwrite(a, 'img.png');

写入文件会产生与imshow显示的输出不同的输出。

有人可以建议如何将imshow的输出保存为图像吗?

1 个答案:

答案 0 :(得分:4)

要指定imwrite的上限和下限强度限制(类似于您对imshow所做的那样),您需要使用mat2gray的第二个输入来调整对比度在使用imwrite保存之前的图像。

imwrite(mat2gray(fDmap, [0 maxBlur]), 'img.png');

如果你真的想要一张imshow所见内容的图片,可以使用saveas截取屏幕截图。这可能比前一种方法的分辨率更低,并且还包括图像周围的空白。

imshow(fDmap, [0 maxBlur]);
saveas(gcf, 'img.png'); 
  

注意:您在帖子中传递给a的{​​{1}}变量是MATLAB graphics handle to an image object,用于操纵渲染图像。 imwrite期望 matrix 中的图像数据不是图形句柄。