我找到了这篇文章OpenCV findChessboardCorners very slow,但它没有完全回答我的问题。
我在一台覆盆子pi上运行了一个相机校准工具,它需要大量的时间来检测全分辨率图像中的棋盘角落。我目前对它们进行了重新缩放,但计算出的参数不能用于全尺寸图像。
我在想的一件事是在小4倍的图像中检测角点,然后将角点坐标乘以4,但我得到的结果并不完全相同。
你认为有没有一种方法可以加速或插入另一个角点检测?
我使用的是python实现(cv2)
谢谢
发布于 2018-02-23 01:48:49
大部分时间花在棋盘提取上,这包括(粗略地说)三个步骤:检测图像中的棋盘角点,将它们细化到亚像素分辨率,并将它们与标称棋盘进行匹配。
在这三个步骤中,第一步是最昂贵的,因为它涉及到处理整个图像。因此,您可以通过检测角点并匹配较低分辨率的棋盘(使用cv2.findChessboardCorners)来获得一些时间。然后,您可以将它们的坐标重新缩放到全分辨率,并对它们进行亚像素细化(cv2.find4QuadCornersSubpix)以获得更高的精度。优化例程在检测到的角落周围的小区域上工作,因此它需要的内存要少得多-这在处理缓存大小有限的CPU时很有帮助。
由于其他原因,此过程也很有帮助,请参见this other answer。
https://stackoverflow.com/questions/48892301
复制相似问题