概要
OpenCV の cv2.HoughCircles で円を検出する方法について紹介します。
cv2.HoughCircles
公式リファレンス: cv2.HoughCircles
引数
名前 | 型 | デフォルト値 |
---|---|---|
image | ndarray | |
入力画像 (1チャンネル) | ||
method | HoughModes | |
ハフ変換の手法。現在、選択できる手法は cv2.HoughModes のみである。 | ||
dp | float | |
投票器の解像度 | ||
minDist | float | |
検出される円同士が最低限離れていなければならない距離。同じ円に対して重複して検出されるのを防ぐ役割がある。 | ||
param1 | float | |
Canny 法のヒステリシス処理の上限。ヒステリシス処理の下限はこの値の半分に設定される。 | ||
param2 | float | |
円の中心を検出する際の閾値。低い値にすると、円の誤検出が増え、高い値にすると未検出が増える可能性がある。 | ||
minRadius | int | |
検出する円の半径の下限を の範囲で指定する。 | ||
maxRadius | int | |
検出する円の半径の上限を 以上の値で指定する。 |
返り値
名前 | 説明 | ||
---|---|---|---|
circles | 検出された円の一覧。各要素は (中心の 座標, 中心の 座標, 半径) のタプル。 |
サンプルコード

cv2.HoughLine()
と異なり、cv2.HoughCircles()
内で Canny 法も行うため、グレースケール画像を入力とします。
In [1]:
In [2]:
検出された円の一覧を形状が (NumCircles, 1, 3)
の ndarray で返します。
各要素は検出された円の中心 及び円の半径 を表します。
In [3]:

ipywidgets でパラメータ調整する
ハフ変換はパラメータ調整が必須です。ipywidgets を使って GUI 上でパラメータ調整を行う方法について記載します。
In [4]:
コメント