Image 如何在MATLAB中对绘图进行裁剪
我在matlab中遇到了一个在图像中绘制矩形的代码。我想在那个矩形处裁剪图像。我怎么做? 我对matlab没有太多的了解,所以如果有任何帮助,我将不胜感激。 代码如下:Image 如何在MATLAB中对绘图进行裁剪,image,matlab,image-processing,Image,Matlab,Image Processing,我在matlab中遇到了一个在图像中绘制矩形的代码。我想在那个矩形处裁剪图像。我怎么做? 我对matlab没有太多的了解,所以如果有任何帮助,我将不胜感激。 代码如下: img = im2double(imread('https://i.stack.imgur.com/iS2Ht.jpg')); BW = im2bw(img); imshow(BW) dim = size(BW) col = round(dim(2)/2)-90; row = min(find(BW(:,col))) bound
img = im2double(imread('https://i.stack.imgur.com/iS2Ht.jpg'));
BW = im2bw(img);
imshow(BW)
dim = size(BW)
col = round(dim(2)/2)-90;
row = min(find(BW(:,col)))
boundary = bwtraceboundary(BW,[row, col],'N');
imshow(img)
hold on;
ti = plot(boundary(:,2),boundary(:,1),'r','LineWidth',3);
很遗憾,我无法上载图像。请在运行代码时查看图像中绘制的红色矩形。我想在那个矩形上裁剪它。我怎么做
您可以找到矩形的最小和最大范围,如下所示:
r = [min(boundary) , max(boundary)];
然后使用以下值裁剪图像:
img_cropped = img(r(1) : r(3) , r(2) : r(4) , :);
imshow(img_cropped)
奖励提示:添加一个
行尾的代码>将隐藏输出。嘿,谢谢你的帮助。它工作得很好,但我刚刚发现我上面的代码并不适用于所有图像。你能告诉我如何在一个黑盒子里裁剪一个像这个链接中那样的图像吗:你的代码适用于这个图像,所以我不能告诉你如何为其他图像修改它。您应该打开一个新问题(可能会将此问题标记为已解决?),提供代码不起作用的其他图像的示例。ok可以。请发表对那个问题的回答。谢谢你的帮助。嘿,你能给我一些建议吗。。。。。