imshow显示的输出与imwrite不同

matlab image-processing matlab-figure

313 观看

1回复

106 作者的声誉

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

maxBlur=3;

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

imwrite(a, 'img.png');

写入文件所产生的输出与通过所显示的输出不同imshow

谁能建议如何从imshow另存为图像中获取输出?

作者: Maria 的来源 发布者: 2016 年 3 月 16 日

回应 (1)


4

55928 作者的声誉

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

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

如果您确实想要使用所看到的图像imshow,则可以使用saveas截屏。这可能比以前的方法分辨率低,并且还会在图像周围包含空白。

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

注意:在您的帖子中a传递给该变量imwrite的是对象MATLAB图形句柄,该image对象用于操作渲染的图像。imwrite期望矩阵形式的图像数据不作为图形句柄。

作者: Suever 发布者: 16.03.2016 02:51
32x32