10.区域形态学

1.主要包括:

shape_trans:根据区域产生指定图形,包括由已知region产生外接圆、内接圆、椭圆,凸性:把凸起最高点连接(注意和膨胀的区别),将产生的凸性图像减去原图形可以得到凹下去的面积
skeleton:求区域骨架,是一个region,边界为一个像素宽
dilation_circle:膨胀,以边界为圆心画圆,圆的外部切线形成的路线,如下图
在这里插入图片描述erosion_circle:收缩,同上
在这里插入图片描述

膨胀和收缩经常用于寻找边缘

closing_circle:先膨胀再收缩,可以去除内陷的空洞或中间的缺陷,另外有说法是用某直径的圆填充,不能完全容下圆的地方被补上
在这里插入图片描述

opening_circle:先收缩再膨胀,另外有说法是用某直径的圆填充,不能完全容下圆的地方被去除

2.对于单侧光线照射有阴影的区域分割,使用动态阈值

在这里插入图片描述
上图圆点中左边为黑色阴影,右边为白色,则使用mean加dyn_threshold+not_equal先分割,注意not_equal可用于一黑一白,而不是只有黑或者只有白
在这里插入图片描述
然后使用closing先膨胀再收缩,使中间缺的部分补上
在这里插入图片描述
然后使用opening去掉小尾巴
在这里插入图片描述
最终效果
在这里插入图片描述
然后再打散,求外接圆
在这里插入图片描述

*59为球的半径r*2+1,因为要右边黑色和左边白色分别区分,所以需求宽度为半径
mean_image(Image,ImageMean,59,59)
*注意not_equal可用于一黑一白,而不是只有黑或者只有白
dyn_threshold(Image,ImageMean,RegionDynThresh,15,'not_equal')
*8.5必须大于两个半球之前的宽度
closing_circle(RegionDynThresh,RegionClosing,8.5)
*Opening去掉小尾巴
opening_circle(RegionClosing,Regionopening)
connection(Regionopening,ConnectionRegions)
smallest_circle(ConnectedRegions,Row,Column,Radius)
*生成圆轮廓,为了显示而已
gen_circle_contour_xld(ConCircle,Row,Column,Radius,0,6.23,'posituve')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值