一个用于生成高质量棋盘格图案的 Python 工具,适用于 OpenCV 相机标定。 作者是Batuhan ÖKMEN,github地址为 https://github.com/flavvesResearch/chessboard-calibration-generator

功能特点 #
- 🎯 可自定义网格尺寸(行 × 列)
- 📏 可配置方格大小(以厘米为单位)
- 🖨️ 打印就绪输出,具有精确的 DPI 设置
- 👁️ 保存前预览
- 📦 易于使用的 Python API 和命令行界面
安装 #
从 PyPI 安装:
pip install opencv-chessboard-generator使用方法 #
命令行界面 #
安装后,运行交互式命令行界面:
chessboard-generator按照提示指定:
- 内部角点列数(例如:6)
- 内部角点行数(例如:9)
- 方格大小(以厘米为单位,默认:3.0)
- 打印分辨率 DPI(默认:300)
Python API #
from chessboard_generator import ChessboardGenerator
# 创建棋盘格:9行6列内部角点,3厘米方格,300 DPI
generator = ChessboardGenerator(rows=9, cols=6, square_size_cm=3.0, dpi=300)
# 保存到文件
generator.save("my_chessboard.png")
# 或在保存前预览
generator.preview()A3 纸张的推荐设置 #
对于 A3 纸张(29.7 × 42 厘米),我们建议:
- 13×8 内部角点(横向方向)
- 方格大小:3.0 厘米
- DPI:300
generator = ChessboardGenerator(rows=8, cols=13, square_size_cm=3.0, dpi=300)
generator.save("chessboard_a3.png")打印说明 #
⚠️ 重要提示:为了获得准确的相机标定,打印设置至关重要!
- 按照指定的确切 DPI 打印(无缩放)
- 在打印设置中禁用“适应页面”选项
- 使用 100% 缩放比例
- 将打印出的棋盘格粘贴在平坦、坚硬的表面上
- 测量打印出的方格,以验证其与您指定的大小是否匹配
OpenCV 集成 #
生成棋盘格后,将其与 OpenCV 配合使用:
import cv2
# 对于 6×9 内部角点的棋盘格
pattern_size = (6, 9)
square_size = 3.0 # 厘米
# 在您的标定图像中查找棋盘格角点
ret, corners = cv2.findChessboardCorners(image, pattern_size)环境要求 #
- Python >= 3.7
- OpenCV >= 4.5.0
- NumPy >= 1.19.0