Halcon区域的面积和中心点area_center

Halcon区域的面积和中心点

提到区域的特征,最常用的莫过于区域的面积和中心点坐标信息。实际工作中,经常会使用面积或中心点进行特征的选择和定位。Halcon中的area_center算子就是用于实现这一功能的,该算子一次返回以下两个结果。

(1)面积:指的是单个区域(输入区域可能不止一个)中包含的灰度像素数量。

(2)中心:指的是几何中心点坐标,即单个区域的中心点行坐标均值和列坐标均值。

以一个例子说明,图(a)为输入的图像;图(b)为阈值分割后的图像,其中较亮部分为提取的区域,这些区域将作为area_center 算子的输入;图(c)为求面积与形状中心坐标的结果。其中文字标注的是对应区域的面积,文字的位置为中心位置设置行方向偏移后的位置。

上述过程的代码如下:

bash 复制代码
dev_close_window ()
*读取图片
read_image (Image,' data/holes')
*设置窗口属性,为了获取窗口句柄,供后面显示文字用
get_image_size (Image, Width, Height)
*创建新窗口
dev_open_window (0, 0, Width, Height, 'black', WindowID)
*将图像转化为单通道灰度图
rgbl_to_gray (Image, GrayImage)
*创建矩形选区,选择感兴趣区域
gen_rectanglel (Rectangle, 180, 83, 371, 522)
reduce_domain (GrayImage, Rectangle, ROI)
*阈值处理,提取图中深色部分,即文字部分。这里阈值设置为50,基本可以提取出所有黑色文字
threshold ( ROI, Region, 0, 80)
*gen_image_proto (ImageReduced, Imagecleared, 0)
*dev_display (Region)
*将提取的整个区域中不相连的部分分割成独立的区域
connection (Region, ConnectedRegions)
*获取不相连的区域的数量
count_obj (ConnectedRegions, Num)
*计算所有不相连区域的面积和中心点坐标。Area 为面积,Row和Column为中心点坐标
area_center (ConnectedRegions, Area, Row, Column)
*输出各区域的面积
for i :=1 to Num by 1
   dev_set_color ('red')
   select_obj (ConnectedRegions, ObjectSelected, i)
   *设定输出文字的起始坐标点
   set_tposition (WindowID, Row[i - 1]+40, Columnfi - 1])
   *设置输出文字的颜色
   dev _set _color ('blue')
   *设置字体
   set_font (WindowID, '-System-32-*-*-0-0-0-1-GB2312_CHARSET-')
   *输出文字内容,即该区域的面积
   write_string (WindowID, Area[i-1])
endfor

该代码实现了将输入图像中的较暗的孔洞区域提取出来,计算各个独立区域的面积和中心坐

标,并输出各区域的面积。

相关推荐
A.说学逗唱的Coke1 小时前
【大模型专题】向量数据库深度解析:从原理到实战,构建企业级 AI 知识检索底座
数据库·人工智能
果丁智能1 小时前
智能锁赋能网约房民宿数字化管控:身份核验+远程授权,筑牢安全防线、降本增效
网络·数据库·人工智能·安全·智能家居
V搜xhliang02461 小时前
AI智能体的数据安全与合规实践
人工智能·学习·数据分析·自动化·ai编程
PPIO派欧云1 小时前
PPIO登上贵州新闻联播,深化AI算力生态建设
人工智能
hai3152475431 小时前
一种通过空间几何转换进行软件编程计算的方式与现有计算的对比
人工智能·深度学习·数学建模·硬件架构·几何学·图论·拓扑学
猿饵块2 小时前
LibreOffice---文档制作
人工智能
硅谷秋水2 小时前
HARBOR:一个面向具身智体机器人强化学习的驾驭框架
人工智能·深度学习·机器学习·机器人
Mr..Jackey2 小时前
瑞佑 RUI Builder 图形化 UI 设计工具
arm开发·人工智能·单片机·ui·人机交互·ra8889·lcd控制芯片
霍格沃兹测试开发学社测试人社区2 小时前
Skills实战:从0到1封装一个“登录鉴权”Skill,拿来即用
人工智能