Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何裁剪图像以删除背景_Matlab_Image Processing - Fatal编程技术网

Matlab 如何裁剪图像以删除背景

Matlab 如何裁剪图像以删除背景,matlab,image-processing,Matlab,Image Processing,我有一个图像,我想裁剪它。我使用了大津的方法,将图像更改为二进制形式。二值图像是: 我想从这个图像中找到xmin,xmax,ymin,ymax,这样我就可以裁剪图像,这样只有叶子部分保留在原始图像中 我需要作为输出的图像(以二进制形式): 我不想使用手动裁剪。您可以使用regionprops选择您感兴趣的区域,如下所示: BW = imread('wxK0w.jpg'); stats = regionprops(BW<128, 'BoundingBox', 'Area'); % The

我有一个图像,我想裁剪它。我使用了大津的方法,将图像更改为二进制形式。二值图像是:

我想从这个图像中找到xmin,xmax,ymin,ymax,这样我就可以裁剪图像,这样只有叶子部分保留在原始图像中

我需要作为输出的图像(以二进制形式):


我不想使用手动裁剪。

您可以使用
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)
BW=imread('wxK0w.jpg');
统计数据=区域属性(BW)