我想将图像读取到MATLAB中,在其上绘制一个矩形,然后保存图像。
另外,我只是在学习MATLAB,请保持柔和。看起来应该很简单,但是我似乎做不到。
im = imread('image.tif'); imshow(im); rectangle('Position', [100, 100, 10, 10]); imwrite(im, 'image2.tif'); 即使我可以看到图像上的矩形,保存的图像也不会显示该矩形。如何保存图像并显示矩形?
FWIW,我已经尝试过saveas() ,但这给了我巨大的图像。有没有办法使用saveas()并使保存的图像正确大小?
回答:
The MathWorks网站上实际上存在
一个有关此问题
的错误 。太糟糕了,它们不能给出真正的答案(因为恕我直言,将标尺举到显示器上并不是真正的解决方案)。
使用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参数,直到看起来正确为止,瞧瞧!
更多&回答...