[32/64bit] キャリブレーションされていないステレオカメラに対して,平行化変換を行います.
calib3d_stereoRectifyUncalibrated_array p1,p2,p3,p4,p5,p6,p7,p8,p9,p10
p1 = var : Point2d[] points1 p2 = int : int points1Size p3 = var : Point2d[] points2 p4 = int : int points2Size p5 = var : double* F p6 = ARGS_SIZE : Size imgSize p7 = var : double* H1 p8 = var : double* H2 p9 = double : double threshold p10 = var : out int returnValue
(プラグイン / モジュール : OpenCvSharpExtern.dll)
この関数は,カメラの固有のパラメータや空間内の相対的な位置を知らずに,平行化変換を計算するので,「uncalibrated」という接尾辞が付きます.stereoRectify とのもう1つの関連する違いは,この関数が物体(3次元)空間における平行化変換ではなく,ホモグラフィ行列 H1 と H2 によってエンコードされた平面透視変換を出力することです.この関数は,アルゴリズム [104] を実装しています. 注意このアルゴリズムは,カメラの固有のパラメータを知る必要はありませんが,エピポーラ幾何学に大きく依存します.したがって,カメラレンズに大きな歪みがある場合は,基本行列を計算してこの関数を呼び出す前に,その歪みを補正した方が良いでしょう.例えば, calibrateCamera を使って,ステレオカメラの各ヘッドの歪み係数を個別に推定することができます.その後, undistort を用いて画像を補正したり, undistortPoints を用いて点座標だけを補正したりすることができます. 元関数名(C#): calib3d_stereoRectifyUncalibrated_array 元DLLエクスポート名: calib3d_stereoRectifyUncalibrated_array 参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_stereoRectifyUncalibrated_array(cv::Point2d *points1, int points1Size,
cv::Point2d *points2, int points2Size,
cv::_InputArray *F, MyCvSize imgSize,
double *H1, double *H2,
double threshold,
int *returnValue)
{
BEGIN_WRAP
const cv::Mat points1Mat(points1Size, 1, CV_64FC2, points1);
const cv::Mat points2Mat(points2Size, 1, CV_64FC2, points2);
cv::Mat H1M(3, 3, CV_64FC1, H1);
cv::Mat H2M(3, 3, CV_64FC1, H2);
*returnValue = cv::stereoRectifyUncalibrated(points1Mat, points2Mat, *F, cpp(imgSize), H1M, H2M, threshold) ? 1 : 0;
END_WRAP
}
| プラグイン / モジュール | OpenCvSharpExtern.dll |
| バージョン | 1.00 |
| 作成日 | 2021/11/30 |
| 著作者 | inovia |
| URL | https://hsp.moe/ |
| 備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
| タイプ | OpenCVSharpラッパーDLL |
| グループ | NativeMethods_calib3d |
| 対応環境 |
|
| hs ファイル | hsphelp\OpenCvSharpExtern.hs |