【HALCON】query_insert 関数について - インサート可能なオブジェクトのクエリ
2024-09-12
2024-09-12
HALCON
のquery_insert
関数は、システムでインサート(挿入)可能なオブジェクトのリストを取得するためのツールです。この関数を使うことで、処理フローに追加できるオブジェクトの種類を確認し、画像処理の設計や実行時に適切なオブジェクトを挿入するためのガイドとして活用できます。これにより、システムに対応するオブジェクトの種類を理解し、フロー全体を最適化することができます。
query_insert 関数の概要
query_insert
は、現在のHALCONシステムでインサート可能なオブジェクトの種類をクエリするための関数です。この関数を使用することで、どのオブジェクトが現在の処理フローに追加できるかを確認し、設計段階や実行時に必要なオブジェクトを挿入できます。オブジェクトには、画像、XLD輪郭、モデリングデータなどの異なるタイプが含まれます。
関数の基本構文
query_insert(InsertableObjects)
InsertableObjects
インサート可能なオブジェクトタイプのリスト(出力)。
この関数は、システムが現在サポートしているインサート可能なオブジェクトのリストをInsertableObjects
に出力します。これにより、どのオブジェクトが処理フローに追加可能かを把握できます。
使用方法
以下は、query_insert
を使用してシステム内でインサート可能なオブジェクトタイプのリストを取得する基本的な例です。
* インサート可能なオブジェクトタイプのクエリを実行
query_insert(InsertableObjects)
* オブジェクトタイプのリストを表示
for i := 0 to |InsertableObjects| - 1 by 1
disp_message(WindowHandle, 'Insertable Object: ' + InsertableObjects[i], 'window', 12, 12 + i * 20, 'black', 'true')
endfor
この例では、query_insert
関数を使用してシステムがサポートしているインサート可能なオブジェクトのリストを取得し、それぞれのオブジェクトタイプを表示しています。これにより、フローに追加できるオブジェクトを確認できます。
応用例
query_insert
は、次のようなシナリオで使用されます。
-
画像処理フローへのオブジェクトの追加
フローに新しいオブジェクト(例えば、画像やXLD輪郭)を追加する際に、どのタイプのオブジェクトがサポートされているかを確認します。 -
処理の最適化
サポートされているオブジェクトのリストを確認し、効率的にフローに適したオブジェクトを選択して挿入することで、処理を最適化します。 -
オブジェクト操作の確認
処理フロー内で操作可能なオブジェクトタイプを確認し、適切な操作やメソッドを適用します。
具体例
以下は、インサート可能なオブジェクトタイプを確認し、そのうち画像データに関するオブジェクトを挿入する具体的な例です。
* インサート可能なオブジェクトタイプのクエリを実行
query_insert(InsertableObjects)
* 画像オブジェクトがサポートされているか確認
if ('image' in InsertableObjects)
read_image(Image, 'sample_image.png')
disp_image(Image, WindowHandle)
disp_message(WindowHandle, 'Image inserted successfully', 'window', 12, 12, 'black', 'true')
else
disp_message(WindowHandle, 'Image cannot be inserted', 'window', 12, 12, 'black', 'true')
endif
このコードでは、インサート可能なオブジェクトのリストを確認し、その中に「image」が含まれている場合に、画像を挿入して表示しています。これにより、システムでサポートされているオブジェクトを動的に選択して処理を進めることができます。
まとめ
HALCON
のquery_insert
関数は、システム内でインサート可能なオブジェクトのリストを取得し、画像処理フローにおいて適切なオブジェクトを選択するための便利なツールです。サポートされているオブジェクトを確認することで、処理フローの効率化や最適化が可能になり、複数のオブジェクトを使った柔軟なフロー構築が実現します。特に、異なるオブジェクトタイプをフローに追加する場面で役立ちます。