【Halcon视觉】XLD模板匹配

本文介绍了Halcon的XLD模板匹配原理,通过亚像素轮廓提取生成模板,并在目标图像中进行搜索匹配,涉及计算机视觉中的目标检测技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        原理:

        XLD是亚像素轮廓,XLD轮廓模板匹配,是直接利用灰度变化明显的地方,进行XLD轮廓提取,生成XLD轮廓模板,然后使用该模板,在目标图像中进行搜索匹配。

        算子:

        create_shape_model_xld()创建XLD亚像素轮廓模板

        find_shape_model() 搜索模板

*关闭窗口
dev_close_window ()

*打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

*读取图像
read_image (Image, 'printer_chip/printer_chip_01')

*画矩形区域
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)

*生成矩形区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)

*最小外接矩形
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)

*生成最小外接矩形
gen_rectangle2_contour_xld (Rectangle1, Row, Column, Phi, Length1, Length2)

*创建XLD轮廓模板
create_shape_model_xld (Rectangle1, 'auto', -0
### 关于OpenCVXLD模板匹配的使用方法 需要注意的是,实际上OpenCV本身并不直接提供名为“XLD”的功能或函数;这一概念更多地与HALCON等其他计算机视觉库关联[^4]。然而,在讨论基于形状和边缘的高级模板匹配技术时,可以借鉴相似的理念应用于OpenCV环境。 对于想要在OpenCV框架内实现类似于XLD的功能,可以通过组合多种现有工具和技术来达成目的: #### 1. 边缘检测 为了模拟XLD轮廓提取的效果,可先应用Canny算子或其他边缘检测器获取图像中的显著边界信息。 ```cpp cv::Mat edges; cv::Canny(image, edges, threshold1, threshold2); ``` #### 2. 轮廓发现 接着从二值化后的边缘图中找到闭合轮廓,并筛选出符合条件的目标对象作为模板。 ```cpp std::vector<std::vector<cv::Point>> contours; std::vector<cv::Vec4i> hierarchy; findContours(edges, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); ``` #### 3. 特征描述符计算 针对选定的模板及其候选区域内的对应部分,计算诸如Hu矩之类的不变量特征向量用于后续比较。 ```cpp cv::Moments mu = moments(contour); cv::Vec<double,7> huMoments = HuMoments(mu); ``` #### 4. 匹配过程 最后一步涉及遍历待测图片上的各个位置,重复上述操作并评估两者间的相似程度,从而定位最佳匹配点。 ```cpp double minDist = DBL_MAX; int bestIdx=-1; for(size_t i=0;i<contours.size();++i){ double dist = norm(huModel-huCandiates[i]); if(dist < minDist){minDist=dist;bestIdx=i;} } ``` 尽管这不是严格意义上的XLD实现方式,但在缺乏官方支持的情况下,这种方法能够有效地模仿其核心原理——即依赖于物体外形而非单纯像素强度来进行识别。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值