2017-08-17 44 views
1

我遇到了一个在matlab中绘制矩形的代码。我想让图像在该矩形中裁剪。我该怎么做? 我没有太多的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))) 
boundary = bwtraceboundary(BW,[row, col],'N'); 
imshow(img) 
hold on; 
ti = plot(boundary(:,2),boundary(:,1),'r','LineWidth',3); 

可惜我不能上传image.See图像中绘制的,当你运行代码红色矩形。我想把它裁剪成矩形。我该怎么做?

回答

2

你可以找到的最小和最大范围内的你长方形这样的:

r = [min(boundary) , max(boundary)]; 

然后修剪出这些值的图像:

img_cropped = img(r(1) : r(3) , r(2) : r(4) , :); 
imshow(img_cropped) 

特别提示:添加;在行的末尾将隐藏输出。

+0

嘿感谢您的帮助。它工作正常,但我刚刚发现上面的代码不适用于所有图像。你能告诉我如何在这个链接中的一个黑框内裁剪图像:https://i.stack.imgur.com/iS2Ht.jpg –

+0

你的代码适用于该图像,所以我不能告诉你如何修改它为您的其他图像。您应该打开一个新的问题(可能将这个问题标记为已解决?),并提供其他图像的代码不起作用的示例。 – Zep

+0

好的会做。请发表问题的答案。感谢您的帮助。 –