Halcon区域的面积和中心点area_center

Halcon区域的面积和中心点

提到区域的特征,最常用的莫过于区域的面积和中心点坐标信息。实际工作中,经常会使用面积或中心点进行特征的选择和定位。Halcon中的area_center算子就是用于实现这一功能的,该算子一次返回以下两个结果。
(1)面积:指的是单个区域(输入区域可能不止一个)中包含的灰度像素数量。
(2)中心:指的是几何中心点坐标,即单个区域的中心点行坐标均值和列坐标均值。
以一个例子说明,图(a)为输入的图像;图(b)为阈值分割后的图像,其中较亮部分为提取的区域,这些区域将作为area_center 算子的输入;图(c)为求面积与形状中心坐标的结果。其中文字标注的是对应区域的面积,文字的位置为中心位置设置行方向偏移后的位置。
在这里插入图片描述
上述过程的代码如下:

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

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

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 12:10:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 12:10:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 12:10:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 12:10:02       18 阅读

热门阅读

  1. pytorch中的wheel文件

    2024-01-05 12:10:02       27 阅读
  2. C语言——!(--x)和!(-x)以及while(!(--x)) 和 while(!(-x))

    2024-01-05 12:10:02       27 阅读
  3. 什么是软件测评?

    2024-01-05 12:10:02       38 阅读
  4. vue2和vue3 部署打包到线上子目录的区别

    2024-01-05 12:10:02       36 阅读
  5. 50、Flink的单元测试介绍及示例

    2024-01-05 12:10:02       31 阅读
  6. flutter 项目安卓开启混淆防止渗透

    2024-01-05 12:10:02       36 阅读
  7. LN和BN

    LN和BN

    2024-01-05 12:10:02      29 阅读
  8. cnn lstm结合网络

    2024-01-05 12:10:02       41 阅读
  9. uniapp vue 前端页面半小时选择器

    2024-01-05 12:10:02       30 阅读
  10. 项目管理的细节-平衡

    2024-01-05 12:10:02       33 阅读
  11. 哈希查找【数据结构】

    2024-01-05 12:10:02       33 阅读
  12. Spring中的依赖注入(DI)的几种方法的使用

    2024-01-05 12:10:02       27 阅读
  13. 后台管理系统权限处理

    2024-01-05 12:10:02       45 阅读