OpenCV 4.5.3(日本語機械翻訳)
|
クラス |
|
class | cv::Moments |
が返す構造体cv::moments
[【詳解】(英語]
|
|
class | cv::DataType< Moments > |
class | cv::GeneralizedHough |
一般化ハフ変換を用いて,グレースケール画像の中から任意のテンプレートを見つけます.[【詳解】(英語]
|
|
class | cv::GeneralizedHoughBallard |
一般化ハフ変換を用いて,グレースケール画像の中から任意のテンプレートを見つけます.[【詳解】(英語]
|
|
class | cv::GeneralizedHoughGuil |
一般化ハフ変換を用いて,グレースケール画像の中から任意のテンプレートを見つけます.[【詳解】(英語]
|
|
列挙型 |
|
enum |
cv::ConnectedComponentsTypes
{
cv::CC_STAT_LEFT = 0 , cv::CC_STAT_TOP = 1 , cv::CC_STAT_WIDTH = 2 , cv::CC_STAT_HEIGHT = 3 , cv::CC_STAT_AREA = 4 , cv::CC_STAT_MAX = 5 } |
連結成分統計[【詳解】(英語]
|
|
enum |
cv::ConnectedComponentsAlgorithmsTypes
{
cv::CCL_DEFAULT = -1 , cv::CCL_WU = 0 , cv::CCL_GRANA = 1 , cv::CCL_BOLELLI = 2 , cv::CCL_SAUF = 3 , cv::CCL_BBDT = 4 , cv::CCL_SPAGHETTI = 5 } |
連結成分アルゴリズム[【詳解】(英語]
|
|
enum |
cv::RetrievalModes
{
cv::RETR_EXTERNAL = 0 , cv::RETR_LIST = 1 , cv::RETR_CCOMP = 2 , cv::RETR_TREE = 3 , RETR_FLOODFILL = 4 } |
輪郭線検索アルゴリズムのモード[【詳解】(英語]
|
|
enum | cv::ContourApproximationModes { cv::CHAIN_APPROX_NONE = 1 , cv::CHAIN_APPROX_SIMPLE = 2 , cv::CHAIN_APPROX_TC89_L1 = 3 , cv::CHAIN_APPROX_TC89_KCOS = 4 } |
輪郭線近似アルゴリズム[【詳解】(英語]
|
|
enum | cv::ShapeMatchModes { cv::CONTOURS_MATCH_I1 =1 , cv::CONTOURS_MATCH_I2 =2 , cv::CONTOURS_MATCH_I3 =3 } |
形状照合法[【詳解】(英語]
|
|
enum | cv::RectanglesIntersectTypes { cv::INTERSECT_NONE = 0 , cv::INTERSECT_PARTIAL = 1 , cv::INTERSECT_FULL = 2 } |
矩形の交点の種類[【詳解】(英語]
|
|
関数 |
|
CV_EXPORTS_W Moments | cv::moments (InputArray array, bool binaryImage=false) |
ポリゴンやラスタライズされた形状の,3次までのすべてのモーメントを計算します.[【詳解】(英語]
|
|
CV_EXPORTS void | cv::HuMoments (const Moments &moments, double hu[7]) |
7つのHu不変量を計算します。[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::HuMoments (const Moments &m, OutputArray hu) |
cv::CV_EXPORTS_AS (connectedComponentsWithAlgorithm) int connectedComponents(InputArray image | |
連結成分の計算 ブーリアンイメージのラベル付きイメージ[【詳解】(英語]
|
|
CV_EXPORTS_W int | cv::connectedComponents (InputArray image, OutputArray labels, int connectivity=8, int ltype=CV_32S) |
cv::CV_EXPORTS_AS (connectedComponentsWithStatsWithAlgorithm) int connectedComponentsWithStats(InputArray image | |
は,ブーリアン画像の連結成分ラベル付き画像を計算し,各ラベルの統計出力も生成します.[【詳解】(英語]
|
|
CV_EXPORTS_W int | cv::connectedComponentsWithStats (InputArray image, OutputArray labels, OutputArray stats, OutputArray centroids, int connectivity=8, int ltype=CV_32S) |
CV_EXPORTS_W void | cv::findContours (InputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point()) |
2値画像の輪郭を見つけます.[【詳解】(英語]
|
|
CV_EXPORTS void | cv::findContours (InputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset=Point()) |
CV_EXPORTS_W void | cv::approxPolyDP (InputArray curve, OutputArray approxCurve, double epsilon, bool closed) |
多角形の曲線を指定された精度で近似します。[【詳解】(英語]
|
|
CV_EXPORTS_W double | cv::arcLength (InputArray curve, bool closed) |
輪郭の周囲長や曲線の長さを計算します。[【詳解】(英語]
|
|
CV_EXPORTS_W Rect | cv::boundingRect (InputArray array) |
点集合やグレースケール画像の非0ピクセルの右上境界矩形を計算します.[【詳解】(英語]
|
|
CV_EXPORTS_W double | cv::contourArea (InputArray contour, bool oriented=false) |
輪郭線の面積を計算します.[【詳解】(英語]
|
|
CV_EXPORTS_W RotatedRect | cv::minAreaRect (InputArray points) |
入力された2次元点群を囲む,最小面積の回転した矩形を求めます.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::boxPoints (RotatedRect box, OutputArray points) |
回転した矩形の4つの頂点を求めます.回転した矩形を描画するのに便利です.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::minEnclosingCircle (InputArray points, CV_OUT Point2f ¢er, CV_OUT float &radius) |
2次元点群を囲む最小面積の円を求めます.[【詳解】(英語]
|
|
CV_EXPORTS_W double | cv::minEnclosingTriangle (InputArray points, CV_OUT OutputArray triangle) |
2次元点集合を囲む最小面積の三角形を求め、その面積を返します。[【詳解】(英語]
|
|
CV_EXPORTS_W double | cv::matchShapes (InputArray contour1, InputArray contour2, int method, double parameter) |
2つの形状を比較します。[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::convexHull (InputArray points, OutputArray hull, bool clockwise=false, bool returnPoints=true) |
点集合の凸包を求める関数です。[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::convexityDefects (InputArray contour, InputArray convexhull, OutputArray convexityDefects) |
輪郭の凸欠陥を検出します。[【詳解】(英語]
|
|
CV_EXPORTS_W bool | cv::isContourConvex (InputArray contour) |
輪郭の凸性をテストします。[【詳解】(英語]
|
|
CV_EXPORTS_W float | cv::intersectConvexConvex (InputArray p1, InputArray p2, OutputArray p12, bool handleNested=true) |
2つの凸状の多角形の交点を求める[【詳解】(英語]
|
|
CV_EXPORTS_W RotatedRect | cv::fitEllipse (InputArray points) |
2次元の点群の周りに楕円をフィットさせます.[【詳解】(英語]
|
|
CV_EXPORTS_W RotatedRect | cv::fitEllipseAMS (InputArray points) |
2次元の点群の周りに楕円をフィットさせます.[【詳解】(英語]
|
|
CV_EXPORTS_W RotatedRect | cv::fitEllipseDirect (InputArray points) |
2次元の点群の周りに楕円をフィットさせます.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::fitLine (InputArray points, OutputArray line, int distType, double param, double reps, double aeps) |
直線を2次元あるいは3次元の点群にフィットさせます.[【詳解】(英語]
|
|
CV_EXPORTS_W double | cv::pointPolygonTest (InputArray contour, Point2f pt, bool measureDist) |
Point-in-contourテストを行います。[【詳解】(英語]
|
|
CV_EXPORTS_W int | cv::rotatedRectangleIntersection (const RotatedRect &rect1, const RotatedRect &rect2, OutputArray intersectingRegion) |
回転させた2つの矩形に交点が存在するかどうかを調べます.[【詳解】(英語]
|
|
CV_EXPORTS_W Ptr< GeneralizedHoughBallard > | cv::createGeneralizedHoughBallard () |
オブジェクトへのスマート ポインタを作成し、初期化します。cv::GeneralizedHoughBallardクラスを作成し,それを初期化します. |
|
CV_EXPORTS_W Ptr< GeneralizedHoughGuil > | cv::createGeneralizedHoughGuil () |
オブジェクトへのスマート ポインタを作成し、初期化します。cv::GeneralizedHoughGuilクラスを作成し,それを初期化します. |
|
変数 |
|
OutputArray int | cv::connectivity |
OutputArray int int | cv::ltype |
OutputArray int int int | cv::ccltype |
OutputArray OutputArray | cv::stats |
OutputArray OutputArray OutputArray | cv::centroids |
連結成分アルゴリズム
輪郭線近似アルゴリズム
enum cv::RetrievalModes |
輪郭線検索アルゴリズムのモード
enum cv::ShapeMatchModes |
CV_EXPORTS_W void cv::approxPolyDP | ( | InputArray | curve, |
OutputArray | approxCurve, | ||
double | epsilon, | ||
bool | closed | ||
) |
多角形の曲線を指定された精度で近似します。
この関数はcv::approxPolyDPは、ある曲線や多角形を、より少ない頂点を持つ別の曲線や多角形と、それらの間の距離が指定された精度以下になるように近似します。Douglas-Peucker アルゴリズムを使用しています。http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm
curve | std::vectorに格納された2次元点の入力ベクトルまたはMat |
approxCurve | 近似の結果.型は入力曲線の型と一致する必要があります。 |
epsilon | 近似精度を指定するパラメータ.元の曲線とその近似曲線の最大距離を指定します。 |
closed | true の場合、近似曲線は閉じています(最初の頂点と最後の頂点がつながっています)。そうでない場合は、閉じていません。 |
CV_EXPORTS_W double cv::arcLength | ( | InputArray | curve, |
bool | closed | ||
) |
輪郭の周囲長や曲線の長さを計算します。
この関数は,曲線の長さや,閉じた輪郭の周囲長を求めます.
curve | 入力 2次元点のベクトル(std::vector または std::vector に格納されています).Mat. |
closed | 曲線が閉じているかどうかを示すフラグ. |
CV_EXPORTS_W Rect cv::boundingRect | ( | InputArray | array | ) |
点集合やグレースケール画像の非0ピクセルの右上境界矩形を計算します.
この関数は,指定された点集合またはグレースケール画像の非ゼロピクセルに対する最小の右上がりの外接矩形を計算して返します.
array | 入力 濃淡画像,またはstd::vectorに格納された2次元点集合,またはMat. |
CV_EXPORTS_W void cv::boxPoints | ( | RotatedRect | box, |
OutputArray | points | ||
) |
回転した矩形の4つの頂点を求めます.回転した矩形を描画するのに便利です.
この関数は,回転した矩形の4つの頂点を求めます.この関数は,矩形を描画するのに便利です.C++ では,この関数を使う代わりに,直接RotatedRect::pointsメソッドを使用します。詳しくは,チュートリアル「Creating Bounding rotated box and ellips for contours」をご覧ください.
box | 入力される回転した矩形。の出力である場合もあります。 |
points | 矩形の4つの頂点を表す出力配列. |
CV_EXPORTS_W int cv::connectedComponents | ( | InputArray | image, |
OutputArray | labels, | ||
int |
connectivity
=
8 ,
|
||
int |
ltype
=
CV_32S |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
image | ラベル付けされる8ビットシングルチャンネル画像 |
labels | ラベル付けされる画像 |
connectivity | 8方向または4方向の接続を表す8または4 |
ltype | 出力画像のラベルタイプ.現在は CV_32S と CV_16U がサポートされています. |
CV_EXPORTS_W int cv::connectedComponentsWithStats | ( | InputArray | image, |
OutputArray | labels, | ||
OutputArray | stats, | ||
OutputArray | centroids, | ||
int |
connectivity
=
8 ,
|
||
int |
ltype
=
CV_32S |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
image | ラベル付けされる8ビットシングルチャンネル画像 |
labels | ラベル付けされる画像 |
stats | 背景ラベルを含む,各ラベルの統計情報を出力します.統計情報にアクセスするには stats(label, COLUMN) を利用します.ConnectedComponentsTypesで,統計量を選択します.データタイプはCV_32Sです。 |
centroids | 背景ラベルも含めた各ラベルのセントロイド出力.セントロイドへのアクセスは, x の場合は centroids(label, 0) , y の場合は centroids(label, 1) となります. |
connectivity | 8方向または4方向の接続を表す8または4 |
ltype | 出力画像のラベルタイプ.現在は CV_32S と CV_16U がサポートされています. |
CV_EXPORTS_W double cv::contourArea | ( | InputArray | contour, |
bool |
oriented
=
false |
||
) |
輪郭線の面積を計算します.
この関数は,輪郭の面積を計算します.moments と同様に,面積は Green の式を用いて計算されます.を用いて輪郭を描いた場合,返される面積と0ではないピクセルの数は異なります.drawContoursまたはfillPolyを使って輪郭を描いた場合,返される面積とゼロではないピクセル数は異なる可能性があります。また,この関数は,自己交差のある輪郭に対しては,確実に間違った結果を返します.
例
contour | 2次元点(輪郭の頂点)の入力ベクトルは,std::vector またはMat. |
oriented | Oriented area フラグ.これが真の場合,この関数は,輪郭の向き(時計回りか反時計回りか)に応じた符号付き面積値を返します.この機能を使えば、面積の符号を取ることで、輪郭の向きを判断することができます。デフォルトでは,このパラメータはfalseであり,絶対値が返されます. |
CV_EXPORTS_W void cv::convexHull | ( | InputArray | points, |
OutputArray | hull, | ||
bool |
clockwise
=
false ,
|
||
bool |
returnPoints
=
true |
||
) |
点集合の凸包を求める関数です。
この関数はcv::convexHullは,Sklanskyのアルゴリズムを用いて,2次元点集合の凸包を求めます.[Sklansky82].これには現在の実装では,O(N logN)現在の実装では,O(N logN)の複雑さです.
points | 入力 2次元点集合,std::vector または std::vector に格納される.Mat. |
hull | 凸包を出力します.これは,インデックスの整数ベクトルか,点のベクトルである.最初のケースでは,船体要素は元の配列の凸包点の0ベースのインデックスです(凸包点の集合は元の点集合の部分集合なので).2つ目のケースでは,船体要素は凸包点そのものです. |
clockwise | 向きフラグ.これが真の場合,出力される凸包は時計回りに配向されます.そうでない場合は,反時計回りになります.想定される座標系は,X軸が右を向き,Y軸が上を向いています. |
returnPoints | 操作フラグ。行列の場合,このフラグが真の場合,この関数は凸包の点を返します.そうでない場合は,凸包点のインデックスが返されます.出力配列が std::vector の場合,このフラグは無視され,出力は vector の型に依存します: std::vector<int> は returnPoints=false を意味し, std::vector<Point> は returnPoints=true を意味します. |
points
およびhull
が異なる配列である場合,インプレース処理はサポートされていません。詳しくは,対応するチュートリアルをご覧ください。
便利なリンク
https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/
CV_EXPORTS_W void cv::convexityDefects | ( | InputArray | contour, |
InputArray | convexhull, | ||
OutputArray | convexityDefects | ||
) |
輪郭の凸欠陥を検出します。
下図は,手の輪郭の凸部の欠陥を表示するものです.
contour | 入力輪郭。 |
convexhull | 凸包を構成する輪郭点のインデックスを含む, convexHull を用いて得られる凸包. |
convexityDefects | 凸状欠損の出力ベクトル.C++ および新しい Python/Java インタフェースでは,各凸状欠損は 4 要素の整数ベクトル(別名 #Vec4i)で表されます.(start_index, end_index, farthest_pt_index, fixpt_depth), ここで index は,凸状欠損の始点,終点,最遠点の元の輪郭における0ベースのインデックスであり,fixpt_depth は,最遠の輪郭点とハルとの間の距離の固定小数点近似(8ビットの小数ビット)です.つまり,深さの浮動小数点値を得るには,fixpt_depth/256.0となります. |
cv::CV_EXPORTS_AS | ( | connectedComponentsWithAlgorithm | ) |
連結成分の計算 ブーリアンイメージのラベル付きイメージ
の連結成分ラベル付き画像を計算します. Nはラベルの総数 [0, N-1] を返し,0は背景ラベルを表します. ltypeは出力ラベルの画像タイプを指定します.これは,ラベルの総数,あるいはソース画像の総ピクセル数に基づく重要な考慮事項です. ccltypeは,使用する連結成分ラベル付けアルゴリズムを指定します.[Wu2009]に記載されているアルゴリズムがサポートされています。ConnectedComponentsAlgorithmsTypesを参照してください。なお,SAUFアルゴリズムでは,ラベルの行の主要な順序を強制しますが,BBDTでは強制しません.この関数は,GranaとWuのアルゴリズムの並列版を利用します.ただし,少なくとも1つの許可された並列フレームワークが有効であり,かつ,画像の行数がgetNumberOfCPUs.
image | ラベル付けされる8ビットシングルチャンネル画像 |
labels | ラベル付けされる画像 |
connectivity | 8方向または4方向の接続を表す8または4 |
ltype | 出力画像のラベルタイプ.現在は CV_32S と CV_16U がサポートされています. |
ccltype | 連結成分アルゴリズムタイプ(以下の説明を参照してくださいConnectedComponentsAlgorithmsTypes). |
cv::CV_EXPORTS_AS | ( | connectedComponentsWithStatsWithAlgorithm | ) |
は,ブーリアン画像の連結成分ラベル付き画像を計算し,各ラベルの統計出力も生成します.
ltype は,出力ラベルの画像タイプを指定します.これは,ラベルの総数,あるいは,ソース画像の総ピクセル数に基づく重要な検討事項です. ccltype は,使用する連結成分ラベル付けアルゴリズムを指定します.現在は,Granaのアルゴリズム(BBDT)とWuのアルゴリズム(SAUF)を使用しています.[Wu2009]に記載されているアルゴリズムがサポートされています。ConnectedComponentsAlgorithmsTypesを参照してください。なお,SAUFアルゴリズムでは,BBDTではなく,ラベルの行の主要な順序が強制されます.この関数は,少なくとも1つの許可された並列フレームワークが有効であり,かつ,画像の行数が連結成分アルゴリズムタイプで返される数の少なくとも2倍である場合,GranaとWuの両方のアルゴリズムの並列版(統計情報を含む)を利用します(以下を参照してください).getNumberOfCPUs.
image | ラベル付けされる8ビットシングルチャンネル画像 |
labels | ラベル付けされる画像 |
stats | 背景ラベルを含む,各ラベルの統計情報を出力します.統計情報にアクセスするには stats(label, COLUMN) を利用します.ConnectedComponentsTypesで,統計量を選択します.データタイプはCV_32Sです。 |
centroids | 背景ラベルも含めた各ラベルのセントロイド出力.セントロイドへのアクセスは, x の場合は centroids(label, 0) , y の場合は centroids(label, 1) となります. |
connectivity | 8方向または4方向の接続を表す8または4 |
ltype | 出力画像のラベルタイプ.現在は CV_32S と CV_16U がサポートされています. |
ccltype | 連結成分アルゴリズムタイプで返される数の2倍以上であれば,この関数は並列版を利用します(統計情報を含みます).ConnectedComponentsAlgorithmsTypes). |
CV_EXPORTS void cv::findContours | ( | InputArray | image, |
OutputArrayOfArrays | contours, | ||
int | mode, | ||
int | method, | ||
Point |
offset
=
Point() |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_EXPORTS_W void cv::findContours | ( | InputArray | image, |
OutputArrayOfArrays | contours, | ||
OutputArray | hierarchy, | ||
int | mode, | ||
int | method, | ||
Point |
offset
=
Point() |
||
) |
2値画像の輪郭を見つけます.
この関数は,以下のアルゴリズムを用いて,2値画像から輪郭を抽出します[Suzuki85].. 輪郭は,形状分析や物体の検出・認識に役立つツールです.OpenCV のサンプルディレクトリにある squares.cpp を参照してください.
image | 8ビットのシングルチャンネル画像であるソース.0ではないピクセルは,1として扱われます.0のピクセルは0のままなので,画像は2値として扱われます.を使うことができます.compare,inRange,threshold,adaptiveThreshold,Cannyなどを使って,グレースケールやカラーの画像から2値画像を作ることができます.モードが次のような場合RETR_CCOMPまたは #RETR_FLOODFILL に等しい場合は,32ビット整数のラベル画像(CV_32SC1)を入力とすることもできます. |
contours | 検出された輪郭.各輪郭は,点のベクトル(例えば,std::vector<std::vector<cv::Point> >)として格納されます. |
hierarchy | オプションの出力ベクトル(例:std::vector<cv::Vec4i>)は,画像のトポロジーに関する情報を含みます.これは,輪郭の数と同じ数の要素を持ちます.i番目の各輪郭contours[i]に対して,要素hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , hierarchy[i][3]は,同じ階層レベルの次の輪郭と前の輪郭,最初の子輪郭と親輪郭の輪郭における0ベースのインデックスにそれぞれ設定される.輪郭iに対して,次の輪郭,前の輪郭,親の輪郭,または入れ子の輪郭がない場合,hierarchy[i]の対応する要素は,負の値になります。 |
mode | 輪郭検索モード,参照RetrievalModes |
method | 輪郭の近似法,参照ContourApproximationModes |
offset | オプションで,各輪郭点を移動させるオフセットを指定します。これは,画像のROIから輪郭を抽出し,それを画像全体のコンテキストで分析する必要がある場合に役立ちます. |
CV_EXPORTS_W RotatedRect cv::fitEllipse | ( | InputArray | points | ) |
2次元の点群の周りに楕円をフィットさせます.
この関数は,2次元点の集合に最もフィットする(最小二乗法で)楕円を計算します.そして,その楕円が内接する回転した矩形を返します.最初に紹介したアルゴリズムは[Fitzgibbon95]によって記述された最初のアルゴリズムが使われます。開発者は,返されたellipse/rotatedRectデータに負のインデックスが含まれている可能性があることを覚えておく必要があります。これは,データポイントが containingMat要素の境界に近いことが原因です。
points | 入力 2D ポイントセットは,std::vector<> または Timberape に格納されます.Mat |
CV_EXPORTS_W RotatedRect cv::fitEllipseAMS | ( | InputArray | points | ) |
2次元の点群の周りに楕円をフィットさせます.
この関数は,2 次元点群にフィットする楕円を計算します.楕円が内接する回転した矩形を返します。Taubin1991]によって提案された Approximate Mean Square (AMS)があります.[Taubin1991]によって提案されました。が使われます。
楕円の場合、この基底セットはであり,これは6つの自由係数の集合
. しかし、楕円を指定するために必要なのは、長軸と短軸の長さ、位置、そして、長軸と短軸の長さの5つの数値である。
位置
位置,および方向の
. これは、基底セットには、直線、二次曲線、放物線、双曲線、楕円関数が含まれているからです。フィットが放物線または双曲線関数であることが判明した場合は、標準法fitEllipse法を使用します。AMS法では、以下の条件を課すことで、フィットを放物線、双曲線、楕円曲線に限定しています。
ここで、マトリクス
および
は、設計行列
行列は、セット内の各ポイントに以下を適用して行ごとに形成されます。
AMS法は、コスト関数を最小化します。
コストの最小値は、一般化された固有値問題を解くことで求められます。
points | 入力 2D ポイントセットは,std::vector<> または Timberape に格納されます.Mat |
CV_EXPORTS_W RotatedRect cv::fitEllipseDirect | ( | InputArray | points | ) |
2次元の点群の周りに楕円をフィットさせます.
この関数は,2 次元の点の集合に適合する楕円を計算します.楕円が内接する回転した長方形を返します。直接最小二乗法(Direct)は[Fitzgibbon1999].が使われます。
楕円の場合、この基底セットはであり,これは6つの自由係数の集合
. しかし、楕円を指定するために必要なのは、長軸と短軸の長さ、位置、そして、長軸と短軸の長さの5つの数値である。
位置
位置,および方向の
. これは、適合可能な基底セットとして、楕円関数だけでなく、直線、二次曲線、放物線、双曲線が含まれているからです。直接法では、次のことを保証することで、フィットを楕円に限定します。
. 課せられた条件は
これは不等式を満たすもので、係数を任意にスケーリングすることができるため、過度に制限するものではありません。
コストの最小値は、一般化された固有値問題を解くことで求められます。
このシステムでは、1つの正の固有値これを解として選択し、その固有ベクトルを
. これらを用いて係数を求めます。
スケーリング・ファクターは以下を保証します。.
points | 入力 2D ポイントセットは,std::vector<> または Timberape に格納されます.Mat |
CV_EXPORTS_W void cv::fitLine | ( | InputArray | points, |
OutputArray | line, | ||
int | distType, | ||
double | param, | ||
double | reps, | ||
double | aeps | ||
) |
直線を2次元あるいは3次元の点群にフィットさせます.
関数 fitLine は,2D または 3D の点群に直線をフィットさせます.ここで
は,点と線との距離です.
点と線との距離
は距離関数で,以下のいずれかです.
このアルゴリズムは,M-estimator (http://en.wikipedia.org/wiki/M-estimator)技術に基づいており、重み付き最小二乗法アルゴリズムを使用して直線を反復的にフィットさせます。各反復の後、重みはに反比例するように調整されます。
.
points | std::vector<>に格納された2Dまたは3D点の入力ベクトル,またはMat. |
line | 出力ラインのパラメータ。2Dフィッティングの場合、入力ベクトルは4要素のベクトル(Vec4fなど) - (vx, vy, x0, y0)でなければなりません。ここで、(vx, vy)は直線に平行な正規化されたベクトル、(x0, y0)は直線上の点です。3Dフィッティングの場合は、6要素のベクトル(Vec6fなど) - (vx, vy, vz, x0, y0, z0)とし、(vx, vy, vz)は線に平行な正規化ベクトル、(x0, y0, z0)は線上の点とします。 |
distType | M-estimatorで使用される距離、参照DistanceTypes |
param | いくつかのタイプの距離の数値パラメータ(C)。0の場合は最適な値が選ばれます。 |
reps | 半径(座標原点から直線までの距離)は十分な精度があります。 |
aeps | 角度に十分な精度があること。repsとaepsのデフォルト値は0.01が良いでしょう。 |
CV_EXPORTS_W void cv::HuMoments | ( | const Moments & | m, |
OutputArray | hu | ||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_EXPORTS void cv::HuMoments | ( | const Moments & | moments, |
double | hu[7] | ||
) |
7つのHu不変量を計算します。
この関数は7つのHuの不変量を計算します(紹介されているのは[Hu62]で紹介されている。参照http://en.wikipedia.org/wiki/Image_moment) として定義されている。
ここでを表します.
.
これらの値は、画像のスケール、回転、反射に対して不変であることが証明された。この不変性は,画像の解像度が無限大であることを仮定して証明されています.ラスター画像の場合,元の画像と変換後の画像のHu不変量の計算方法は少し異なります.
moments | 入力 moments で計算されたモーメント. |
hu | 出力 Hu 不変量. |
CV_EXPORTS_W float cv::intersectConvexConvex | ( | InputArray | p1, |
InputArray | p2, | ||
OutputArray | p12, | ||
bool |
handleNested
=
true |
||
) |
2つの凸状の多角形の交点を求める
p1 | 第1の多角形 |
p2 | 第2多角形 |
p12 | 交差する部分を表す多角形を出力 |
handleNested | 真の場合、一方の多角形が他方の多角形に完全に囲まれていれば交点が見つかります。falseの場合、交点は見つかりません。一方のポリゴンの頂点が他方のポリゴンの辺上にある場合、これらのポリゴンは入れ子になっていないとみなされ、handleNestedの値に関わらず交点が検出されます。 |
CV_EXPORTS_W bool cv::isContourConvex | ( | InputArray | contour | ) |
輪郭の凸性をテストします。
この関数は,入力された輪郭が凸であるかどうかをテストします.輪郭は単純でなければならず,つまり,自己交差があってはいけません.そうでない場合,この関数の出力は未定義です.
contour | 入力: 2次元点のベクトル,std::vector<>に格納される.Mat |
CV_EXPORTS_W double cv::matchShapes | ( | InputArray | contour1, |
InputArray | contour2, | ||
int | method, | ||
double | parameter | ||
) |
2つの形状を比較します。
この関数は,2つの形状を比較します.実装されている3つの手法は,いずれもHuの不変量を利用します(以下を参照してください).HuMoments)
contour1 | 1つ目の輪郭またはグレースケール画像. |
contour2 | 2つ目の輪郭またはグレースケール画像. |
method | 比較方法についてはShapeMatchModes |
parameter | メソッド固有のパラメータ(現在はサポートされていません). |
CV_EXPORTS_W RotatedRect cv::minAreaRect | ( | InputArray | points | ) |
入力された2次元点群を囲む,最小面積の回転した矩形を求めます.
この関数は,指定された点群を囲む最小面積の外接矩形(回転している場合もあります)を計算して返します.開発者は,返されるRotatedRectは,データが要素の境界に近い場合,負のインデックスを含むことがあります.Mat要素の境界に近い場合、負のインデックスを含む可能性があることに注意してください。
points | 入力: 2次元点のベクトル,std::vector<>に格納される.Mat |
CV_EXPORTS_W void cv::minEnclosingCircle | ( | InputArray | points, |
CV_OUT Point2f & | center, | ||
CV_OUT float & | radius | ||
) |
2次元点群を囲む最小面積の円を求めます.
この関数は,反復アルゴリズムを使って,2次元点集合を囲む最小の円を求めます.
points | 入力: 2次元点のベクトル,std::vector<>に格納される.Mat |
center | 円の中心を出力します。 |
radius | 円の半径を出力します. |
CV_EXPORTS_W double cv::minEnclosingTriangle | ( | InputArray | points, |
CV_OUT OutputArray | triangle | ||
) |
2次元点集合を囲む最小面積の三角形を求め、その面積を返します。
この関数は,与えられた2次元点集合を囲む最小面積の三角形を求め,その面積を返します.与えられた2次元点集合に対する出力は以下の図のようになります。2次元点は赤*で、それを囲む三角形は黄色.
このアルゴリズムの実装には、O'Rourkeの[ORourke86]に基づいています。とKlee and Laskowskiの[KleeLaskowski85]の論文を参考にしています。の論文を参考にしています.O'Rourkeはn個の頂点を持つ2次元凸多角形の最小囲み三角形を求めるアルゴリズムを提供している.この関数はminEnclosingTriangleこの関数は2次元点集合を入力とするため,2次元点集合の凸包を計算するという追加の前処理が必要になります.この関数の複雑さはconvexHull関数の複雑さは
であり,これは
. したがって,この関数の全体的な複雑さは
.
points | 深さ CV_32S または CV_32F の2次元点の入力ベクトル(std::vector<> またはMat |
triangle | 三角形の頂点を定義する3つの2次元点の出力ベクトル.OutputArrayの深さは,CV_32Fでなければいけません. |
CV_EXPORTS_W Moments cv::moments | ( | InputArray | array, |
bool |
binaryImage
=
false |
||
) |
ポリゴンやラスタライズされた形状の,3次までのすべてのモーメントを計算します.
この関数は,ベクトル形状やラスタライズされた形状の,3次までのモーメントを計算します.その結果は,次のような構造体で返されますcv::Moments.
array | ラスタ画像(シングルチャンネル,8ビット,または浮動小数点型の2次元配列),または2次元点の配列(![]() ![]() |
binaryImage | true の場合,0 ではない画像のピクセルはすべて 1 として扱われます.このパラメータは,画像に対してのみ使用されます. |
CV_EXPORTS_W double cv::pointPolygonTest | ( | InputArray | contour, |
Point2f | pt, | ||
bool | measureDist | ||
) |
Point-in-contourテストを行います。
この関数は,点が輪郭の内側にあるのか,外側にあるのか,あるいは辺上にあるのか(あるいは頂点と重なっているのか)を判定します.対応して、正の値(内側)、負の値(外側)、ゼロ(エッジ上)を返します。measureDist=false の場合、戻り値はそれぞれ +1、-1、0 です。それ以外の場合、戻り値は、点と最も近い輪郭のエッジとの間の符号付き距離になります。
この関数の出力例として,画像の各ピクセルが輪郭に対してテストされる様子を以下に示します.
contour | 入力輪郭。 |
pt | Point tested against the contour. |
measureDist | true の場合,この関数は,点から最も近い輪郭の端までの符号付き距離を推定します.そうでない場合は,その点が輪郭の内側にあるかどうかのみをチェックします. |
CV_EXPORTS_W int cv::rotatedRectangleIntersection | ( | const RotatedRect & | rect1, |
const RotatedRect & | rect2, | ||
OutputArray | intersectingRegion | ||
) |
回転させた2つの矩形に交点が存在するかどうかを調べます.
交差がある場合は,交差する領域の頂点も返されます.
以下は、交点の構成の例です。ハッチングされたパターンは交差する領域を示し、赤い頂点がこの関数によって返されます。
rect1 | 第一の四角形 |
rect2 | 2番目の矩形 |
intersectingRegion | 交差領域の頂点の出力配列です。最大で8個の頂点が返されます。std::vector<cv::Point2f> として格納されます.cv::MatCV_32FC2 型の Mx1 として格納されます. |