opencv - 可以加快ChessboardboardCorners的查找速度吗?

标签 opencv computer-vision camera-calibration corner-detection

我已经找到了OpenCV findChessboardCorners very slow这个帖子,但是它不能完全回答我的问题。

我在树莓派上运行相机校准工具,并且要花费大量时间来检测全分辨率图像中的棋盘角。我目前正在重新缩放它们,但是计算出的参数无法用于完整尺寸的图像。

我当时想做的一件事是在较小的图像中检测到角点4倍,然后将角点坐标乘以4,但结果却不尽相同。

您是否认为有办法加快或插入另一个拐角检测?

我正在使用python实现(cv2)

谢谢

最佳答案

大部分时间都花在棋盘格提取上,这大致包括三个步骤:检测图像中的棋盘格角,将其精炼为亚像素分辨率,并将其与标称棋盘格匹配。

在这三个步骤中,第一步是最昂贵的,因为它涉及处理整个图像。因此,您可以通过检测角点并以较低的分辨率匹配棋盘格(使用cv2.findChessboardCorners)来获得一些时间。然后,您可以将其坐标重新缩放为全分辨率,并对其进行子像素优化(cv2.find4QuadCornersSubpix),以提高准确性。优化例程适用于检测到的拐角附近的较小区域,因此它需要的内存要少得多-这在处理缓存大小有限的CPU时很有用。

由于其他原因,此过程也很有用,请参阅this other answer

关于opencv - 可以加快ChessboardboardCorners的查找速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48892301/

相关文章:

image-processing - 用于车辆检测和跟踪的训练数据的图像分辨率?

c++ - 在 Windows 窗体中捕获 openCV 视频

python - Python OpenCV相机校准cv::imshow错误

opencv - 图像中原点的向量与现实世界中的平面的交点

opencv - 嘈杂照片的低对比度线条检测

macos - 在没有 cmake 的情况下让 opencv 在不同平台上工作有多难?

python - 使用 OpenCV 从图像中提取多边形给定坐标

qt - 标记检测到的面部的有效方法

c++ - 将一系列图像写入缓冲存储器的最佳方法

c++ - OpenCV 在 JPEG 图像和 EXIF 方向上的意外相机校准结果