特徴検出
Canny
Comments from the Wiki
-
Canny(image, edges, threshold1, threshold2, aperture_size=3) → None
エッジ検出のための Canny アルゴリズムを実行します.
パラメタ: |
- image (CvArr) – シングルチャンネルの入力画像.
- edges (CvArr) – シングルチャンネルの出力画像,この関数によって検出されたエッジが格納されます.
- threshold1 (float) – 1 番目の閾値.
- threshold2 (float) – 2 番目の閾値.
- aperture_size (int) – Sobelオペレータのアパーチャサイズ( Sobel を参照してください).
|
この関数は,Canny アルゴリズムを用いて入力画像
image
中のエッジを検出し,出力画像
edges
上に記録します.
threshold1
と
threshold2
の内,小さい方の値はエッジ同士の接続に利用され,大きい方の値は強いエッジの初期検出に利用されます.
CornerEigenValsAndVecs
Comments from the Wiki
-
CornerEigenValsAndVecs(image, eigenvv, blockSize, aperture_size=3) → None
コーナー検出のための,画像の固有値と固有ベクトルを求めます.
パラメタ: |
- image (CvArr) – 入力画像.
- eigenvv (CvArr) – 結果を保存するための画像.入力画像の 6 倍の幅が必要です.
- blockSize (int) – 近傍領域のサイズ(以下の説明を参照してください).
- aperture_size (int) – Sobelオペレータのアパーチャサイズ( Sobel を参照してください).
|
この関数では,まず各ピクセルに対して
blockSize
blockSize
の近傍領域 S(p) を考えます.そして,以下のように各近傍領域全体に対して導関数の共変動行列を求めます:
この行列の固有ベクトルと固有値を求めて,出力画像に
の形式で保存します.ここで,
です.
CornerHarris
Comments from the Wiki
-
CornerHarris(image, harris_dst, blockSize, aperture_size=3, k=0.04) → None
Harris エッジ検出器.
パラメタ: |
- image (CvArr) – 入力画像.
- harris_dst (CvArr) – 検出結果を保存するための画像. image と同じサイズでなければいけません.
- blockSize (int) – 近傍領域サイズ( CornerEigenValsAndVecs の説明を参照してください).
- aperture_size (int) – Sobelオペレータのアパーチャサイズ( Sobel を参照してください).
- k (float) – Harris 検出器のパラメータ.後述の式を参照してください.
|
この関数は,入力画像に対して Harris エッジ検出を行います.
CornerMinEigenVal
や
CornerEigenValsAndVecs
と同様に,各ピクセルの
サイズの近傍領域全体に対して
の勾配共変動行列
が求められます.
そして,
が出力画像に格納されます.入力画像中のコーナーは,出力画像における極大点として検出できます.
CornerMinEigenVal
Comments from the Wiki
-
CornerMinEigenVal(image, eigenval, blockSize, aperture_size=3) → None
コーナー検出のための,勾配行列の最小固有値を求めます.
パラメタ: |
- image (CvArr) – 入力画像.
- eigenval (CvArr) – 最小固有値を保存するための画像. image と同じサイズでなければいけません.
- blockSize (int) – 近傍領域サイズ( CornerEigenValsAndVecs の説明を参照してください).
- aperture_size (int) – Sobelオペレータのアパーチャサイズ( Sobel を参照してください).
|
この関数は,関数
CornerEigenValsAndVecs
と似ていますが,これは各ピクセルに対して導関数の共変動行列の最小固有値のみを求めます.つまりそれは,前述の関数の
に相当します.
GoodFeaturesToTrack
Comments from the Wiki
-
GoodFeaturesToTrack(image, eigImage, tempImage, cornerCount, qualityLevel, minDistance, mask=NULL, blockSize=3, useHarris=0, k=0.04) → corners
画像内の強いコーナーを検出します.
パラメタ: |
- image (CvArr) – 8ビット,または32ビット浮動小数点型シングルチャンネルの入力画像.
- eigImage (CvArr) – 32ビット浮動小数点型のテンポラリ画像.サイズは image と同じです.
- tempImage (CvArr) – 別のテンポラリ画像.サイズ・フォーマットともに eigImage と同じです.
- cornerCount (int) – 検出されたコーナーの数.
- qualityLevel (float) – 最大固有値,最小固有値に乗ずる定数.これは,検出される画像コーナーの許容最低品質を指定します.
- minDistance (float) – 検出されるコーナー間の許容最小距離.ユークリッド距離が用いられます.
- mask (CvArr) – ROI.関数は,この指定領域内から点を選択しますが,NULL ならば画像全体から選択します.
- blockSize (int) – 平均化ブロックサイズ.この関数内部で利用される CornerMinEigenVal や CornerHarris に渡される値です.
- useHarris (int) – 0でない場合は,デフォルトの CornerMinEigenVal の代わりに Harris オペレータ( CornerHarris )が利用されます.
- k (float) – Harris 検出器のパラメータ. ( ) の場合にのみ用いられます.
|
この関数は,与えられた画像から大きな固有値を持つコーナーを検出します.これはまず,関数
CornerMinEigenVal
を利用して入力画像の各ピクセルに対する最小固有値を計算し,それを
eigImage
に格納します.そして,non-maxima suppression を行います(
の近傍領域内において,その極大値のみが残ります).次に,
よりも小さな固有値を持つコーナーを棄却します.最後に,あらゆる2つのコーナー同士の距離が
minDistance
よりも小さくならないようにします.これによって,強い方のコーナーに近すぎる,弱い方のコーナー(最小固有値が小さいコーナー)が削除されます.
この関数が,パラメータ
qualityLevel
に異なる値
A
と
B
を与えられて呼び出され,その時に
A
> {B} であるとします.その場合,出力コーナー配列において
qualityLevel=A
で求められたコーナーの配列が,
qualityLevel=B
で求められたものよりも前に位置することに注意してください.
HoughLines2
Comments from the Wiki
-
HoughLines2(image, storage, method, rho, theta, threshold, param1=0, param2=0) → lines
ハフ変換を用いて,2値画像から直線を検出します.
この関数は,線を検出するハフ変換のいくつかのバリエーションの実装です.
PreCornerDetect
Comments from the Wiki
-
PreCornerDetect(image, corners, apertureSize=3) → None
コーナー検出のための特徴マップを求めます.
パラメタ: |
- image (CvArr) – 入力画像.
- corners (CvArr) – コーナー候補を保存するための画像.
- apertureSize (int) – Sobelオペレータのアパーチャサイズ( Sobel を参照してください).
|
この関数は,以下の関数を計算します.
ここで,
は1次微分画像,
は2次微分画像を表します.
コーナーは,以下のように関数の極大点として計算できます: