[32/64bit] 単一のマーカに対する姿勢推定
aruco_estimatePoseSingleMarkers p1,p2,p3,p4,p5,p6,p7,p8,p9
p1 = sptr : [MarshalAs(UnmanagedType.LPArray)] IntPtr[] corners p2 = int : int cornersLength1 p3 = var : int[] cornersLengths2 p4 = float : float markerLength p5 = sptr : IntPtr cameraMatrix p6 = sptr : IntPtr distCoeffs p7 = sptr : IntPtr rvecs p8 = sptr : IntPtr tvecs p9 = sptr : IntPtr objPoints
(プラグイン / モジュール : OpenCvSharpExtern.dll)
See alsodetectMarkersSee alsoRodrigues)(例:std::vector<cv::Vec3d>)。この関数は,検出されたマーカを受け取り,カメラに対する姿勢の推定値を個別に返します.つまり,各マーカーに対して,1つの回転ベクトルと並進ベクトルが返されます.返される変換は,各マーカの座標系からカメラの座標系へと点を変換するものです.マーカー座標系は、マーカーの中央を中心とし、Z軸はマーカー平面に垂直です。マーカーの四隅の座標を独自の座標系で表すと(-markerLength/2, markerLength/2, 0)、(markerLength/2, markerLength/2, 0)、(markerLength/2, -markerLength/2, 0)、(-markerLength/2, -markerLength/2, 0) 元関数名(C#): aruco_estimatePoseSingleMarkers 元DLLエクスポート名: aruco_estimatePoseSingleMarkers 参照元CSファイル: Internal\PInvoke\NativeMethods\NativeMethods_aruco.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) aruco_estimatePoseSingleMarkers( cv::Point2f **corners, int cornersLength1, int *cornersLengths2, float markerLength, cv::_InputArray *cameraMatrix, cv::_InputArray *distCoeffs, cv::_OutputArray *rvecs, cv::_OutputArray *tvecs, cv::_OutputArray *objPoints) { BEGIN_WRAP std::vector<std::vector<cv::Point2f> > cornersVec(cornersLength1); for (int i = 0; i < cornersLength1; i++) cornersVec[i] = std::vector<cv::Point2f>(corners[i], corners[i] + cornersLengths2[i]); cv::aruco::estimatePoseSingleMarkers(cornersVec, markerLength, *cameraMatrix, *distCoeffs, *rvecs, *tvecs, entity(objPoints)); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_aruco |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |