Halcon y Qt método de programación conjunta 2 (versión C++)

El artículo anterior mencionó la programación conjunta de Halcon y Qt basada en python, pero en el desarrollo real, por ejemplo, si ya tiene el software de la versión C++ escrito por qt para la iteración del algoritmo, o si ya tiene el algoritmo escrito por halcon (archivo .hdev) y desea empaquetar el software, puede considerar convertir el archivo .hdev escrito por halcon en un archivo .cpp y luego implementar la programación conjunta basada en qt.

1. Instale qt y halcon (esto tiene muchos tutoriales, preste atención para elegir la versión mscv al instalar qt)

2. Escriba el algoritmo halcon del archivo .hdev

3. Importe dependencias relacionadas con halcon en QT
1. Cree un nuevo proyecto qt y seleccione mscv para el compilador
2. Cree una nueva carpeta de inclusión en el directorio raíz del proyecto, copie todos los archivos de la carpeta de inclusión en el directorio de instalación de halcon a la carpeta de inclusión recién creada en el directorio raíz del proyecto

inserte la descripción de la imagen aquí
2. Cree una nueva carpeta lib en el directorio raíz del proyecto, copie la carpeta x64-win64 en la carpeta lib en el directorio de instalación de halcon a la carpeta lib recién creada en el directorio raíz del proyecto

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
4. Agregue el siguiente contenido en el archivo .pro del proyecto
inserte la descripción de la imagen aquí
#-----------------------Agregue en el archivo de proyecto .pro ----------------- #
-------------- Configuración de programación conjunta de QT y halcon -------------
INCLUDEPATH += PWD / include INCLUDEPATH + = PWD/include INCLUDEPATH +=P W D / in c l u d e I NC LU D EP A T H += PWD/incluir/halconcpp

LIBS += PWD / lib / x 64 − win 64 / halconcpp . lib LIBRES + = PWD/lib/x64-win64/halconcpp.lib LIBRES +=P W D / l ib / x 64w in 64/ ha l co n c pp . l ib L I BS += PWD/lib/x64-win64/halcon.lib

5. Agregue el siguiente contenido al archivo de encabezado mainwindow.h
inserte la descripción de la imagen aquí
#include “halconcpp/HalconCpp.h”
#include “Halcon.h”
#include <HDevThread.h>

utilizando el espacio de nombres HalconCpp;

En este punto, se completa la importación de halcon en QT

4. Convierta el archivo halcon en un archivo .cpp
Seleccione el idioma de exportación de archivos en halcon, seleccione el archivo c++
inserte la descripción de la imagen aquí
Actualmente, se admiten un total de 4 formatos de exportación, a saber, archivo c, archivo cpp, archivo vb y archivo c#. Los estudiantes que lo necesiten pueden derivar sus idiomas familiares de estos cuatro. Aquí exportamos como un archivo .cpp.

五、下面进行联合编程
在头文件中,把上面halcon转化的.cpp文件中的halcon各种变量复制粘贴进头文件进行声明,例如Hlong、Hobject、Htuble等,以及disp_message 、disp_message 等函数名进行声明(这里和你自己的代码相关,都在转化的.cpp文件中)
inserte la descripción de la imagen aquí
在.ui中建立两个按钮和一个QGraphicsView
inserte la descripción de la imagen aquí
把halcon转化的.cpp文件中void action()中除变量的代码复制进去(因为变量已经在头文件中声明了)
inserte la descripción de la imagen aquí
我这里的软件有两个功能,一个是打开图片,一个是检测图片,源码都是在halcon转化的.cpp文件中void action()中选择粘贴,也就是说,void action()是转化的算法具体内容,可以选择不同的部分贴如qt中的函数,我这里把void action()中打开图片和检测图片分别写入两个按钮的函数中

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

En el archivo .cpp transformado por halcon, la función excepto void action() se muestra en la figura a continuación, y también debe pegarse en el archivo mainwindow.cpp de qt, porque se llamará en la función de botón, y estas funciones deben declararse en el archivo de encabezado, como se mencionó anteriormente
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

El trabajo de código termina aquí

6. Compile y ejecute, el resultado es como se muestra en la figura a continuación
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43207709/article/details/130574607
Recomendado
Clasificación