跳过正文
  1. 文章/

OpenCV棋盘格标定板图案生成器

·558 字·2 分钟
作者
ht

一个用于生成高质量棋盘格图案的 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")

打印说明
#

⚠️ 重要提示:为了获得准确的相机标定,打印设置至关重要!

  1. 按照指定的确切 DPI 打印(无缩放)
  2. 在打印设置中禁用“适应页面”选项
  3. 使用 100% 缩放比例
  4. 将打印出的棋盘格粘贴在平坦、坚硬的表面上
  5. 测量打印出的方格,以验证其与您指定的大小是否匹配

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