如何裁剪图像以删除背景

时间:2017-04-08 06:05:58

标签: matlab image-processing

我有一张图片,我想裁剪它。我使用了Otsu的方法并将图像更改为二进制形式。二进制图像是:

My original binary image

我想从此图像中找到xmin,xmax,ymin,ymax,以便我可以裁剪图像,使得只有叶子部分保留在原始图像中。

我需要输出的图像(二进制形式): The image I want

我不想使用手动裁剪。

1 个答案:

答案 0 :(得分:0)

您可以使用regionprops选择您感兴趣的地区,如下所示:

BW = imread('wxK0w.jpg');
stats = regionprops(BW<128, 'BoundingBox', 'Area'); % The black region (lowest values) is the region you are interested in.
[~, iForeground] = max([stats.Area]); % assume the largest area is the foreground you want
box = round(stats(iForeground).BoundingBox);
BWcropped = BW(box(2) + (1:box(4)), box(1) + (1:box(3)));
imshow(BWcropped)

enter image description here