如何使用交互式工具在 matlab 中裁剪图像?

How to crop an image in matlab using interactive tool?

我想从图像的特定位置裁剪出尺寸为 250 X 250 像素的 window。我怎样才能做到这一点?我看过imtool但不知道如何控制裁剪的大小window。

这可以通过多种方式完成。例如,您可能有一个图像 im,并使用 imtool(im) 找到要裁剪到的 window 右上角的坐标 (x,y)。您可以通过将鼠标光标悬停在像素上并查看 imtool-window.

左下角的括号来找到此坐标。

然后根据图像的存储方式,您可以通过 cropim = im(y+(0:249),x+(0:249));cropim = im(y+(0:249),x+(0:249),:); 获得裁剪后的图像。

使用 imrect,设置大小并使其不可调整大小,然后 imcrop,类似于:

figure, imshow(I);
h = imrect(gca, [10 10 250 250]);
setResizable(h,0)
rect = wait(h);
% now move to appropriate position
% command line blocked until rectangle is double clicked
I2 = imcrop(I, rect)