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', [], [])
效果演示

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

相关推荐
YOLO数据集集合5 分钟前
遥感影像树木检测数据集 | 遥感树木 目标检测 城市绿化 森林监测 YOLO格式9052期
人工智能·yolo·目标检测·计算机视觉·目标跟踪·树木检测·遥感树影
YonyouHRSaaS6 分钟前
2026年AI招聘系统怎么选?AI面试功能怎么评估?
人工智能·面试·职场和发展·求职招聘·ai面试
会编程的吕洞宾6 分钟前
LangChain4j RAG 分块策略实战:检索质量提升 80% 的 Chunking 调优全解
java·人工智能·后端
月华路7 分钟前
《模型不玄学》第21章 稳定性与偏置审计
人工智能·深度学习·机器学习
用户5274675614219 分钟前
Agent 提交 PR 后别急着下班:把“可合并”做成一等状态
人工智能
LayZhangStrive10 分钟前
数据结构与算法 - 堆排序
java·数据结构·算法·排序算法·堆排序·大根堆
小阿鑫12 分钟前
AI 越来越强,为什么打工人反而越来越累、越来越内耗了?
人工智能·ai·程序员·职业发展·agi·工作效率
宋哥转AI14 分钟前
深入理解 AI Agent · Agent 安全威胁全景与四层纵深防御
人工智能·agent·ai编程
甲维斯14 分钟前
“O哥”手把手教学,复刻GPT6酷炫动效!
人工智能
外域速览15 分钟前
GPT-6 Astra 开放、标普罕见拉响 AI 基建信用警报、三星 Arm 联手 2nm 端侧芯片:算力下半场的三条主线
arm开发·人工智能·gpt