news 2026/8/18 15:04:48

基于Qt 5.12.4的Halcon视觉流程框架编译测试成功报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Qt 5.12.4的Halcon视觉流程框架编译测试成功报告

qt联合halcon视觉流程框架 正常编译 测试正常 qt5.12.4

直接上手搞Qt+Halcon的环境配置可能会遇到不少坑,这里分享下我的踩坑记录。先说下环境:Qt5.12.4+VS2017,Halcon用的是20.11版本。整个过程最头疼的就是动态库加载和内存管理的问题。

首先在.pro文件里配置Halcon的路径,这里有个小细节要注意版本号:

win32 { HALCON_ROOT = C:/Halcon20.11 INCLUDEPATH += $${HALCON_ROOT}/include LIBS += -L$${HALCON_ROOT}/lib/x64-win64 LIBS += -lhalconcpp -lhalcon }

这里容易栽跟头的地方是x64和x86架构的选择。如果Qt是用MSVC编译的,一定要确认Halcon的lib目录是否对应。我遇到过明明配置正确却报LNK2019的情况,最后发现是项目属性里没改到x64平台。

qt联合halcon视觉流程框架 正常编译 测试正常 qt5.12.4

测试代码里建议先做个简单的图像加载:

#include "HalconCpp.h" using namespace HalconCpp; void testHalcon() { HImage img; HTuple width, height; img.ReadImage("test.png"); img.GetImageSize(&width, &height); qDebug() << "图像尺寸:" << width.I() << "x" << height.I(); }

运行前记得把halcon.dll、halconcpp.dll等十几个动态库扔到exe目录。有个取巧的方法:直接把Halcon安装目录下的bin/x64-win64整个文件夹加入系统Path,这样调试的时候不用来回拷贝dll。

碰到内存泄漏问题可以试试Halcon的垃圾回收机制:

HImage* img = new HImage(); img->ReadImage("test.jpg"); // 处理图像... HHandleBase::ClearHandle(*img); // 手动释放

实测发现用栈对象比堆对象更安全,特别是涉及到HObject的子类时。跨线程操作要注意Halcon的上下文管理,建议每个线程单独创建HInstance对象。

最后说下界面线程和算法线程的交互。用Qt的信号槽传递Halcon对象时,记得先Serialize/Unserialize:

// 发送端 QByteArray buffer; HImage img = grabImage(); img.Serialize(&buffer); emit imageReady(buffer); // 接收端 HImage receivedImg; receivedImg.Deserialize(buffer);

这样处理比直接传HImage指针安全得多,实测在跨线程传输2000x2000的大图时,序列化耗时大概15ms左右,完全可以接受。

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

基于Python 图形学实验(生成中间帧)

图形学实验: 生成中间帧 给定初始图片和结束图片&#xff0c;生成中间的N帧&#xff0c;使得首尾自然过渡 开发环境 开发环境&#xff1a;macOS Mojave 10.14.6开发软件&#xff1a;PyCharm 2019.1.3开发语言&#xff1a;python 如何运行 将项目文件夹拷贝到本地环境运行s…

作者头像 李华
网站建设 2026/8/17 23:10:01

从理论到实践:Node-RED性能优化的完整案例解析

在物联网和自动化领域&#xff0c;Node-RED以其直观的可视化编程界面赢得了众多开发者的青睐。然而&#xff0c;许多用户在实际应用中都会遇到一个共同的问题&#xff1a;为什么我的Node-RED流程看起来逻辑清晰&#xff0c;运行起来却异常缓慢&#xff1f; 为什么你的Node-RED…

作者头像 李华
网站建设 2026/8/18 5:11:38

亲测好用10个降AIGC工具 千笔AI帮你高效降AI率

AI降重工具的崛起与实用价值 在当前学术写作日益依赖AI生成内容的背景下&#xff0c;越来越多的学生和研究者开始关注如何有效降低AIGC率、去除AI痕迹&#xff0c;同时保持文章的逻辑性和语义通顺。这不仅关乎论文通过查重系统的标准&#xff0c;更直接影响到学术诚信和论文质…

作者头像 李华
网站建设 2026/8/18 8:01:09

基于深度学习YOLOv10的辣椒叶片病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 项目摘要 本项目基于YOLOv10目标检测算法&#xff0c;开发了一个针对辣椒叶片病害的智能检测系统。系统能够自动识别并分类5种常见的辣椒叶片状态&#xff0c;包括健康叶片和4种病害类型&#xff08;黄单胞菌病、花叶病、尾孢菌病和卷叶病&#xff09;。通过深度…

作者头像 李华
网站建设 2026/8/17 22:28:53

基于深度学习的水果品种分类检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 摘要 水果品种的精准识别在农产品分级、智能零售和自动化分拣等领域具有重要应用价值。本研究开发了一种基于YOLOv10的高精度水果品种实时检测系统&#xff0c;可实现对6类常见水果品种&#xff08;金冠苹果、澳洲青苹果、梨子、红富士苹果、红油桃、黄桃&#…

作者头像 李华
网站建设 2026/8/10 18:42:32

计算机毕业设计之基于.NET技术的吉他音乐社区系统的设计与实现

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;然后线上管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活方式…

作者头像 李华