news 2026/3/26 7:41:22

跨平台自研基于形状的模板匹配:从OpenCV到Halcon的探索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
跨平台自研基于形状的模板匹配:从OpenCV到Halcon的探索

自研模板匹配,Windows,Linux,ARM都可用,C++,跨平台,基于形状的模板匹配,openCV实现,halcon替代

在计算机视觉领域,模板匹配是一项基础且重要的技术。今天咱们聊聊如何实现一款能在Windows、Linux以及ARM平台都能使用的基于形状的模板匹配,并且用C++结合OpenCV来完成,同时探讨下Halcon替代方案。

跨平台的重要性

随着不同硬件平台和操作系统的广泛应用,开发跨平台的应用变得越来越必要。无论是在Windows的桌面端,还是Linux的服务器环境,亦或是ARM架构的嵌入式设备,我们都希望算法能够无缝运行。C++作为一门强大的编程语言,具备良好的跨平台特性,这为我们实现跨平台的模板匹配奠定了基础。

OpenCV实现基于形状的模板匹配

OpenCV是计算机视觉领域非常流行的库,提供了丰富的功能来处理图像。以下是一个简单的基于形状的模板匹配代码示例(以C++为例):

#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { // 读取模板图像和目标图像 Mat templateImage = imread("template.jpg", IMREAD_GRAYSCALE); Mat targetImage = imread("target.jpg", IMREAD_GRAYSCALE); if (templateImage.empty() || targetImage.empty()) { cout << "Could not open or find the images" << endl; return -1; } Mat result; int matchMethod = TM_CCOEFF_NORMED; // 进行模板匹配 matchTemplate(targetImage, templateImage, result, matchMethod); normalize(result, result, 0, 1, NORM_MINMAX, -1, Mat()); double minVal; double maxVal; Point minLoc; Point maxLoc; Point matchLoc; minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc, Mat()); // 根据匹配方法选择最佳匹配位置 if (matchMethod == TM_SQDIFF || matchMethod == TM_SQDIFF_NORMED) { matchLoc = minLoc; } else { matchLoc = maxLoc; } // 在目标图像上绘制矩形标记匹配位置 rectangle(targetImage, matchLoc, Point(matchLoc.x + templateImage.cols, matchLoc.y + templateImage.rows), Scalar::all(0), 2, 8, 0); imshow("Match Result", targetImage); waitKey(0); return 0; }

代码分析:

  1. 首先,我们通过imread函数读取模板图像和目标图像,并转换为灰度图,因为模板匹配在灰度图上通常效果更好,且计算量相对较小。
  2. 接着,选择一种匹配方法,这里使用TMCCOEFFNORMED,它是归一化的相关性匹配方法,取值范围在0到1之间,1表示完全匹配。
  3. 调用matchTemplate函数进行模板匹配,结果存储在result矩阵中。
  4. 对匹配结果进行归一化处理,以便更好地观察和分析。
  5. 使用minMaxLoc函数找到匹配结果中的最小值、最大值以及它们的位置。
  6. 根据所选的匹配方法,确定最佳匹配位置,并在目标图像上绘制矩形标记出来。

Halcon替代方案

虽然OpenCV功能强大,但Halcon在工业视觉领域有着独特的优势。Halcon提供了更高级、更鲁棒的模板匹配算法。以下是一个简单的Halcon基于形状的模板匹配示例代码(Halcon使用自己的编程语言HDevelop,这里给出大概思路):

* 读取模板图像和目标图像 read_image(TemplateImage, 'template.jpg') read_image(TargetImage, 'target.jpg') * 转换为灰度图 rgb1_to_gray(TemplateImage, GrayTemplate) rgb1_to_gray(TargetImage, GrayTarget) * 创建形状模型 create_shape_model(GrayTemplate, 1, 0, 6.28318, 'auto', 'none', 'use_polarity', 'auto', 'auto', ModelID) * 在目标图像中查找形状模型 find_shape_model(GrayTarget, ModelID, 0, 6.28318, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score) * 可视化结果 dev_display(TargetImage) dev_set_color('red') dev_display_shape_matching_results(ModelID, Score, Row, Column, Angle)

