1

我只是想测试一下这个功能。然而,它在开始时出现了一些不全面的错误,我终于找到了解决方案。也就是说:必须将两者objectPoints&分别imagePoints更改为CV_32FC3& CV_32FC2,代码工作正常。为此,OpenCV 的文档非常错误,这表明所有矩阵表示都可以工作

克服这个错误,我的输出不正确:

在此处输入图像描述

投影的图像点是不合理的(当然,我已经检查了我的输入数据)。

有没有人体验过OpenCV的这个功能,给出正确的投影?

编辑01:输出(2,2)= -1.#QNAN000

=> 这可以成为了解错误原因的线索吗?

4

1 回答 1

0

原因是我缺乏使用 OpenCV 矩阵的经验。工作 2 天后,使用 CvMat 和 Mat 进行测试。我学到了几个要点:

  • 创建一个好的矩阵显示功能,这样它就不会显示尴尬的数字,我从这篇文章中找到了很好的建议Multi channel Mat display function

  • 使用预定义数据输入/初始化 OpenCV 矩阵时要小心,小心使用 1 通道或多通道矩阵。在您了解 OpenCV 如何理解您的输入数据之前,先进行一些试验

  • 承认 cvProjectPoints2 没有得到单通道矩阵作为输入/输出

经过调试,我的输出是这样的:

在此处输入图像描述

这与我的真实对象点和图像点以及校准的相机矩阵非常接近

于 2012-08-30T07:39:59.273 回答