Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EMGU CV中的摄像机矩阵初始化_C#_Image Processing_Emgucv - Fatal编程技术网

C# EMGU CV中的摄像机矩阵初始化

C# EMGU CV中的摄像机矩阵初始化,c#,image-processing,emgucv,C#,Image Processing,Emgucv,我试图在我的程序中使用findesentialmat方法。我有两个图像,两个功能阵列和焦点。但此方法需要摄影机矩阵(类型:IInputArray)作为属性。因此,问题是如何在不进行摄像机校准的情况下手动初始化摄像机矩阵 此代码不起作用,因为double[,]是cameraMatrix表示的错误类型 double[,] camMat = { { focal, 0, imgInput1.Size.Width / 2 }, { 0,

我试图在我的程序中使用findesentialmat方法。我有两个图像,两个功能阵列和焦点。但此方法需要摄影机矩阵(类型:IInputArray)作为属性。因此,问题是如何在不进行摄像机校准的情况下手动初始化摄像机矩阵

此代码不起作用,因为double[,]是cameraMatrix表示的错误类型

        double[,] camMat = {
            { focal, 0,  imgInput1.Size.Width / 2 },
            { 0,    focal,   imgInput1.Size.Height / 2 }, 
            { 0, 0, 1 }
        };

        VectorOfPointF vpfpoints1 = new VectorOfPointF(mKPstoPF(foundedFeatures1));
        VectorOfPointF vpfpoints2 = new VectorOfPointF(currFeat);

        CvInvoke.FindEssentialMat(points1: vpfpoints1,
                                  points2: vpfpoints2,
                                  cameraMatrix: camMat,
                                  method: Emgu.CV.CvEnum.FmType.Ransac,
                                  prob: 0.999,
                                  threshold: 1,
                                  mask: null);

我用这种方式定义摄影机矩阵:

    Matrix<double> matr = new Matrix<double>(3, 3);
        matr[0, 0] = focal;
        matr[0, 1] = 0;
        matr[0, 2] = imgInput1.Size.Width / 2;
        matr[1, 0] = 0;
        matr[1, 1] = focal;
        matr[1, 2] = imgInput1.Size.Width / 2;
        matr[2, 0] = 0;
        matr[2, 1] = 0;
        matr[2, 2] = 1;
矩阵matr=新矩阵(3,3);
matr[0,0]=焦点;
matr[0,1]=0;
matr[0,2]=imgInput1.Size.Width/2;
matr[1,0]=0;
matr[1,1]=焦点;
matr[1,2]=imgInput1.Size.Width/2;
matr[2,0]=0;
matr[2,1]=0;
matr[2,2]=1;

我用这种方式定义相机矩阵:

    Matrix<double> matr = new Matrix<double>(3, 3);
        matr[0, 0] = focal;
        matr[0, 1] = 0;
        matr[0, 2] = imgInput1.Size.Width / 2;
        matr[1, 0] = 0;
        matr[1, 1] = focal;
        matr[1, 2] = imgInput1.Size.Width / 2;
        matr[2, 0] = 0;
        matr[2, 1] = 0;
        matr[2, 2] = 1;
矩阵matr=新矩阵(3,3);
matr[0,0]=焦点;
matr[0,1]=0;
matr[0,2]=imgInput1.Size.Width/2;
matr[1,0]=0;
matr[1,1]=焦点;
matr[1,2]=imgInput1.Size.Width/2;
matr[2,0]=0;
matr[2,1]=0;
matr[2,2]=1;