区域的运算和特征分析

区 域 的 运 算 和 特 征 分 析 区域的运算和特征分析

1.区域的运算

区域作差:将一个区域减去另一个区域,便得到区域的差值

在这里插入图片描述
算子: difference ()

区域合并(求和)︰将一个区域与另一个区域求和,便可以将两个区域合并为一个区域。

在这里插入图片描述
算子:union1()、union2()

区域集合:将两个或者两个以上的区域放入一个集合中,这个集合就成为区域的集合。别注意的是,在集合中,每一个区域都是孤立的,并没有进行合并,要与区域的和进行分。每一个区域称为一个obj。
在这里插入图片描述

算子: concat_obj()

区域的选择:从集合中进行区域的选择。
算子: select_obi()

区域的填充:对区域中的孔洞进行封闭,称为空洞的填充。
在这里插入图片描述
算子:fill_up()fill_up_shape()

区域骨架求取:骨架可以理解为图像的中轴,骨架求取就是求取区域中轴的过程。
在这里插入图片描述
算子: skeleton ()

gen_rectangle1 (Rectangle, 123, 196, 186, 356)
gen_rectangle1 (Rectangle1, 123+20, 196+20, 186-20, 356-20)

difference (Rectangle, Rectangle1, RegionDifference)

union2 (RegionDifference, Rectangle1, RegionUnion)

concat_obj (Rectangle, Rectangle1, ObjectsConcat)

select_obj (ObjectsConcat, ObjectSelected, 1)

fill_up (RegionDifference, RegionFillUp)

fill_up_shape (RegionDifference, RegionFillUp1, 'area', 1, 300000)

skeleton (RegionFillUp1, Skeleton)

union1 (ObjectsConcat, RegionUnion1)

2.区域特征分析

  • 为什么要学习区域特征:根据前边的讲解,我们已经学会区域的提取,但是如果我们只想从区域中选择其中的一个区域,那该如何选择呢?这就需要用到区域的特征,要根据每一个区域的特征,进行选择出我们需要的区域。
  • 常用的区域特征:区域的面积、区域的最小外接矩形的长宽以及角度、区域的角度、区域的凸性、区域的圆度、区域的最小外接圆大小等。

  • 区域的面积:区域的像素点的数量总和称为区域的面积。

在这里插入图片描述
算子:area_center()


  • 区域的最小外接矩形:区域的最小外接矩形,外接矩形的长宽的一半称为长宽半轴,对应的矩形长轴的方向称为区域的方向。

在这里插入图片描述
在这里插入图片描述

smallest_rectangle2()最小外接矩形2
smallest_rectangle1()最小外接矩形1

区域的角度:区域的角度就是外接矩形的角度。
区域的凸性:每个区域都存在一个最小的凸性区域,这个区域中任意中两点连线都在该区域内,这样的区域就称为区域的凸性区域。其中原区域与凸性区域的比值,称为区域的凸性,其范围是0-1.

shape_trans() 将区域转换为凸性区域(凸包)
convexity()  获取区域的凸性值

区域的圆度:区域的圆度,是指区域边界是否接近圆形的程度,范围是介于0-1.

circularity() 

区域的外接圆:能够将区域完全包含的圆区域,称为区域的最小外接圆。
在这里插入图片描述

实例

smallest_circle()  获取区域的最小外接圆
region_features()  可以获得区域的任意特征
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

dev_set_draw ('margin')

* dev_set_draw ('margin')
* dev_display (Region)
draw_region (Region, WindowHandle)

* 最小外接矩形2
smallest_rectangle2 (Region, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)

* 最小外接矩形1
smallest_rectangle1 (Region, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle1, Row1, Column1, Row2, Column2)

* 凸集转换
shape_trans (Region, RegionTrans, 'convex')
convexity (RegionTrans, Convexity)

* 获取区域的圆度
circularity (RegionTrans, Circularity)

gen_circle (Circle, Row, Column, 100.5)
convexity (Circle, Convexity1)

* 获取外接圆
smallest_circle (Region, Row3, Column3, Radius)
gen_circle (Circle1, Row3, Column3, Radius)

region_features (Circle1, 'area', Value)

* 集合
concat_obj (Region, Rectangle, ObjectsConcat)
count_obj (ObjectsConcat, Number)
select_shape (Circle1, SelectedRegions, 'area', 'and', 150, 99999)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值