news 2026/9/2 23:49:05

Halcon小案例--->三角形缺陷检测(两种方法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Halcon小案例--->三角形缺陷检测(两种方法)

三角形缺陷检测

*方法一:(使用内轮廓)

编写代码
•获取图片:read_image ()
•获取句柄:dev_get_window()
•彩图转灰图:rgb1_to_gray()
•阈值分割:threshold ()
•连通器:connection ()
•筛选:select_shape()
•形态学开运算(先腐蚀后膨胀):opening_circle()
•填充区域:fill_up()
•形状变化:shape_trans()
•内轮廓:boundary()
•展示区域、图像:dev_display ()
*// 获取图片//--------------------- read_image (Image, 'D:/ChuanDingZN/全部学习记录/新/Halcon/day04/案例/产品表面三角缺陷检测/原图.jpg') *// 获取句柄//--------------------- dev_get_window (WindowHandle1) *// 彩图转灰图//--------------------- rgb1_to_gray (Image, GrayImage) *// 阈值分割//--------------------- threshold (GrayImage, Regions, 155, 168) *// 连通//--------------------- connection (Regions, ConnectedRegions1) *// 面积筛选//--------------------- select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 3000, 3500) *// 形态学开运算(先腐蚀后膨胀)//--------------------- opening_circle (SelectedRegions1, RegionOpening1, 3.5) *// 填充区域//--------------------- fill_up (RegionOpening1, RegionFillUp) *// 形状变化 convex 凸出显示 //--------------------- shape_trans (RegionFillUp, RegionTrans1, 'convex') *// 内轮廓//--------------------- boundary (RegionTrans1, RegionBorder, 'inner') *// 展示区域、图像//--------------------- dev_display (Image) *// 展示斑点//--------------------- dev_display (RegionBorder)
效果演示

*方法二:(动态阈值分割)

编写代码
•获取图片:read_image ()
•彩图转灰图:rgb1_to_gray()
•二值化阈值自动分割:binary_threshold ()
•从原始图像中抠出需要的形状部分:reduce_domain ()
•均值滤波:mean_image: ()
•动态阈值分割:dyn_threshold ()
•形态学闭运算(先膨胀后腐蚀):closing_circle()
•连通器:connection ()
•筛选:select_shape()
•填充区域:fill_up()
•形状变化:shape_trans()
•提取轮廓:gen_contour_region_xld ()
•展示区域、图像:dev_display ()
*// 获取图片//--------------------- read_image (Image, 'D:/ChuanDingZN/全部学习记录/新/Halcon/day04/案例/产品表面三角缺陷检测/原图.jpg') *// 彩图转灰图//--------------------- rgb1_to_gray (Image, GrayImage) *// 使用二值化阈值自动分割 分离背景和物件//--------------------- binary_threshold (GrayImage, Region, 'max_separability', 'dark', UsedThreshold) *// 裁剪抠图//--------------------- reduce_domain (GrayImage, Region, ImageReduced) *// 生成一个均值滤波//--------------------- mean_image (ImageReduced, ImageMean, 200, 3) *// 动态阈值分割 或者局部阈值分割 和 均值 中值 高斯等算子进行连用//--------------------- * 参数1 原始图片 * 参数2 图像处理之后的图片(均值处理、中值处理、平滑之后的图片) * 参数3 输出的区域 * 参数4 偏移值 原始图像与参考图相减之后的阈值限制 * 参数5 选取的区域的类型 dyn_threshold (ImageReduced, ImageMean, RegionDynThresh, 7, 'light') *// 形态学闭运算(先膨胀后腐蚀)//--------------------- closing_circle (RegionDynThresh, RegionClosing, 3.5) *// 连通//--------------------- connection (RegionClosing, ConnectedRegions) *// 面积筛选//--------------------- select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 500, 2000) *// 填充区域//--------------------- fill_up (SelectedRegions, RegionFillUp) *// 形状变化 convex 凸出显示 //--------------------- shape_trans (RegionFillUp, RegionTrans, 'convex') *// 提取轮廓//--------------------- gen_contour_region_xld (RegionTrans, Contours, 'border') *// 展示区域、图像//--------------------- dev_display (Image) *// 展示斑点//--------------------- dev_display (Contours)
效果演示

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:08:46

【服务器数据恢复】服务器泡水硬盘掉线,数据如何“起死回生”?

服务器存储数据恢复环境: 某品牌服务器存储多台存储阵列柜,总计近100块硬盘,划分了20组lun。服务器存储故障: 机房天花板渗水导致服务器存储设备受潮,服务器存储内有8块硬盘掉线。 北亚企安数据恢复中心的服务器数据恢…

作者头像 李华
网站建设 2026/9/2 21:42:54

LeetCode算法刷题——双指针

双指针算法的定义:双指针算法是一种在数组、链表或其他线性数据结构上使用两个“指针”(通常是索引或引用)协同遍历,以高效解决问题的算法技巧。这里的“指针”不一定是指 C/C 中的内存指针,更多是指数组下标或迭代器。…

作者头像 李华
网站建设 2026/9/2 23:09:23

基于MATLAB的分块压缩感知程序实现与解析

一、分块压缩感知核心流程 分块压缩感知(Block Compressive Sensing, BCS)通过将图像分块后独立处理,显著降低计算复杂度。其核心步骤如下: 图像分块:将图像划分为小块(如88或1616)。稀疏变换&a…

作者头像 李华
网站建设 2026/8/31 8:56:14

实时云渲染赋能电网数字孪生:技术方案与场景落地

一、数字孪生在智慧电网中的价值与现存瓶颈(一)核心优势数字孪生技术贯穿智慧电网发电、输电、配电、用电四大核心环节,为电网管理提供多维度支撑:基础支撑层面:融合 GIS(地理信息系统)、BIM&am…

作者头像 李华
网站建设 2026/9/2 21:42:48

制造业ERP管理系统平台对比与适配选型解决方案

在制造业数智化转型深化的当下,ERP管理系统已成为整合生产、供应链、财务等全链路资源的核心载体。当前市场中ERP平台品类繁杂,技术架构与适配场景差异显著,企业如何通过精准对比筛选适配自身需求的系统,直接决定数字化转型成效。…

作者头像 李华