【问题标题】:EmguCV HomographyFind - Unity always receive zeroEmguCV HomographyFind - Unity 总是收到零
【发布时间】:2016-11-24 14:56:21
【问题描述】:

我在 Unity 中工作并尝试使网格和相机同步。

为此,我使用 EmguCV/OpenCV 方法 HomographyFind:http://www.emgu.com/wiki/files/1.4.0.0/html/3906193c-e458-2cb5-7667-fbb94114d179.htm

我的校准函数如下所示:

 Matrix<float> homography = new Matrix<float>(3, 3);
    float[,] sourcePoints;
    float[,] destPoints;
    void Calibrate()
    {
        sourcePoints = new float[,]{{Cam.greenRect[0].X, Cam.greenRect[0].Y}, {Cam.greenRect[1].X, Cam.greenRect[1].Y}, {Cam.greenRect[2].X, Cam.greenRect[2].Y}, {Cam.greenRect[3].X, Cam.greenRect[3].Y}};
        destPoints = new float[,] { { goTile[0].transform.position.x, goTile[0].transform.position.y }, { goTile[32].transform.position.x, goTile[32].transform.position.y }, { goTile[858].transform.position.x, goTile[858].transform.position.y }, { goTile[890].transform.position.x, goTile[890].transform.position.y } };
        Emgu.CV.Matrix<float> sourceMat = new Matrix<float>(sourcePoints);
        Emgu.CV.Matrix<float> destMat = new Matrix<float>(destPoints);

        CvInvoke.FindHomography(sourceMat, destMat, homography, Emgu.CV.CvEnum.HomographyMethod.Default);
        call.GetComponent<Text>();
        call.text = destPoints[3,0].ToString();

        calibrationComplete = true;

    }

Cam.greenRect 和 goTile 值似乎适合,但我的单应性中的所有位置似乎都是 0。

因此,我的 Unity 翻译也返回 0(Vector2):

Vector2 coordToUnity(Vector2 fingerPos)
    {
        float x = (fingerPos.x * homography.Data[0, 0]) + (fingerPos.y * homography[0, 1]) + (1 * homography[0, 2]);
        float y = (fingerPos.x * homography.Data[1, 0]) + (fingerPos.y * homography[1, 1]) + (1 * homography[1, 2]);
        return new Vector2(x, y);
    }   

我相信问题可能在于我的 float[,] 到矩阵的转换,或者我在 coordToUnity 中的算法。

问题:coordToUnity 总是返回 0。我在哪里实现 EmguCV.HomographyFind 错误?

【问题讨论】:

    标签: c# unity3d emgucv


    【解决方案1】:

    答案依赖于对我的所有值使用浮点数。这个 EmguCV 版本中的方法只接受双精度数。

    如果不使用双精度,则输出同形异义词将返回 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多