matlab中图像的对象选择,matlab – 选择图像中的最大对象

请使用

bwconncomp,因为它返回单独单元格中区域的坐标索引,其中每个单元格的大小都很容易辨别:

>> BW = [1 0 0; 0 0 0; 0 1 1]; % two regions

>> CC = bwconncomp(BW)

CC =

Connectivity: 8

ImageSize: [3 3]

NumObjects: 2

PixelIdxList: {[1] [2x1 double]}

PixelIdxList字段是一个单元格数组,其中包含每个区域的坐标索引.每个数组的长度是每个区域的大小:

>> numPixels = cellfun(@numel,CC.PixelIdxList)

numPixels =

1 2

>> [biggestSize,idx] = max(numPixels)

biggestSize =

2

idx =

2

然后,您可以使用此组件轻松创建新图像:

BW2 = false(size(BW));

BW2(CC.PixelIdxList{idx}) = true;

编辑:从评论中,需要裁剪输出图像以便区域到达边缘可以使用“BoundingBox”选项使用regionprops进行寻址:

s = regionprops(BW2, 'BoundingBox');

它给你一个矩形s.BoundingBox,你可以用它来裁剪BW3 = imcrop(BW2,s.BoundingBox);.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值