四川省信用建设促进会网站,外贸网站镜像,宁波seo公司哪家好,wordpress 模板 源码标定的程序在官方的源码里有#xff0c;
opencv-4.5.5\samples\cpp\tutorial_code\calib3d\camera_calibration
很多小白不知道怎么跑起来#xff0c;这个也怪OpenCV官方#xff0c;工作没做完善#xff0c;其实的default.xml是要自己手动改的#xff0c;输入的图片也要…标定的程序在官方的源码里有
opencv-4.5.5\samples\cpp\tutorial_code\calib3d\camera_calibration
很多小白不知道怎么跑起来这个也怪OpenCV官方工作没做完善其实的default.xml是要自己手动改的输入的图片也要自己去拍摄还有那个VID5.xml也要改成可以直接找到图片的路径
我这里拍了5张图故意做了鱼眼效果后用于标定校正。程序已经改好了直接visual studio就可以跑了到这里去下载吧
https://github.com/SpaceView/OpenCV455_cameraCalibrationDemo
关于标定板
OpenCV官方曾经提供的标定板是9x6和7x7的实际应用根据场景的需要可能需要不同的标定板。
这里我们手动生成标定板chessboard格子的图片 生成标定板的程序如下
void Generate7x7Image() {const int BLOCKWIDTH 100;const int BLOCKNUM 7;cv::Size sz { BLOCKNUM* BLOCKWIDTH, BLOCKNUM* BLOCKWIDTH };cv::Mat mat(sz, CV_8UC3);for (int r 0; r BLOCKNUM; r) {for (int c 0; c BLOCKNUM; c) {int IX c * BLOCKWIDTH, IY r * BLOCKWIDTH;int EX IX BLOCKWIDTH, EY IY BLOCKWIDTH;cv::Vec3b value;if (0 (c r) % 2) {value { 0xFF,0xFF, 0xFF };}else {value 0x000000;}for (int y IY; y EY; y) {cv::Vec3b* p mat.ptrcv::Vec3b(y);for (int x IX; x EX; x) {p[x] value;}}}}cv::imwrite(Generated7x7.png, mat);
}这样一张7x7算格交叉点的话是6x6就生成了如下图 然后打印出来就可以做标定板了。
本文结束。