猿问

我的立体声校准正确吗?为什么我的三角测量不起作用?

我正在尝试从立体相机的图像中获取 3D 点云。我用 Python 中的 OpenCV 校准了我的立体相机(每个 240x320),重投影误差为 0.25。我使用了一个 9x10 行和列的棋盘图案,在不同的光照条件下以不同的角度拍摄了 10 张图像,并在这样做的同时移动了相机。(我不确定,也许这就是问题所在)然后我将它们导入到 matlab 中,matlab 给了我棋盘角。(我选择matlab是因为它比opencv精确得多)然后我将角加载到我的python校准脚本中。

内在校准完美无缺:

但是我不确定是否可以使用外部校准的结果,因为图像仍然是圆形的并且有那些黑色空间;图像的矩形中心很好:

http://img3.mukewang.com/60d190bf00014dda12910535.jpg

参数和矩阵保存并加载到另一个脚本中。该脚本通过左右图像运行 sobel 算子,并在两个图像中找到匹配的边缘像素:

http://img2.mukewang.com/60d190cc000166f112840527.jpg

然后我将那些匹配的像素交给 cv.triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2) 这应该给我点的 3D 坐标。我用 plotly 绘制它们,但结果无法识别,并且离所示杯子的边缘很远:

http://img1.mukewang.com/60d190da0001579809500850.jpg

有没有人有想法,可能是什么或我做错了什么?如果需要,我可以在这里发布我的代码。


白衣染霜花
浏览 110回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答