Halcon小案例--->路由器散热口个数(两种方法)

路由器散热口个数

原图在Halcon自带的图片文件夹中,图片名称是progres

*方法一:(普通方法)

编写代码
•停止运行:stop()
•关闭之前的窗口:dev_close_window ()
•获取图片:read_image ()
•阈值分割:threshold ()
•连通器:connection ()
•筛选:select_shape()
•展示区域、图像:dev_display ()
•获取个数:count_obj ()
•文本显示:dev_disp_text()
cs 复制代码
*// 停止运行//--------------------- 
stop()
*// 关闭之前的窗口//--------------------- 
dev_close_window ()
*// 获取图片//--------------------- 
read_image (Image1, 'progres')
*// 阈值分割//--------------------- 
threshold (Image1, Region1, 60, 135)
*// 连通//--------------------- 
connection (Region1, ConnectedRegions1)
*// 面积、行、列筛选//--------------------- 
select_shape (ConnectedRegions1, SelectedRegions1, ['area','row','column'], 'and', [10,271.99,90], [50,344.4,333])
*// 展示区域、图像//--------------------- 
dev_display (Image1)
*// 展示斑点//--------------------- 
dev_display (SelectedRegions1)
*// 个数//--------------------- 
count_obj (SelectedRegions1, Number1)
*// 展示个数//--------------------- 
dev_disp_text ('小孔数量'+Number1+'个', 'image',100, 100, 'black', [], [])
效果演示

*方法二:(使用抠图)

编写代码
•获取图片:read_image ()
•绘制一个仿射矩形检测区域:draw_rectangle2()
•显示绘制区域:gen_rectangle2 ()
•从原始图像中抠出绘制形状的部分:reduce_domain ()
•阈值分割:threshold ()
•连通器:connection ()
•筛选:select_shape()
•展示区域、图像:dev_display ()
•获取个数:count_obj ()
•文本显示:dev_disp_text()
•设置显示的颜色:dev_set_color()
•清空窗体:dev_clear_window ()
•获取筛选之后的角度:orientation_region ()
•弧度转角度:tuple_deg ()
•获取椭圆区域的长半径和短半径及旋转角度:elliptic_axis()
•获取区域的面积和中心点坐标:area_center ()
cs 复制代码
*// 读取图片//--------------------- 
read_image (Image, 'progres.png')
*// 获取句柄//--------------------- 
dev_get_window (WindowHandle)
*// 绘制一个仿射矩形检测区域//--------------------- 
draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
*// 显示绘制区域//--------------------- 
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
*// 从原始图像中抠出绘制形状的部分//--------------------- 
* Image 输入的原始图像
* Rectangle 裁剪的区域
* ImageReduced 输出参数 裁剪之后的图像
reduce_domain (Image, Rectangle, ImageReduced)
*// 清空窗体内容//--------------------- 
dev_clear_window ()
*// 展示裁剪之后的区域//--------------------- 
dev_display (ImageReduced)
*// 对裁剪之后的进行阈值分割//--------------------- 
threshold (ImageReduced, Region, 77, 155)
*// 连通器分析//--------------------- 
connection (Region, ConnectedRegions)
*// 获取连通区域之后的个数//--------------------- 
count_obj (ConnectedRegions, Number)
*// 清空//--------------------- 
dev_clear_window ()
*// 展示裁剪之后的区域//--------------------- 
dev_display (ImageReduced)
*// 设置显示的颜色//--------------------- 
dev_set_color ('green')
*// 展示原图//--------------------- 
dev_display (Image)
*// 设置字体大小//--------------------- 
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*// 文本展示//--------------------- 
disp_message (WindowHandle, '小孔的个数'+Number+'个', 'image', 100, 100, 'black', 'true')
*// 面积筛选//--------------------- 
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 20, 30)
*// 获取连通之后小孔的角度 弧度//--------------------- 
orientation_region (SelectedRegions, Phi1)
*// 获取区域的面积和中心点坐标//--------------------- 
area_center (SelectedRegions, Area, Row1, Column1)
*// 获取椭圆区域的长半径和短半径及旋转角度//--------------------- 
* 参数1 SortedRegions 输入的区域/椭圆区域集合
* 参数2 Ra 输出的椭圆长半轴长度数组
* 参数3 Rb 输出的椭圆短半轴长度数组
* 参数4 Phi2 输出的椭圆方向(弧度值,0~2π)
elliptic_axis (SelectedRegions, Ra, Rb, Phi2)
*// 求所有半径的和---算子:sum(Ra)//--------------------- 
allSum := sum(Ra)
*// 个数//--------------------- 
count := |Ra|
*// 半径//--------------------- 
avg := allSum/count
*// 文本显示//--------------------- 
dev_disp_text ('半径为'+avg, 'image', 150, 100, 'black', [], [])
效果演示

希望对大家有所帮助, 感谢大家的关注和点赞。

相关推荐
jinxindeep3 小时前
CVPR26最佳论文提名:NitroGen,面向通用游戏智能体的 视觉-动作基础模型
人工智能·游戏
小雨下雨的雨6 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
xieliyu.9 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
我没胡说八道9 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟9 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love9 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇9 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明9 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc9 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技9 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能