HalconとQtの共同プログラミング方法2(C++編)

前回の記事ではpythonをベースとしたHalconとQtの共同プログラミングについて触れましたが、実際の開発においては、例えばアルゴリズム反復用にqtで記述したc++版のソフトウェアが既にある場合や、すでにhalconで記述したアルゴリズム(.hdevファイル)があり、それをパッケージ化したい場合には、halconで記述した.hdevファイルを.cppファイルに変換してからqtをベースとした共同プログラミングを実装することも検討できます。

1. qt と halcon をインストールします (これには多くのチュートリアルが含まれています。qt をインストールするときは mscv バージョンの選択に注意してください)

2. .hdev ファイルの halcon アルゴリズムを記述します。

3. halcon 関連の依存関係を QT にインポートします
。 1. 新しい qt プロジェクトを作成し、コンパイラーとして mscv を選択します。 2.
プロジェクトのルート ディレクトリの下に新しいインクルード フォルダーを作成し、halcon インストール ディレクトリの下のインクルード フォルダー内のすべてのファイルを、プロジェクト ルート ディレクトリの下に新しく作成されたインクルード フォルダーにコピーします。

ここに画像の説明を挿入
2. プロジェクトルートディレクトリ直下に新規libフォルダを作成し、halconインストールディレクトリ直下のlibフォルダ内のx64-win64フォルダをプロジェクトルートディレクトリ直下に新規作成したlibフォルダにコピーします。

ここに画像の説明を挿入

ここに画像の説明を挿入
4. プロジェクトの .pro ファイルに次の内容を追加します。
ここに画像の説明を挿入
#---------------------- .pro プロジェクト ファイルに追加します -----------------
#----------------------- QT および halcon の共同プログラミング設定 -------------
INCLUDEPATH += PWD / include INCLUDEPATH + = PWD/include INCLUDEPATH +=PWD /含むINC LU DEPATH + _ _ _ _ _ _ _ _ _ _ _ _= PWD/インクルード/halconcpp

LIBS += PWD / lib / x 64 − win 64 / halconcpp 。lib LIBS + = PWD/lib/x64-win64/halconcpp.lib LIBS +=PWD /ポンド/ × 64 _ _ _w in 64 /ハルコンc pp . _ _ lib L I BS + _= PWD/lib/x64-win64/halcon.lib

5. 次の内容を mainwindow.h ヘッダー ファイルに追加します
ここに画像の説明を挿入
#include “halconcpp/HalconCpp.h”
#include “Halcon.h”
#include <HDevThread.h>

名前空間 HalconCpp を使用します。

この時点で、QT への halcon のインポートが完了します。

4. halcon ファイルを .cpp ファイルに変換します。
halcon でファイル エクスポート言語を選択し、c++ ファイルを選択します。
ここに画像の説明を挿入
現在、c ファイル、cpp ファイル、vb ファイル、および c# ファイルの合計 4 つのエクスポート形式がサポートされています。必要な学生は、これら 4 つの言語から自分の使い慣れた言語を導き出すことができます。ここでは .cpp ファイルとしてエクスポートします。

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

ここに画像の説明を挿入
ここに画像の説明を挿入

halcon によって変換された .cpp ファイルでは、void action() を除く関数が下図に示されています。ボタン関数内で呼び出されるため、これも qt の mainwindow.cpp ファイルに貼り付ける必要があります。また、これらの関数は前述したようにヘッダー ファイルで宣言する必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入

コード作業はここで終了

6. コンパイルして実行すると、結果は次の図のようになります。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43207709/article/details/130574607