2017-08-17 38 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

好的會做。請發表問題的答案。感謝您的幫助。 –