【HALCON】hough_circle_trans 関数について - 円検出のためのハフ変換

【HALCON】hough_circle_trans 関数について - 円検出のためのハフ変換

2024-09-06

2024-09-06

HALCONhough_circle_trans関数は、ハフ変換を利用して画像内の円形のオブジェクトを検出するための関数です。この関数は、エッジ情報を基にして円形の物体を効率的に識別し、円の中心座標や半径を検出するのに使用されます。

hough_circle_trans 関数の概要

hough_circle_trans関数は、エッジ検出された画像から円を見つけるために、ハフ変換という手法を用いています。ハフ変換は、特定の形状(この場合は円)を検出するためのアルゴリズムであり、エッジから候補となる円のパラメータ(中心座標と半径)を投票形式で計算します。この手法は、ノイズや不完全なエッジでも頑健に円を検出できる特徴があります。

使用方法

hough_circle_trans関数の基本的な使用方法は以下の通りです。

hough_circle_trans(Image, HoughCircles, MinRadius, MaxRadius, VotesThreshold)
  • Image
    エッジが抽出された入力画像。
  • HoughCircles
    検出された円の情報を含む出力パラメータ(円の中心座標と半径)。
  • MinRadius
    検出対象となる円の最小半径。
  • MaxRadius
    検出対象となる円の最大半径。
  • VotesThreshold
    円を検出するための投票数の閾値。閾値が高いほど、検出する円の信頼度が高くなります。

この関数は、指定された半径範囲内の円をエッジ画像から検出し、その結果をHoughCirclesとして出力します。

具体例

以下に、hough_circle_trans関数を使用して円を検出する例を示します。

* エッジ画像の読み込みまたは生成
edges_image(Image)

* 半径10から50の範囲で円を検出
hough_circle_trans(Image, HoughCircles, 10, 50, 100)

* 検出された円を表示
disp_circle(WindowHandle, HoughCircles)

この例では、まずエッジ検出を行った画像Imageに対して、半径10~50の範囲で円を検出しています。VotesThresholdには100を設定し、検出された円の信頼度を上げています。

応用例

hough_circle_trans関数は、以下のような場面で特に有効です。

  • 工業検査
    製造ライン上の部品検査で、円形の部品やドリル穴の検出に使用されます。形状が円であるかどうかの確認やサイズの測定に役立ちます。

  • 医療画像解析
    医用画像において、円形の特徴を持つ構造物(例えば細胞や器官の断面)を検出するために使用できます。

  • 交通監視
    車輪や道路標識などの円形物体を検出し、監視や認識に役立てます。

まとめ

HALCONhough_circle_trans関数は、ハフ変換を用いて画像内の円形オブジェクトを効率的に検出するための便利なツールです。エッジ画像を入力とし、円の中心座標や半径を精度高く抽出できるため、工業検査や医療画像処理など幅広い分野で利用されています。

Recommend