| OpenCV 4.5.3(日本語機械翻訳)
 | 
| クラス | |
| class | cv::LineSegmentDetector | 
| 線分検出器クラス[【詳解】(英語] | |
| 列挙型 | |
| enum | cv::HoughModes
{ cv::HOUGH_STANDARD = 0 , cv::HOUGH_PROBABILISTIC = 1 , cv::HOUGH_MULTI_SCALE = 2 , cv::HOUGH_GRADIENT = 3 , cv::HOUGH_GRADIENT_ALT = 4 } | 
| ハフ変換のバリアント.[【詳解】(英語] | |
| enum | cv::LineSegmentDetectorModes { cv::LSD_REFINE_NONE = 0 , cv::LSD_REFINE_STD = 1 , cv::LSD_REFINE_ADV = 2 } | 
| 線分検出器のバリアント[【詳解】(英語] | |
| 関数 | |
| CV_EXPORTS_W Ptr< LineSegmentDetector > | cv::createLineSegmentDetector (int refine=LSD_REFINE_STD, double scale=0.8, double sigma_scale=0.6, double quant=2.0, double ang_th=22.5, double log_eps=0, double density_th=0.7, int n_bins=1024) | 
| オブジェクトへのスマート ポインタを作成し、初期化します。LineSegmentDetectorオブジェクトへのスマート・ポインタを作成し、それを初期化します。[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::Canny (InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false) | 
| Cannyアルゴリズムを用いて,画像のエッジを検出します.[Canny86]..[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::Canny (InputArray dx, InputArray dy, OutputArray edges, double threshold1, double threshold2, bool L2gradient=false) | 
| CV_EXPORTS_W void | cv::cornerMinEigenVal (InputArray src, OutputArray dst, int blockSize, int ksize=3, int borderType=BORDER_DEFAULT) | 
| コーナー検出のために,勾配行列の最小固有値を計算します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::cornerHarris (InputArray src, OutputArray dst, int blockSize, int ksize, double k, int borderType=BORDER_DEFAULT) | 
| Harrisコーナー検出器.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::cornerEigenValsAndVecs (InputArray src, OutputArray dst, int blockSize, int ksize, int borderType=BORDER_DEFAULT) | 
| コーナー検出のために,画像ブロックの固有値と固有ベクトルを計算します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::preCornerDetect (InputArray src, OutputArray dst, int ksize, int borderType=BORDER_DEFAULT) | 
| コーナー検出用のフィーチャーマップを計算します。[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::cornerSubPix (InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria) | 
| コーナーの位置を修正します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::goodFeaturesToTrack (InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask=noArray(), int blockSize=3, bool useHarrisDetector=false, double k=0.04) | 
| 画像上の強いコーナーを検出します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::goodFeaturesToTrack (InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDistance, InputArray mask, int blockSize, int gradientSize, bool useHarrisDetector=false, double k=0.04) | 
| CV_EXPORTS | cv::CV_WRAP_AS (goodFeaturesToTrackWithQuality) void goodFeaturesToTrack(InputArray image | 
| 上記と同じですが,検出されたコーナーの品質指標も返されます.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::HoughLines (InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0, double min_theta=0, double max_theta=CV_PI) | 
| 標準的なハフ変換を用いて,2値画像中の線を検出します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::HoughLinesP (InputArray image, OutputArray lines, double rho, double theta, int threshold, double minLineLength=0, double maxLineGap=0) | 
| 確率的ハフ変換を用いて,2値画像中の線分を検出します.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::HoughLinesPointSet (InputArray point, OutputArray lines, int lines_max, int threshold, double min_rho, double max_rho, double rho_step, double min_theta, double max_theta, double theta_step) | 
| 標準的なハフ変換を用いて,点の集合から線を見つけます.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::HoughCircles (InputArray image, OutputArray circles, int method, double dp, double minDist, double param1=100, double param2=100, int minRadius=0, int maxRadius=0) | 
| ハフ変換を利用して,グレースケール画像中の円を見つけます.[【詳解】(英語] | |
| 変数 | |
| CV_EXPORTS OutputArray | cv::corners | 
| CV_EXPORTS OutputArray int | cv::maxCorners | 
| CV_EXPORTS OutputArray int double | cv::qualityLevel | 
| CV_EXPORTS OutputArray int double double | cv::minDistance | 
| CV_EXPORTS OutputArray int double double InputArray | cv::mask | 
| CV_EXPORTS OutputArray int double double InputArray OutputArray | cv::cornersQuality | 
| CV_EXPORTS OutputArray int double double InputArray OutputArray int | cv::blockSize = 3 | 
| CV_EXPORTS OutputArray int double double InputArray OutputArray int int | cv::gradientSize = 3 | 
| CV_EXPORTS OutputArray int double double InputArray OutputArray int int bool | cv::useHarrisDetector = false | 
| CV_EXPORTS OutputArray int double double InputArray OutputArray int int bool double | cv::k = 0.04) | 
| enum cv::HoughModes | 
ハフ変換のバリアント.
| CV_EXPORTS_W void cv::Canny | ( | InputArray | dx, | 
| InputArray | dy, | ||
| OutputArray | edges, | ||
| double | threshold1, | ||
| double | threshold2, | ||
| bool | L2gradient
= false | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
Cannyアルゴリズムを用いて、カスタムの画像グラデーションで画像のエッジを見つけます。
| dx | 入力画像の16ビットx階微分(CV_16SC1 または CV_16SC3). | 
| dy | 入力画像の16ビットy階微分( dx と同型). | 
| edges | 出力エッジマップ.シングルチャンネルの8ビット画像で,画像と同じサイズです. | 
| threshold1 | ヒステリシス処理のための「第1の閾値」. | 
| threshold2 | ヒステリシス処理のための第2の閾値 | 
| L2gradient | より正確な  ノルム  より正確なノルムを使って画像のグラデーションを計算するか(L2gradient=true),あるいはデフォルトの  ノルム  で十分なのか(L2gradient=false)を示します。 | 
| CV_EXPORTS_W void cv::Canny | ( | InputArray | image, | 
| OutputArray | edges, | ||
| double | threshold1, | ||
| double | threshold2, | ||
| int | apertureSize
= 3, | ||
| bool | L2gradient
= false | ||
| ) | 
Cannyアルゴリズムを用いて,画像のエッジを検出します.[Canny86]..
この関数は,Cannyアルゴリズムを用いて入力画像中のエッジを検出し,出力マップのエッジにマークします.エッジの連結には, threshold1 と threshold2 の間の最小値が利用されます.また,最大値は,強いエッジの初期セグメントを見つけるために利用されます.参照http://en.wikipedia.org/wiki/Canny_edge_detector
| image | 8ビットの入力画像。 | 
| edges | 出力エッジマップ.シングルチャンネルの8ビット画像で,画像と同じサイズです. | 
| threshold1 | ヒステリシス処理のための「第1の閾値」. | 
| threshold2 | ヒステリシス処理のための第2の閾値 | 
| apertureSize | Sobel 演算子のアパーチャサイズ。 | 
| L2gradient | より正確な  ノルム  より正確なノルムを使って画像のグラデーションを計算するか(L2gradient=true),あるいはデフォルトの  ノルム  で十分なのか(L2gradient=false)を示します。 | 
| CV_EXPORTS_W void cv::cornerEigenValsAndVecs | ( | InputArray | src, | 
| OutputArray | dst, | ||
| int | blockSize, | ||
| int | ksize, | ||
| int | borderType
= 
BORDER_DEFAULT
 | ||
| ) | 
コーナー検出のために,画像ブロックの固有値と固有ベクトルを計算します.
各ピクセルに対して 関数 cornerEigenValsAndVecs は,各ピクセルに対して, blockSize
関数 cornerEigenValsAndVecs は,各ピクセルに対して, blockSize ブロックサイズ近傍
ブロックサイズ近傍 . この関数は,その近傍領域における導関数の共分散行列を次のように求めます.
. この関数は,その近傍領域における導関数の共分散行列を次のように求めます.
![\[M = \begin{bmatrix} \sum _{S(p)}(dI/dx)^2 & \sum _{S(p)}dI/dx dI/dy \\ \sum _{S(p)}dI/dx dI/dy & \sum _{S(p)}(dI/dy)^2 \end{bmatrix}\]](form_802.png) 
ここで,導関数は Sobel 演算子を用いて計算されます.
の固有ベクトルと固有値を求め,それらを出力画像に保存します. の固有ベクトルと固有値を求め,それらを以下のように出力画像に格納します.
の固有ベクトルと固有値を求め,それらを以下のように出力画像に格納します. ここで
ここで
 のソートされていない固有値です.
のソートされていない固有値です. 
 に対応する固有ベクトルです.
に対応する固有ベクトルです. 
 に対応する固有ベクトルです.
に対応する固有ベクトルです. 
この関数の出力は,ロバストなエッジ検出やコーナー検出に利用できます.
| src | 入力 シングルチャンネルの8ビットまたは浮動小数点の画像. | 
| dst | 結果を保存する画像.これは src と同じサイズで,型は CV_32FC(6) です. | 
| blockSize | ネイバーフッドサイズ(詳細は後述). | 
| ksize | Sobel演算子のアパーチャパラメータ. | 
| borderType | ピクセル外挿法.参照BorderTypes.BORDER_WRAPはサポートされていません. | 
| CV_EXPORTS_W void cv::cornerHarris | ( | InputArray | src, | 
| OutputArray | dst, | ||
| int | blockSize, | ||
| int | ksize, | ||
| double | k, | ||
| int | borderType
= 
BORDER_DEFAULT
 | ||
| ) | 
Harrisコーナー検出器.
この関数は,画像に対して Harris コーナー検出器を実行します.cornerMinEigenVal や cornerEigenValsAndVecs と同様に,各ピクセルに対して を計算します.
を計算します. 勾配共分散行列
勾配共分散行列 を計算します.
を計算します. を計算します.そして,次のような特性を計算します.
を計算します.そして,次のような特性を計算します.
![\[\texttt{dst} (x,y) = \mathrm{det} M^{(x,y)} - k \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2\]](form_799.png) 
画像のコーナーは、この応答マップの局所的な最大値として見つけることができます。
| src | 入力 シングルチャンネルの8ビットまたは浮動小数点の画像. | 
| dst | ハリス検出器の応答を保存する画像.これは,タイプが CV_32FC1 で,サイズが src と同じです. | 
| blockSize | Neighborhood size (詳細は,以下を参照してくださいcornerEigenValsAndVecs). | 
| ksize | Sobel演算子のアパーチャパラメータ. | 
| k | Harris 検出器のフリーパラメータ.上の式を参照してください. | 
| borderType | ピクセル外挿法.参照BorderTypes.BORDER_WRAPはサポートされていません. | 
| CV_EXPORTS_W void cv::cornerMinEigenVal | ( | InputArray | src, | 
| OutputArray | dst, | ||
| int | blockSize, | ||
| int | ksize
= 3, | ||
| int | borderType
= 
BORDER_DEFAULT
 | ||
| ) | 
コーナー検出のために,勾配行列の最小固有値を計算します.
この関数は cornerEigenValsAndVecs と似ていますが,導関数の共分散行列の最小固有値のみを計算して保存します. を, cornerEigenValsAndVecs の説明にある式で計算します.
を, cornerEigenValsAndVecs の説明にある式で計算します.
| src | 入力 シングルチャンネルの8ビットまたは浮動小数点の画像. | 
| dst | 最小固有値を保存するための画像.これは,型が CV_32FC1 で, src と同じサイズです. | 
| blockSize | Neighborhood size (詳細は,以下を参照してくださいcornerEigenValsAndVecs). | 
| ksize | Sobel演算子のアパーチャパラメータ. | 
| borderType | ピクセル外挿法.参照BorderTypes.BORDER_WRAPはサポートされていません. | 
| CV_EXPORTS_W void cv::cornerSubPix | ( | InputArray | image, | 
| InputOutputArray | corners, | ||
| Size | winSize, | ||
| Size | zeroZone, | ||
| TermCriteria | criteria | ||
| ) | 
コーナーの位置を修正します.
この関数は,以下で説明するように,コーナーや半径方向のサドルポイントのサブピクセル精度の位置を求めるために繰り返し処理を行います[forstner1987fast]に記載されています.以下の図に示すように
 
サブピクセル精度のコーナーロケータは,「中心から からある点
からある点 の近傍に位置する点
の近傍に位置する点 の近傍に位置する点への中心からのすべてのベクトルが
の近傍に位置する点への中心からのすべてのベクトルが の画像グラデーションに直交するという観測に基づいています。ただし、画像ノイズや測定ノイズの影響を受けます。式を考えてみましょう。
の画像グラデーションに直交するという観測に基づいています。ただし、画像ノイズや測定ノイズの影響を受けます。式を考えてみましょう。
![\[\epsilon _i = {DI_{p_i}}^T \cdot (q - p_i)\]](form_815.png) 
ここで は,ある点
は,ある点 の近傍にある点
の近傍にある点 . の値は
. の値は の値は,次のように求めます.
の値は,次のように求めます. が最小となるような値を求めます。方程式は
が最小となるような値を求めます。方程式は をゼロに設定します。
をゼロに設定します。
![\[\sum _i(DI_{p_i} \cdot {DI_{p_i}}^T) \cdot q - \sum _i(DI_{p_i} \cdot {DI_{p_i}}^T \cdot p_i)\]](form_818.png) 
の近傍(「探索窓」)での勾配の総和を求めます。 . 第一勾配項を
. 第一勾配項を と呼び、第2勾配項を
と呼び、第2勾配項を となります。
となります。
![\[q = G^{-1} \cdot b\]](form_820.png) 
アルゴリズムは,近傍窓の中心をこの新しい中心に設定し そして,その中心が設定した閾値内に収まるまで繰り返します.
そして,その中心が設定した閾値内に収まるまで繰り返します.
| image | 入力画像は,シングルチャンネル,8ビットまたは浮動小数点数の画像です. | 
| corners | 入力コーナーの初期座標と,出力に提供される洗練された座標. | 
| winSize | 探索窓の辺の長さの半分.例えば,winSize=Size(5,5) の場合,検索窓が使われます.  探索窓が使用されます。 | 
| zeroZone | 探索領域の真ん中にある、下の式の合計が行われない死の領域のサイズの半分。これは,自己相関行列の特異点を避けるために使われることがあります.(-1,-1)の値は、そのようなサイズがないことを示しています。 | 
| criteria | コーナー精密化の反復プロセスの終了の基準。つまり、コーナー位置の精密化のプロセスは、cliteria.maxCountの反復の後か、ある反復においてコーナー位置がcliteria.epsilonよりも小さく移動したときに停止します。 | 
| CV_EXPORTS_W Ptr< LineSegmentDetector > cv::createLineSegmentDetector | ( | int | refine
= 
LSD_REFINE_STD
, | 
| double | scale
= 0.8, | ||
| double | sigma_scale
= 0.6, | ||
| double | quant
= 2.0, | ||
| double | ang_th
= 22.5, | ||
| double | log_eps
= 0, | ||
| double | density_th
= 0.7, | ||
| int | n_bins
= 1024 | ||
| ) | 
オブジェクトへのスマート ポインタを作成し、初期化します。LineSegmentDetectorオブジェクトへのスマート・ポインタを作成し、それを初期化します。
のクラスはスレッドセーフではありません。LineSegmentDetectorアルゴリズムは標準的な値で定義されています。上級者のみが、自分の用途に合わせて編集することができます。
| refine | 見つかった線がどのように洗練されるかについてはLineSegmentDetectorModes | 
| scale | 線を見つけるために使用される画像のスケールです。Range(0..1]. | 
| sigma_scale | ガウシアンフィルタのシグマです。これは sigma = sigma_scale/scale として計算されます。 | 
| quant | 勾配ノルムの量子化誤差の境界線。 | 
| ang_th | 勾配角度の許容範囲を度単位で指定します。 | 
| log_eps | 検出のしきい値.-log10(NFA) > log_eps. アドバンスリファインメントが選択された場合にのみ使用されます。 | 
| density_th | 囲む矩形内の整列領域点の最小密度。 | 
| n_bins | 勾配係数の疑似的な順序付けにおけるビンの数。 | 
| CV_EXPORTS cv::CV_WRAP_AS | ( | goodFeaturesToTrackWithQuality | ) | 
上記と同じですが,検出されたコーナーの品質指標も返されます.
| image | 入力 8ビット,あるいは浮動小数点型の32ビット,シングルチャンネル画像. | 
| corners | 出力 検出されたコーナーのベクトル. | 
| maxCorners | 返すべきコーナーの最大数.検出されたコーナーよりも多くのコーナーがある場合は,その中で最も強いコーナーが返されます. maxCorners <= 0最大数の制限がなく,検出されたすべてのコーナーが返されることを意味します。 | 
| qualityLevel | 画像の角の品質の最小許容値を特徴づけるパラメータ。このパラメータ値には,最適なコーナー品質指標が乗じられます.cornerMinEigenVal)またはハリス関数応答(参照cornerHarris). 品質測定値が積よりも小さいコーナーは拒否されます。例えば、ベストコーナーの品質尺度が1500で、qualityLevel=0.01の場合、品質尺度が15未満のコーナーはすべて拒否されます。 | 
| minDistance | 返されたコーナー間の可能な限りの最小ユークリッド距離。 | 
| mask | 関心領域。画像が空ではない場合(CV_8UC1型で,画像と同じサイズである必要があります),コーナーが検出される領域を指定します. | 
| cornersQuality | 検出されたコーナーの品質指標の出力ベクトル. | 
| blockSize | 各ピクセルの近傍領域における微分共分散行列を計算するための,平均ブロックのサイズ.cornerEigenValsAndVecs を参照してください. | 
| gradientSize | 微分の計算に使われるSobel演算子のアパーチャパラメータ.cornerEigenValsAndVecs を参照してください. | 
| useHarrisDetector | Harris検出器を利用するかどうかを示すパラメータ(参照cornerHarrisを参照),またはcornerMinEigenVal. | 
| k | Harris検出器のフリーパラメータ. | 
| CV_EXPORTS_W void cv::goodFeaturesToTrack | ( | InputArray | image, | 
| OutputArray | corners, | ||
| int | maxCorners, | ||
| double | qualityLevel, | ||
| double | minDistance, | ||
| InputArray | mask
= noArray(), | ||
| int | blockSize
= 3, | ||
| bool | useHarrisDetector
= false, | ||
| double | k
= 0.04 | ||
| ) | 
画像上の強いコーナーを検出します.
この関数は,以下で説明されているように,画像または指定された画像領域において最も目立つコーナーを見つけます.[Shi94] を参照してください.
 未満の最小固有値を持つコーナーは除去されます。
未満の最小固有値を持つコーナーは除去されます。この関数は,オブジェクトのポイントベーストラッカーを初期化するために利用できます.
| image | 入力 8ビット,あるいは浮動小数点型の32ビット,シングルチャンネル画像. | 
| corners | 出力 検出されたコーナーのベクトル. | 
| maxCorners | 返すべきコーナーの最大数.検出されたコーナーよりも多くのコーナーがある場合は,その中で最も強いコーナーが返されます. maxCorners <= 0最大数の制限がなく,検出されたすべてのコーナーが返されることを意味します。 | 
| qualityLevel | 画像の角の品質の最小許容値を特徴づけるパラメータ。このパラメータ値には,最適なコーナー品質指標が乗じられます.cornerMinEigenVal)またはハリス関数応答(参照cornerHarris). 品質測定値が積よりも小さいコーナーは拒否されます。例えば、ベストコーナーの品質尺度が1500で、qualityLevel=0.01の場合、品質尺度が15未満のコーナーはすべて拒否されます。 | 
| minDistance | 返されたコーナー間の可能な限りの最小ユークリッド距離。 | 
| mask | 任意の関心領域.画像が空ではない場合(CV_8UC1 型で,image と同じサイズである必要があります),コーナーが検出される領域を指定します. | 
| blockSize | 各ピクセルの近傍領域における微分共分散行列を計算するための,平均ブロックのサイズ.cornerEigenValsAndVecs を参照してください. | 
| useHarrisDetector | Harris検出器を利用するかどうかを示すパラメータ(参照cornerHarrisを参照),またはcornerMinEigenVal. | 
| k | Harris検出器のフリーパラメータ. | 
| CV_EXPORTS_W void cv::HoughCircles | ( | InputArray | image, | 
| OutputArray | circles, | ||
| int | method, | ||
| double | dp, | ||
| double | minDist, | ||
| double | param1
= 100, | ||
| double | param2
= 100, | ||
| int | minRadius
= 0, | ||
| int | maxRadius
= 0 | ||
| ) | 
ハフ変換を利用して,グレースケール画像中の円を見つけます.
この関数は,ハフ変換を改良してグレースケール画像中の円を見つけます.
例: :
また、画像がすでに柔らかい場合を除き、画像を少し滑らかにすることもできます。例えばGaussianBlur()のように、7x7カーネル、1.5x1.5シグマなどでぼかすとよいでしょう。
| image | 8ビット,シングルチャンネル,グレースケールの入力画像. | 
| circles | 見つかった円の出力ベクトル。各ベクトルは,3または4要素の浮動小数点ベクトルとして符号化される  または  . | 
| method | 検出方法,参照HoughModes. 使用できる方法はHOUGH_GRADIENTおよびHOUGH_GRADIENT_ALT. | 
| dp | 画像の解像度に対するアキュムレータの解像度の逆数。例えば,dp=1 の場合,アキュムレータの解像度は入力画像と同じになります.dp=2 の場合、アキュムレータの幅と高さは半分になります。ではHOUGH_GRADIENT_ALTの場合、非常に小さな円を検出する必要がなければ、dp=1.5 を推奨します。 | 
| minDist | 検出された円の中心間の最小距離です。この値が小さすぎると、真の円に加えて複数の隣り合う円が誤検出される可能性があります。大きすぎると、いくつかの円を見逃してしまう可能性があります。 | 
| param1 | 第一の手法固有のパラメータ。の場合はHOUGH_GRADIENTおよびHOUGH_GRADIENT_ALTの場合,Cannyエッジ検出器に渡される2つの閾値のうち,高い方の閾値です(低い方の閾値は2倍小さくなります)。なおHOUGH_GRADIENT_ALTはScharrアルゴリズムを使って画像の微分を計算しているため、通常、閾値はより高い値になります。例えば、300、または通常の露出でコントラストの高い画像の場合に使用します。 | 
| param2 | 2番目の手法固有のパラメータ。の場合はHOUGH_GRADIENTの場合,検出段階での円の中心に対する累積しきい値です。この値が小さいほど、より多くの偽の円が検出される可能性があります。大きいアキュムレータ値に対応するサークルが最初に返されます。の場合、これは「完璧な」円です。HOUGH_GRADIENT_ALTアルゴリズムの場合、これは円の「完璧さ」の尺度です。これが1に近いほど、アルゴリズムは良い形の円を選択します。ほとんどの場合、0.9で十分です。小さな円をよりよく検出したい場合は、0.85や0.8、あるいはそれ以下に下げてもよいでしょう。しかし、多くの偽の円を避けるために、検索範囲[minRadius, maxRadius]を制限することも試みてください。 | 
| minRadius | 最小円半径。 | 
| maxRadius | 最大円半径です。<= 0の場合、画像の最大寸法を使用します。<0の場合HOUGH_GRADIENTは半径を求めずに中心を返します。HOUGH_GRADIENT_ALTは常に円の半径を計算します。 | 
| CV_EXPORTS_W void cv::HoughLines | ( | InputArray | image, | 
| OutputArray | lines, | ||
| double | rho, | ||
| double | theta, | ||
| int | threshold, | ||
| double | srn
= 0, | ||
| double | stn
= 0, | ||
| double | min_theta
= 0, | ||
| double | max_theta
= CV_PI | ||
| ) | 
標準的なハフ変換を用いて,2値画像中の線を検出します.
この関数は,線を検出するための標準的なハフ変換アルゴリズム,あるいは標準的なマルチスケールハフ変換アルゴリズムを実装しています.参照http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htmを参照してください.
| image | 8ビット,シングルチャンネルの2値入力画像.この画像は,この関数によって変更される可能性があります. | 
| lines | ラインの出力ベクトル.各線は,2要素または3要素のベクトルで表現されます  または  .  は,座標原点からの距離  (画像の左上隅)からの距離です.  は,ラインの回転角度をラジアンで表したものです(  ).  はアキュムレータの値です。 | 
| rho | アキュムレータの距離分解能をピクセル単位で表します。 | 
| theta | アキュムレータの角度分解能をラジアンで表します。 | 
| threshold | Accumulatorは閾値パラメータです。十分な得票数を得た線のみが返されます (  ). | 
| srn | マルチスケールのハフ変換では,距離分解能 rho の除数となります.粗いアキュムレータの距離分解能は rho であり,正確なアキュムレータの分解能は rho/srn です.srn=0とstn=0の場合は,古典的なハフ変換が用いられる。それ以外の場合,これらのパラメータは両方とも正でなければならない. | 
| stn | マルチスケールハフ変換では,距離分解能θの除数である. | 
| min_theta | 標準およびマルチスケールのハフ変換において,線の有無をチェックするための最小の角度です.0 と max_theta の間でなければならない。 | 
| max_theta | 標準およびマルチスケールのハフ変換では,線の有無を確認するための最大の角度を指定します.min_theta と CV_PI の間にある必要があります. | 
| CV_EXPORTS_W void cv::HoughLinesP | ( | InputArray | image, | 
| OutputArray | lines, | ||
| double | rho, | ||
| double | theta, | ||
| int | threshold, | ||
| double | minLineLength
= 0, | ||
| double | maxLineGap
= 0 | ||
| ) | 
確率的ハフ変換を用いて,2値画像中の線分を検出します.
この関数は,線を検出するための確率的ハフ変換アルゴリズムを実装しており,その説明は[Matas00] に記述されています.
以下の線検出の例を参照してください.
これは,関数のパラメータを調整した画像のサンプルです.
 
そしてこれは,確率的ハフ変換を用いた場合の上記プログラムの出力です.
 
| image | 8ビット,シングルチャンネルの2値入力画像.この画像は,この関数によって変更される可能性があります. | 
| lines | 線の出力ベクトル.各線は,4要素のベクトル  ここで  および  は,検出された各線分の終点です. | 
| rho | アキュムレータの距離分解能をピクセル単位で表します。 | 
| theta | アキュムレータの角度分解能をラジアンで表します。 | 
| threshold | Accumulatorは閾値パラメータです。十分な得票数を得た線のみが返されます (  ). | 
| minLineLength | 最小の線の長さ。それより短い線分は拒否されます. | 
| maxLineGap | 同一線上の点を結ぶための点間の最大許容ギャップ。 | 
| CV_EXPORTS_W void cv::HoughLinesPointSet | ( | InputArray | point, | 
| OutputArray | lines, | ||
| int | lines_max, | ||
| int | threshold, | ||
| double | min_rho, | ||
| double | max_rho, | ||
| double | rho_step, | ||
| double | min_theta, | ||
| double | max_theta, | ||
| double | theta_step | ||
| ) | 
標準的なハフ変換を用いて,点の集合から線を見つけます.
この関数は,ハフ変換を修正して点の集合から線を見つけます.
| point | 点の入力ベクトル.各ベクトルは,Pointベクトルとしてエンコードされなければいけません  . 型は CV_32FC2 または CV_32SC2 でなければいけません. | 
| lines | 見つかった線の出力ベクトル.各ベクトルは, vector<Vec3d> としてエンコードされます.  . votes' の値が大きいほど,ハフ(Hough)線の信頼性が高くなります. | 
| lines_max | ハフ(Hough)線の最大カウント数. | 
| threshold | Accumulatorは閾値パラメータです。十分な得票数を得た線のみが返されます (  ) | 
| min_rho | アキュムレータの最小距離値(ピクセル単位). | 
| max_rho | アキュムレータの最大距離の値をピクセルで表したものです。 | 
| rho_step | アキュムレータの距離分解能をピクセル単位で表します。 | 
| min_theta | アキュムレータの最小角度をラジアンで表した値です。 | 
| max_theta | アキュムレータの最大角度をラジアンで表した値 | 
| theta_step | アキュムレータの角度分解能をラジアンで表します。 | 
| CV_EXPORTS_W void cv::preCornerDetect | ( | InputArray | src, | 
| OutputArray | dst, | ||
| int | ksize, | ||
| int | borderType
= 
BORDER_DEFAULT
 | ||
| ) | 
コーナー検出用のフィーチャーマップを計算します。
この関数は,入力画像の複素空間微分関数を計算します
![\[\texttt{dst} = (D_x \texttt{src} )^2 \cdot D_{yy} \texttt{src} + (D_y \texttt{src} )^2 \cdot D_{xx} \texttt{src} - 2 D_x \texttt{src} \cdot D_y \texttt{src} \cdot D_{xy} \texttt{src}\]](form_809.png) 
ここで ,
, は,第1の画像導関数である.
は,第1の画像導関数である. ,
, は2次画像の微分,そして
は2次画像の微分,そして は,混合導関数です.
は,混合導関数です.
コーナーは,以下に示すように,関数の局所的な最大値として検出されます.
| src | ソースとなるシングルチャンネル8ビットの浮動小数点画像. | 
| dst | 出力画像.タイプは CV_32F で,サイズは src と同じです. | 
| ksize | Sobel のアパーチャサイズ. | 
| borderType | ピクセル外挿法.参照BorderTypes.BORDER_WRAPはサポートされていません. |