calib3d_getOptimalNewCameraMatrix_InputArray

[32/64bit] フリースケーリングパラメータに基づいた,新しいカメラ固有の行列を返します.

calib3d_getOptimalNewCameraMatrix_InputArray p1,p2,p3,p4,p5,p6,p7,p8

p1 = sptr : IntPtr cameraMatrix
p2 = sptr : IntPtr distCoeffs
p3 = ARGS_SIZE : Size imageSize
p4 = double : double alpha
p5 = ARGS_SIZE : Size newImgSize
p6 = var : out Rect validPixROI
p7 = int : int centerPrincipalPoint
p8 = var : out IntPtr returnValue

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

解説

この関数は,フリースケーリングパラメータに基づいて,最適な新しいカメラ固有の行列を計算し,それを返します.このパラメータを変化させることで,意味のあるピクセルだけを取り出したり alpha=0 ,コーナーに貴重な情報がある場合に元画像のピクセルをすべて残したり alpha=1 ,その中間の値を得たりすることができます.alpha>0の場合,歪みのない結果には,キャプチャされた歪んだ画像の外側にある「仮想」ピクセルに対応するいくつかの黒いピクセルが含まれる可能性があります.元のカメラの内部行列,歪み係数,計算された新しいカメラの内部行列,そして newImageSize は,リマップ用のマップを生成するために initUndistortRectifyMap に渡されなければいけません.

元関数名(C#): calib3d_getOptimalNewCameraMatrix_InputArray
元DLLエクスポート名: calib3d_getOptimalNewCameraMatrix_InputArray
参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_getOptimalNewCameraMatrix_InputArray(
    cv::_InputArray *cameraMatrix, cv::_InputArray *distCoeffs,
    MyCvSize imageSize, double alpha, MyCvSize newImgSize,
    MyCvRect* validPixROI, int centerPrincipalPoint,
    cv::Mat **returnValue)
{
    BEGIN_WRAP
    cv::Rect _validPixROI;
    const auto mat = cv::getOptimalNewCameraMatrix(*cameraMatrix, entity(distCoeffs),
        cpp(imageSize), alpha, cpp(newImgSize), &_validPixROI, centerPrincipalPoint != 0);
    *validPixROI = c(_validPixROI);
    *returnValue = new cv::Mat(mat);
    END_WRAP
}

情報

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