[32/64bit] 2次元の点の周りに楕円を描く関数です。
imgproc_fitEllipseDirect_Point2f p1,p2,p3
p1 = var : Point2f[] 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_Point2f
元DLLエクスポート名: imgproc_fitEllipseDirect_Point2f
参照元CSファイル: Internal\PInvoke\NativeMethods\imgproc\NativeMethods_imgproc.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) imgproc_fitEllipseDirect_Point2f(cv::Point2f* points, int pointsLength, MyCvBox2D* returnValue)
{
BEGIN_WRAP
const cv::Mat_<cv::Point2f> pointsVec(pointsLength, 1, points);
*returnValue = c(cv::fitEllipseDirect(pointsVec));
END_WRAP
}
| プラグイン / モジュール | OpenCvSharpExtern.dll |
| バージョン | 1.00 |
| 作成日 | 2021/11/30 |
| 著作者 | inovia |
| URL | https://hsp.moe/ |
| 備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
| タイプ | OpenCVSharpラッパーDLL |
| グループ | NativeMethods_imgproc |
| 対応環境 |
|
| hs ファイル | hsphelp\OpenCvSharpExtern.hs |