cv2.findChessboardCorners() 无法检测出角点
Kartoffelchen opened this issue · comments
需要根据棋盘格的长宽方向的内角点数 更改传入cv2.findChessboardCorners()的参数 例如图中应该是9*9 即cv2.findChessboardCorners(img,(9,9)) 具体参照opencv的官方文档(另外建议棋盘格的长宽最好不要一样)
好的。多谢,我试试
您好,重新测试了一些数据,前面的问题基本都解决了,不过我有了一个新的问题。
对于包含畸变地像及模型,是不是能够有这样的可能,可以有不同的相机内参与畸变系数的组合,都符合相机标定的结果?因为我是做仿真,所以可以自由设定相机内参和畸变系数,在我的测试中,对于没有畸变的数据,标定的相机内参和设定值都非常接近;然而对于有畸变的数据,标定的内参和畸变系数都和我设定的相差较大,所以我就在想,是不是一个相机可以有不同的内参和畸变的组合能够描述它?不知道您有没有想过或者遇到过这个问题呢?
相机的内参是确定的,取决于实际的焦距和光轴位置。畸变是通过假定的多项式函数来拟合,各项系数就是畸变向量,当然可以有不同的结果(来使得拟合的误差足够小)。因为求解畸变向量的过程是通过非线性优化,不同的初值和迭代过程都会使得结果不同,也必然存在误差,一般通过重投影误差来衡量。所以对于有畸变的数据,也需要足够多的图片达到比较好的标定效果,例如各种角度、距离,并覆盖到图像的各个区域等等。