裁剪图像与固定的x/y比率



我想使用以下代码裁剪图像。但是我希望用户只能选择具有预定义的x/y比率的裁剪区域。例如,如果x=2,y=2,那么用户只能用鼠标选择一个比例为(x/y)=1的区域。

I = imread('image.jpg');
[rows columns numberOfColorBands] = size(I);
I2 = imcrop(I);
imshow(I), figure, imshow(I2)

您可以使用imrect生成坐标,然后将这些坐标传递给imcrop。

figure, imshow(I);
h = imrect(gca,[10 10 100 100]); 
setFixedAspectRatio(h,1); % this fixes the aspect ratio; user can now change size/position
position = wait(h); % returns coordinates in "position" when user doubleclicks on rectangle
I2 = imcrop(I,position);
figure, imshow(I2);

在实际代码中,您必须将[10 10 100 100]替换为适合您的图像的大小/宽高比。您可能希望为imrect添加其他约束(例如,阻止用户将矩形移动到实际图像之外)。

相关内容

  • 没有找到相关文章

最新更新