跳转至

1. 创建标定板

引言

本教程的目标是学习如何创建标定板。


OpenCV 官方已经提供了如下两种可直接下载的标定板图片。

类型 预览
棋盘标定板 9x6
圆孔标定板 11x4

下载上述标定板直接使用即可,下面的教程是教你如何自定义标定板。

方法

OpenCV 提供了一个 Python 脚本 gen_pattern.py 可供调用,以便生成特定格式的标定板。

下面是一些例子演示如何使用:

  • 创建一个 9 行 6 列,棋盘格大小为 20mm 的棋盘标定板:
python gen_pattern.py -o chessboard.svg --rows 9 --columns 6 --type checkerboard --square_size 20
  • 创建一个 7 行 5 列,圆孔半径为 15mm 的圆孔标定板:
python gen_pattern.py -o circleboard.svg --rows 7 --columns 5 --type circles --square_size 15
  • 创建一个 7 行 5 列,圆孔半径为 10mm 的圆孔标定板(圆孔之间的间距要小一些):
python gen_pattern.py -o acircleboard.svg --rows 7 --columns 5 --type acircles --square_size 10 --radius_rate 2
python gen_pattern.py -o radon_checkerboard.svg --rows 10 --columns 15 --type radon_checkerboard -s 12.1 -m 7 4 7 5 8 5

提示

  • -u 参数可以改变设定单元格大小的量纲(默认是 mm,可以改为 px 或 m);
  • -w-h 参数可以改变页面的宽和高;
  • 如果你想创建一个 ChArUco 棋盘,请阅读 ChArUco 角点检测教程

注意

gen_pattern.py 依赖于 svgfig.py,所以你还需要下载它,然后将它们放到同一级目录下,不然运行会报错。其次,生成的 svg 格式的标定板图片默认保存至电脑桌面。

参考

Create calibration pattern