从单个图像Matlab中裁剪多个部分

Aad*_*q A 4 matlab image crop

嗨我想从图像中裁剪多个部分,使用鼠标指针制作地图.每个都有不同数量的对象,所以我不能运行for特定次数的循环.但是,我可以使用while循环.但是我怎么能阻止它呢?

for i=1:10

    [tt bb]=imcrop(img);
    crop.img{i,:}=tt;
    crop.bb(i,:)=bb;
end
Run Code Online (Sandbox Code Playgroud)

Sar*_*ama 5

你可以使用一个if条件waitforbuttonpress.当您完成裁剪图像部分并想要裁剪另一部分时,单击任何鼠标按钮,循环将继续.如果您不想裁剪任何其他部分,请按任意键盘按钮,循环将break.

演示代码:

img = imread('peppers.png');
f = figure;
k = 1;
while 1
    [tt, bb] = imcrop(img);
    crop.img{k,:} = tt;
    crop.bb{k,:} = bb;
    if waitforbuttonpress
        break;
    end
    k = k+1;
end
Run Code Online (Sandbox Code Playgroud)

请注意,它需要您的图形窗口成为焦点.