我想知道如何在matlab中保存由imshow
创建的图像。下面的代码使用imshow
函数和指定的最小和最大参数 - 如何将其直接应用于图像本身,而不是仅仅指定Matlab来显示它?
maxBlur=3;
a = imshow(fDmap,[0 maxBlur]);
imwrite(a, 'img.png');
写入文件会产生与imshow
显示的输出不同的输出。
有人可以建议如何将imshow
的输出保存为图像吗?
答案 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 animage
object,用于操纵渲染图像。imwrite
期望 matrix 中的图像数据不是图形句柄。