我刚刚安装了opencv3.2.0,我可以在this question中找到this image中的许多/大部分角落,方法是使用对比度,然后使用cv2.findChessboardCorners(left_gray, (6,5))
或使用{
当findChessboardCorners返回全部6×5=30或None
时,我可以看到,对于质量较低的图像,使用goodFeaturesToTrack
方法时,并不是所有的点都能找到。在
但是当我读到documentation for ^{
有没有什么cv2方法可以自动处理这个问题?在
编辑:我现在想知道,cv2.findHomography()
是否使用了我在这里寻找的健壮方法之一?在
当然,如果一个外部行或列全部丢失,则存在无法解决的歧义,但如果缺少一些内部点,则仍然可以进行校准。在
我可能会尝试写一些东西,当然,只要拒绝任何找到角点数量错误的视图,但是如果已经有一种现有的方法来处理非歧义导致的缺失点,我想先尝试一下。我们的目标是尽可能地自动化这个过程,而不跳过每一张找到的点数错误的图像。在
您可以通过稍微改变使用的模式来处理这个问题。你需要在这里指出哪些是遗漏的。OpenCV有一个简单的解决方案:ChArUco板。下面我附加了该模式用法的教程。在
http://docs.opencv.org/3.1.0/df/d4a/tutorial_charuco_detection.html
使用charuco,您可以指定自动检测哪些角点。然后可以调整对象点进行校准。在
如果使用python,则需要aruco库的包装:
https://github.com/opencv/opencv_contrib/pull/554/
https://github.com/fehlfarbe/python-aruco/
在python中使用charuco的一些答案:
http://answers.opencv.org/question/98447/camera-calibration-using-charuco-and-python/?answer=98451#post-id-98451/
简单地说,从linked tutorial开始,过程如下:
要定义CharucoBoard,需要使用定义生成模式,然后指定对检测算法的描述:
相关问题 更多 >
编程相关推荐