HALCON アプリケーションは、HDevelop アプリケーションを通じてプロトタイプ化されます。 HDevelop 開発には主に 3 つの形式があります。
- ゼロから始めます:
スクリプトを使用して、HDevelop コードを一般的なプログラミング言語に手動で変換します。たとえば、前のセクションで説明したように、実際には各オペレーターが異なる場合があり、HALCON Operator Reference に基づいてどのプログラミング言語がサポートされているかを判断する必要があります。
- HDevelop コードをエクスポートします。
変換は HDevelop によって自動化されます。
- ライブラリ プロジェクトのエクスポート:
ライブラリ + 対応する CMake ファイルを通じて部分的にコンパイルします。
H開発:
1 PCB ボードを検出する簡単な例:
【事例】例を見てみましょう。
これは HALCON を使用して回路を検出する例です。HALCON の接続演算子を呼び出して、画像内のオブジェクトの接続性を直接決定します。
【この写真を拡大してみると】
【事例】赤矢印の部分は、実際には回路基板に異常があり断線していることをHALCONソフトウェアが正しく認識している部分です。
上記の HALCON 実装のコードは、次のように非常に単純です。
read_image (Image, 'pcb')
threshold (Image, Region, 0, 122)
connection (Region, ConnectedRegions)
count_obj (ConnectedRegions, Number)
2 HDevelop プロジェクト統合方法:
2.1 アルゴリズムをプロシージャとして出力:【HDevelopで設定】
右クリックして処理モジュールを作成します。
[先入れ後出し]を選択します。
プロジェクトの保存
2.2 VS2019 を例として HALCON プロジェクトの設定を構成します: [VS2019 での設定]
[HALCON VS プロジェクトを作成、プロジェクト名: vs_count_regions_HALCON]
[X64 に設定してください]
【VC++の設定】インクルードディレクトリ
$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
リンカの Lib ディレクトリを設定します。
$(HALCONROOT)\lib\$(HALCONARCH);
追加の依存ライブラリを設定します。
halconcpp.lib;hdevenginecpp.lib;
2.3 生成した HALCON プロジェクトを VS2019 にマージする [HDevelop]
[エクスポートを選択]
次のファイルが生成されます。
2.4 生成した HALCON ファイルを追加します: vs_count_regions_HALCON VS2019 プロジェクト
VS2019 では、ファイル vs_count_regions.cpp をプロジェクトに追加します。
そして、ファイルに次のコードを入力します。
#include <iostream>
#include "HalconCpp.h"
#include "hdev_count_regions/source/hdev_count_regions.h"
int main()
{
HalconCpp::HImage Image("pcb");
hdev_count_regions::SetResourcePath("hdev_count_regions/res_hdev_count_regions");
HalconCpp::HTuple Number{};
hdev_count_regions::count_regions(Image, &Number);
std::cout << "Number of Regions: " << Number.L() << '\n';
}
次に、先ほどの HALCON の本番ファイルを以下のように VS2019 に追加します。
2.4 HALCONの小規模プロジェクトライブラリ[HDevelop]をVS2019で実行する
VS 2019 で、ファイル vs_count_regions.cpp に参加して開きます: スキームの生成
次に、このシナリオを実行します。
【まとめ】
このようにして、接続を決定するための HALCON のアプリケーションが VS2019 経由で正常に呼び出されました。