Halcon代码分析:

  1. 同样先读取图像,并转换为灰度图。
  2. 使用createshapemodel函数创建形状模型,该函数可以设置多种参数来优化模型,比如角度范围、模型类型等。
  3. 通过findshapemodel函数在目标图像中查找之前创建的形状模型,返回匹配的位置、角度和得分等信息。
  4. 最后使用Halcon的可视化函数将匹配结果展示出来,用红色标记出匹配的位置。

Halcon相比OpenCV,在工业场景下对复杂形状的匹配可能更加准确和鲁棒,不过Halcon是商业软件,使用需要购买许可证,而OpenCV是开源的,更适合一些预算有限或者对成本敏感的项目。

自研模板匹配,Windows,Linux,ARM都可用,C++,跨平台,基于形状的模板匹配,openCV实现,halcon替代

通过以上的介绍,希望能帮助大家在跨平台的基于形状的模板匹配开发中有更多的思路和选择,无论是使用OpenCV还是考虑Halcon替代方案,都能根据实际需求打造出优秀的计算机视觉应用。

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

基于Python的膳食健康系统_96e1ff52

文章目录一、项目技术二、项目内容和功能介绍三、核心代码四、效果图五 、资料获取一、项目技术 开发语言&#xff1a;Python python框架&#xff1a;Django 软件版本&#xff1a;python3.7/python3.8 数据库&#xff1a;mysql 5.7或更高版本 数据库工具&#xff1a;Navicat11…

作者头像 李华
网站建设 2026/3/24 10:16:00

还在愁论文?AI 写论文软件排行榜你真会选吗?

先给你最关键的结论 —— 按需求选对工具才是核心&#xff0c;不是盲目追 “榜一”。中文降重选PaperRed&#xff08;语义级改写&#xff0c;AI 率稳 < 5%&#xff09;&#xff0c;国内毕业全流程选毕业之家&#xff08;格式精修 合规降重&#xff09;&#xff0c;通用初稿…

作者头像 李华
网站建设 2026/3/21 20:57:07

TEASOFT驱动Keysight示波器自动截图:一键获取波形图并嵌入CSDN

前言 在编写电子电路、信号处理相关的技术博客时&#xff0c;经常需要将示波器屏幕截图插入到文章中。传统的手动截图方式效率低下&#xff1a;需要手动操作示波器保存截图、选择文件、上传图片、手动调整格式。今天介绍一个基于Python的自动化工具 keysightpf.py&#xff0c;可…

作者头像 李华
网站建设 2026/3/25 7:14:28

精密制造QMS解决方案:海岸线PQM破解质量追溯与交付难题

一、精密制造质量困境&#xff1a;数据孤岛难解&#xff0c;QMS数字化破局关键当前&#xff0c;精密制造企业数字化转型普遍陷入两难&#xff1a;系统投入持续增加&#xff0c;数据孤岛却愈发突出&#xff1b;流程文件不断细化&#xff0c;一线执行抵触情绪加剧&#xff1b;管理…

作者头像 李华
网站建设 2026/3/24 5:51:39

如何在没有备份的情况下从 iPad 恢复照片?

许多因素都可能导致 iPad 上的照片丢失&#xff0c;例如意外删除、病毒攻击、 iOS更新失败等等。随着近年来科技的发展&#xff0c;在没有备份的情况下丢失 iPad 上的照片已不再是噩梦。您可以借助以下两种行之有效的方法&#xff0c;快速恢复没有备份的 iPad 上的照片。第 1 部…

作者头像 李华
网站建设 2026/3/23 23:26:07

达摩院开源具身大脑基模RynnBrain,首次让机器人拥有时空记忆

达摩院开源具身大脑基模RynnBrain&#xff0c;首次让机器人拥有时空记忆 达摩院DAMO 达摩院DAMO 2026年2月10日 11:42 浙江 2月10日&#xff0c;阿里巴巴达摩院发布具身智能大脑基础模型RynnBrain&#xff0c;并一次性开源了包括30B MoE在内的7个全系列模型。RynnBrain首次让机…

作者头像 李华