【Halcon机器视觉】ch9.1 特征提取

特征,就是事物的特定属性,如大的、小的、方形的、圆形的,通过这些特征我们可以找出想要的目标。

在图像处理方面,图像的特征描述了图像某种特性,如面积大小就是区域的一种特征,通过分割形态学得到一些图像区域之后,就可以使用计算的特征作为依据去提取想要的区域,本章将介绍特征即其计算特征的算子。

特征的类型有很多,此章主要介绍如何使用面积、灰度差异大的、区域面积中心等特征进行目标提取。

9.1 区域形状特征

使用形状特征为目标提取依据是较为常见的,下面就介绍与区域形状特征相关的算子。

9.1.1 区域面积和中心点

使用区域面积和中心点坐标可以作为区域选择和定位,如挑选区域最大的区域,area_center就是实现这功能的算子。下面例程将演示如何计算孔洞面积并在孔附近打印显示面积数值。
输入图像:
在这里插入图片描述
处理程序:

*清空显示
dev_close_window()
*读取一张照片
read_image(Image, 'quan1')
*获取图像尺寸
get_image_size(Image, Width, Height)
*显示
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
dev_display(Image)
*转为灰度图像
rgb1_to_gray(Image, GrayImage)
*划分AOI区域 并提取  等价于==gen_rectangle1()+reduce_domain()
rectangle1_domain(GrayImage, ImageReduced, 100, 150, Height-60, Width-100)
*自适应阈值分割 提取暗的部分
binary_threshold(ImageReduced, Region, 'max_separability', 'dark', UsedThreshold)
*显示暗部
dev_clear_window()
dev_display(Region)
*将联通区域分开
connection(Region, ConnectedRegions)
*获取图像面积和中心坐标
area_center(ConnectedRegions, Area, Row, Column)
*获取不连通区域数量
count_obj(ConnectedRegions, Number)
for i:=1 to Number by 1
   *设置显示对象颜色
   dev_set_color('red')
   select_obj(ConnectedRegions, ObjectSelected, i)
   *设定文字输出的起始坐标点
   set_tposition(WindowHandle, Row[i-1]+60, Column[i-1])
   *设定输出文字颜色
   dev_set_color('blue')
   *设定字体
   set_font(WindowHandle,'-System-24-*-0-0-0-1-GB2312_CHARSET-')
   *输出文字内容
   write_string(WindowHandle, Area[i-1])
endfor

输出图像:
在这里插入图片描述
从控制变量窗口可以看到5个区域面积以及其行坐标和列坐标,上面程序就是通过坐标去确定显示面积文字的坐标的。

9.1.2 封闭区域(空洞)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值