登录论坛

查看完整版本 : 如何在MATLAB中保存更改后的图像?


poster
2019-12-10, 16:49
我想将图像读取到MATLAB中,在其上绘制一个矩形,然后保存图像。

另外,我只是在学习MATLAB,请保持柔和。看起来应该很简单,但是我似乎做不到。

im = imread('image.tif'); imshow(im); rectangle('Position', [100, 100, 10, 10]); imwrite(im, 'image2.tif'); 即使我可以看到图像上的矩形,保存的图像也不会显示该矩形。如何保存图像并显示矩形?

FWIW,我已经尝试过saveas() ,但这给了我巨大的图像。有没有办法使用saveas()并使保存的图像正确大小?


回答:
The MathWorks网站 (http://www.mathworks.com/support/solutions/data/1-P51QW.html?solution=1-P51QW)上实际上存在一个 (http://www.mathworks.com/support/solutions/data/1-P51QW.html?solution=1-P51QW)有关此问题的错误 (http://www.mathworks.com/support/solutions/data/1-P51QW.html?solution=1-P51QW) 。太糟糕了,它们不能给出真正的答案(因为恕我直言,将标尺举到显示器上并不是真正的解决方案)。

使用print命令,必须手动更改-r参数,直到保存的图像的大小与输入图像的大小匹配为止。 -r参数指定保存的图像的DPI。由于大多数屏幕具有不同的DPI,所以没有一种“一刀切”的解决方案。

im = imread('image.tif'); f = figure, imshow(im, 'Border', 'tight'); rectangle('Position', [100, 100, 10, 10]); print(f, '-r80', '-dtiff', 'image2.tif'); 使用上面的代码,调整-r参数,直到看起来正确为止,瞧瞧!



更多&回答... (https://stackoverflow.com/questions/575475)