[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 |