【机器视觉】Qt集成Halcon开发环境详解(二)

00. 目录

文章目录

    • 00. 目录
    • 01. 概述
    • 02. Halcon动态库配置方案一
    • 03. Halcon动态库配置方案二
    • 04. 问题讨论
    • 05. 附录

01. 概述

Qt中集成Halcon开发环境有两种配置方案。第一种方案是使用环境变量来代替路径,并考虑平台移植问题。第二种方案是第三方库的使用,将用到的头文件和库直接打包到项目中,不用在客户机安装Halcon软件。

02. Halcon动态库配置方案一

配置简单,但移植后的机器需要安装Halcon软件。

2.1安装Halcon的环境变量
请添加图片描述

HALCONROOT代表当前环境下Halcon安装根目录。

HALCONARCH代表当前环境下Halcon的架构名称

2.2 配置Halcon头文件和库

# HALCON/Qt pattern matching and measure example
#
# (c) 2004-2019 MVTec Software GmbH# matching.pro
#CONFIG		+= qt debug
QT              += core gui  widgets#defines
win32:DEFINES += WIN32#includes  指定Halcon头文件所在目录
INCLUDEPATH   += "$$(HALCONROOT)/include"
INCLUDEPATH   += "$$(HALCONROOT)/include/halconcpp"#libs 指定Halcon所需的库
QMAKE_LIBDIR  += "$$(HALCONROOT)/lib/$$(HALCONARCH)"
unix:LIBS     += -lhalconcpp -lhalcon -lXext -lX11 -ldl -lpthread
win32:LIBS    += "$$(HALCONROOT)/lib/$$(HALCONARCH)/halconcpp.lib" \"$$(HALCONROOT)/lib/$$(HALCONARCH)/halcon.lib"#sources
HEADERS	    += qhalconwindow.h
HEADERS	    += matching.h
SOURCES	    += qhalconwindow.cpp
SOURCES	    += matching.cpp
SOURCES	    += main.cpp

或者

# matching.pro
#CONFIG		+= qt debug
QT              += core gui  widgets#defines
win32:DEFINES += WIN32#includes  指定Halcon头文件所在目录
INCLUDEPATH   += "$$(HALCONROOT)/include"
INCLUDEPATH   += "$$(HALCONROOT)/include/halconcpp"#libs 指定Halcon所需的库
QMAKE_LIBDIR  += "$$(HALCONROOT)/lib/$$(HALCONARCH)"
unix:LIBS     += -lhalconcpp -lhalcon -lXext -lX11 -ldl -lpthread
win32:LIBS    += halconcpp.lib halcon.lib#sources
HEADERS	    += qhalconwindow.h
HEADERS	    += matching.h
SOURCES	    += qhalconwindow.cpp
SOURCES	    += matching.cpp
SOURCES	    += main.cpp

2.3 编译测试
请添加图片描述

2.4 运行结果
请添加图片描述

温馨提示

配置时建议使用环境变量来代替路径,并考虑平台移植问题

温馨提示

C:\Users\Public\Documents\MVTec\HALCON-19.11-Progress\examples\cpp\qt\Matching

03. Halcon动态库配置方案二

第三方库的使用,将用到的头文件和库直接打包到项目中,这种情况下不需要在客户机安装Halcon软件。

3.1在Qt项目目录中创建include和lib目录
请添加图片描述

3.2 将MVTec\HALCON-19.11-Progress\include目录下所有的文件拷贝到新建的include目录下。
请添加图片描述

3.3 将MVTec\HALCON-19.11-Progress\lib\x64-win64目录下所有的文件拷贝到新建的lib目录下。
请添加图片描述

3.4 找到MVTec\HALCON-19.11-Progress\bin\x64-win64与lib文件下*.lib文件重名的*.dll文件,并复制到新建的lib文件下

请添加图片描述

实际上只用到了一下几个文件
请添加图片描述

3.5 添加库
请添加图片描述

3.6 添加外部库,点击下一步
请添加图片描述

3.7 添加halconcpp库的配置
请添加图片描述

3.8 添加halcon库的配置
请添加图片描述

3.9 添加halcon相关头文件的目录

请添加图片描述

# matching.pro
#CONFIG		+= qt debug
QT              += core gui  widgets#defines
win32:DEFINES += WIN32#sources
HEADERS	    += qhalconwindow.h
HEADERS	    += matching.h
SOURCES	    += qhalconwindow.cpp
SOURCES	    += matching.cpp
SOURCES	    += main.cppINCLUDEPATH += $$PWD/include
INCLUDEPATH += $$PWD/include/halconcppwin32: LIBS += -L$$PWD/lib/ -lhalconcppINCLUDEPATH += $$PWD/lib
DEPENDPATH += $$PWD/libwin32: LIBS += -L$$PWD/lib/ -lhalconINCLUDEPATH += $$PWD/lib
DEPENDPATH += $$PWD/lib

温馨提示

PWD指的是项目所在路径

3.10 编译,运行结果如下

请添加图片描述

04. 问题讨论

4.1 出现Error #5190: HALCON error #5190: Invalid window parameter错误

错误提示如下:
请添加图片描述

解决办法:

SetWindowParam函数需要依赖动态库文件hcanvas.dll,把该库从C:\Program Files\MVTec\HALCON-19.11-Progress\bin\x64-win64拷贝到自己的项目路径lib目录下。

05. 附录

5.1 测试代码下载

下载:Halcon应用示例Matching.rar

5.2 参考博客

博客:Qt+Halcon笔记(1)—— 环境配置(两种方案,博主亲测)

Published by

风君子

独自遨游何稽首 揭天掀地慰生平