Méthode de programmation conjointe Halcon et Qt 2 (version C++)

L'article précédent mentionnait la programmation conjointe de Halcon et Qt basée sur python, mais en développement réel, par exemple, si vous avez déjà le logiciel en version c++ écrit par qt pour l'itération de l'algorithme, ou si vous avez déjà l'algorithme écrit par halcon (fichier .hdev) et que vous souhaitez empaqueter le logiciel, vous pouvez envisager de convertir le fichier .hdev écrit par halcon en un fichier .cpp, puis implémenter une programmation conjointe basée sur qt.

1. Installez qt et halcon (il y a beaucoup de tutoriels, faites attention à choisir la version mscv lors de l'installation de qt)

2. Écrivez l'algorithme halcon du fichier .hdev

3. Importez les dépendances liées à halcon dans QT
1. Créez un nouveau projet qt et sélectionnez mscv pour le compilateur
2. Créez un nouveau dossier d'inclusion sous le répertoire racine du projet, copiez tous les fichiers du dossier d'inclusion sous le répertoire d'installation de halcon dans le dossier d'inclusion nouvellement créé sous le répertoire racine du projet

insérez la description de l'image ici
2. Créez un nouveau dossier lib sous le répertoire racine du projet, copiez le dossier x64-win64 dans le dossier lib sous le répertoire d'installation de halcon dans le dossier lib nouvellement créé sous le répertoire racine du projet

insérez la description de l'image ici

insérez la description de l'image ici
4. Ajoutez le contenu suivant dans le fichier .pro du projet
insérez la description de l'image ici
#----------------------Ajouter dans le fichier de projet .pro -----------------
#----------------------- Configuration de la programmation conjointe QT et 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/inclure/halconcpp

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

5. Ajoutez le contenu suivant au fichier d'en-tête mainwindow.h
insérez la description de l'image ici
#include "halconcpp/HalconCpp.h"
#include "Halcon.h"
#include <HDevThread.h>

en utilisant l'espace de noms HalconCpp ;

À ce stade, l'importation de halcon dans QT est terminée

4. Convertir le fichier halcon en fichier .cpp
Sélectionnez la langue d'exportation de fichier dans halcon, sélectionnez le fichier c++
insérez la description de l'image ici
Actuellement, un total de 4 formats d'exportation sont pris en charge, à savoir le fichier c, le fichier cpp, le fichier vb et le fichier c#. Les étudiants qui en ont besoin peuvent dériver leurs langues familières de ces quatre langues. Ici, nous exportons sous forme de fichier .cpp.

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

insérez la description de l'image ici
insérez la description de l'image ici

Dans le fichier .cpp transformé par halcon, la fonction sauf void action() est illustrée dans la figure ci-dessous, et elle doit également être collée dans le fichier mainwindow.cpp de qt, car elle sera appelée dans la fonction de bouton, et ces fonctions doivent être déclarées dans le fichier d'en-tête, comme mentionné précédemment
insérez la description de l'image ici
insérez la description de l'image ici

Le travail de code se termine ici

6. Compilez et exécutez, le résultat est comme indiqué dans la figure ci-dessous
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_43207709/article/details/130574607
conseillé
Classement