2012-05-01 8 views
2

こんにちは私はemguCVライブラリを使って基本行列を計算しようとします。ここで私が何をしたのか、返された行列は画像に値を持っていますhttp://i46.tinypic.com/2v8pt6v.jpgemguCVのCvInvoke.findFundamentalMatrixメソッド

EmguCVのドキュメントとパラメータが適切かどうかチェックしました。

行列firstImagePoints = new行列(2,8);

firstImagePoints[0, 0] = 224.0; 
    firstImagePoints[0, 1] = 245.0; 
    firstImagePoints[0, 2] = 232.0; 
    firstImagePoints[0, 3] = 277.0; 
    firstImagePoints[0, 4] = 533.0; 
    firstImagePoints[0, 5] = 477.0; 
    firstImagePoints[0, 6] = 528.0; 
    firstImagePoints[0, 7] = 510.0; 

    firstImagePoints[1, 0] = 60.0; 
    firstImagePoints[1, 1] = 95.0; 
    firstImagePoints[1, 2] = 284.0; 
    firstImagePoints[1, 3] = 223.0; 
    firstImagePoints[1, 4] = 48.0; 
    firstImagePoints[1, 5] = 86.0; 
    firstImagePoints[1, 6] = 302.0; 
    firstImagePoints[1, 7] = 266.0; 

マトリックスsecondImagePoints = new Matrix(2,8);

secondImagePoints[0, 0] = 111.0; 
    secondImagePoints[0, 1] = 129.0; 
    secondImagePoints[0, 2] = 123.0; 
    secondImagePoints[0, 3] = 159.0; 
    secondImagePoints[0, 4] = 401.0; 
    secondImagePoints[0, 5] = 344.0; 
    secondImagePoints[0, 6] = 402.0; 
    secondImagePoints[0, 7] = 382.0; 

    secondImagePoints[1, 0] = 79.0; 
    secondImagePoints[1, 1] = 111.0; 
    secondImagePoints[1, 2] = 295.0; 
    secondImagePoints[1, 3] = 236.0; 
    secondImagePoints[1, 4] = 52.0; 
    secondImagePoints[1, 5] = 94.0; 
    secondImagePoints[1, 6] = 317.0; 
    secondImagePoints[1, 7] = 279.0; 


    fundamentalMatrice=new Matrix<double>(3,3,1); 



    CvInvoke.cvFindFundamentalMat(firstImagePoints.Ptr, secondImagePoints.Ptr, fundamentalMatrice.Ptr, Emgu.CV.CvEnum.CV_FM.CV_FM_RANSAC, 1.0, 0.99, IntPtr.Zero); 
    isFundamentalMatrixCalculated = true; 

答えて

0

IntPtr.Zeroを削除して入手することができますか?

+0

真の基本行列を見つけました。私が気にしなかったユニークなマトリックスはありません。返信用のThanx – loki