OpenCv のハフ変換 HoughLines および HoughLinesP 関数の詳細な説明

1: まず関数定義を与えます HoughLines

void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0 )

パラメータの詳細な説明:

image: エッジ検出の出力画像、グレースケール画像である必要があります (ただし、実際にはバイナリ画像です)

行: 検出された行のパラメータのペアを保存するコンテナ

rho: ピクセル単位の極半径の解像度。1 ピクセルを使用します。

theta: パラメータの極角の分解能 (ラジアン単位)。1 度を使用します (つまり、CV_PI/180)。

シータ: 線を「検出」するために必要な曲線交差の最小数

srn および stn: パラメーターのデフォルトは 0 です。
 

ハフラインズP

void HoughLinesP(InputArray image, OutputArray lines, double rho, double theta, int threshold,double minLineLength=0, double maxLineGap=0 )

パラメータの詳細な説明:

image: エッジ検出の出力画像、グレースケール画像 (実際にはバイナリ画像) である必要があります。 

Lines: 検出された直線のパラメータのペア、つまり線分の 2 つの端点の座標を格納するコンテナ

rho : ピクセル単位のパラメータ極半径解像度。1 ピクセルを使用します。

theta: ラジアン単位のパラメータ極角解像度。1 度を使用します (つまり、CV_PI/180)

しきい値: 直線を「検出」するために必要な曲線交差の最小数 

minLinLength: 直線を形成できる最小の点の数。点が足りない線は破棄されます。線分の最小の長さ。

maxLineGap: 線分上の最も近い 2 点間のしきい値
 

2: 原理説明:

ハフ線変換:

  1. ハフ線変換は直線を見つける方法です。
  2. ハフ ライン変換を使用する前に、まず画像をエッジ検出用に処理する必要があります。つまり、ハフ ライン変換の直接入力はエッジ バイナリ イメージのみにすることができます。

実装原則:

        

 

 

上記5と6が重要な点ですが、直交座標系では同一直線上の点は極座標系に変換すると点で交わります。

おすすめ

転載: blog.csdn.net/qq_37835727/article/details/123323084