imgproc_fitEllipseDirect_Point

[32/64bit] 2次元の点の周りに楕円を描く関数です。

imgproc_fitEllipseDirect_Point p1,p2,p3

p1 = var : Point[] points
p2 = int : int pointsLength
p3 = var : out RotatedRect returnValue

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

この関数は,2 次元の点の集合にフィットする楕円を計算します.また,楕円が内接する回転した矩形を返します.ここでは,[79]のDirect least square(Direct)法を用いています.楕円の場合、この基底セットは、6つの自由係数の集合である \chi= \left(x^2, x y, y^2, x, y, 1\right) \( A^T=\left\{A_{text{xx}},A_{text{xy}},A_{text{yy}},A_x,A_y,A_0\right) ??となります。しかし、楕円を指定するには、長軸と短軸の長さ\( (a,b) )、位置\( (x_0,y_0) )、方向\( ????? ) の5つの数字があればよいのです。これは、基底セットには、直線、二次曲線、放物線、双曲線のほか、楕円形の関数もフィットする可能性があるからです。Direct法では、フィッティングの対象を楕円に限定するために、\( 4 A_{xx} A_{yy}- A_{xy}^2 > 0 ? )を確保します。この条件は、不等式を満足し、かつ係数を任意にスケーリングできることから、過度に制限するものではありません。\A^T D^T D A ??? -? ???\A^T C A =1\♪♪♪♪♪~0&0&2&0&0&0 0&1&0&0&0 2&0&0&0&0&0&0 0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0エンド{matrix}です。D^T D A = \lambda \left( C\right) A ??{equation*}このシステムでは、正の固有値は1つしかなく、その固有ベクトル\(mathbf{u}\)を解としています。これらを用いて、係数を求めます。A = ????? )\A^T C A =1」が保証されています。例: samples/cpp/fitellipse.cpp.

元関数名(C#): imgproc_fitEllipseDirect_Point
元DLLエクスポート名: imgproc_fitEllipseDirect_Point
参照元CSファイル: Internal\PInvoke\NativeMethods\imgproc\NativeMethods_imgproc.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) imgproc_fitEllipseDirect_Point(cv::Point* points, int pointsLength, MyCvBox2D* returnValue)
{
    BEGIN_WRAP
    const cv::Mat_<cv::Point> pointsVec(pointsLength, 1, points);
    *returnValue = c(cv::fitEllipseDirect(pointsVec));
    END_WRAP
}

情報

プラグイン / モジュールOpenCvSharpExtern.dll
バージョン1.00
作成日2021/11/30
著作者inovia
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_imgproc
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs