Halcon 基礎から習得まで-02- HALCON ベースのアプリケーションの開発

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 経由で正常に呼び出されました。


参考:

HALCONQuickGuide バージョン 23.05 リソース - CSDN ライブラリ

おすすめ

転載: blog.csdn.net/yellow_hill/article/details/133581214