由于项目需要,重拾相机标定,基于opencv的便捷性,便重新学习了下其中的相机标定,本文讲述下三种标定图案的生成和打印。
语言选择:python
(1)acircles 非对称圆阵列 (2)circles 圆阵列 (3)chessboard 棋盘格 这是三种标定图案,如下图,没什么好说的
画图文件:……\opencv-3.4.2\doc\pattern_tools\gen_pattern.py 依赖的文件:……\opencv-3.4.2\doc\pattern_tools\svgfig.py
下面是重点:由于打印机在打印图片的时候有缩放,所以在利用python生成svg格式的文件后,需要转成pdf,然后打印pdf,才可以得到实际尺寸与设计尺寸相一致的标定图案
即:第一步
python gen_pattern.py -o circles_pattern.svg -r 11 -c 8 -T circles -s 20.0 -R 5.0 -u mm -w 216 -h 279
python gen_pattern.py -o acircles_pattern.svg -r 11 -c 4 -T acircles -s 10.0 -R 2.5 -u mm -w 216 -h 279
python gen_pattern.py -o checkerboard_pattern.svg -r 11 -c 9 -T checkerboard -s 10.0 -R 2.5 -u mm -w 216 -h 279
得到对应的svg文件。我用的是win10系统,不知道为什么,生成的文件是直接在桌面出现的,奇了个怪。
第二步
转pdf 我的转换工具是 https://tools.pdf24.org/zh/svg-to-pdf#s=1584079959591 可以试一试
第三步
打印pdf,开始标定