相机标定黑白格纸生成(提供PDF版下载) |
您所在的位置:网站首页 › 标定板pdf下载 › 相机标定黑白格纸生成(提供PDF版下载) |
小白近期对相机进行了标定,关于相机标定的原理和方法网上比较多,讲解也比较详细,这里小白也就不再重复,如果有对原理不是很清晰的小伙伴,可以后台私密我。
小白在ROS上安装标定工具,使用黑白方格进行标定。因为好久好久之前小白对其他的相机标定过,印象中电脑里面存了黑白格纸的电子版。但是很不幸,最后没有找到。于是小白决定用代码自己生成一个黑白标定纸,小白整理了利用matlab和OpenCV两种方法,并为小伙伴提供PDF版,供大家下载直接使用。 Matlab版 I=checkerboard(100); figure,imshow(I>0.5) imwrite((I>0.5),'calibration');
其中100表示每个方格大边长为100个像素,注意这个I>0.5是为了让显示的棋盘亮度统一,否则会发现一半暗一半亮
如果小伙伴对代码有执着的追求的话,小白也为大家提供了一种通过自主编写代码实现的程序 function M = writeChessBoard( width, height, size, xnum, ynum, position, background) % This function writes a chessboard on image. % 该方程创建一个棋盘格图像。 %参数解释: % width: 宽度 % height:高度 % size:单个小方块的大小 % xum:x方向上的个数(每4个小方块一组) % xum:x方向上的个数(每4个小方块一组) % position:起始位置的坐标(为了留出边,便于打印) % background:背景亮度, 0widthStep*i; for (int j = 0; jwidth; j++) { if ((j / size) % 2 == 1) *data = 255;//白色 else *data = 0;//黑色 data++; } } //生成棋盘格 for (int i = 0; iheight; i++) { if ((i / size) % 2 == 1) { uchar* data = (uchar*)image->imageData + image->widthStep*i; for (int j = 0; jwidth; j++) { *data = 255 - *data; data++; } } } cvShowImage("image",image); cvWaitKey(); cvSaveImage("chessboard.jpg", image); } /* 作者:lwqbrell */
#include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/calib3d/calib3d.hpp" #include "opencv2/highgui/highgui.hpp" #include using namespace cv; using namespace std; int main() { Size ImageSize = Size(960, 1260); Mat src(ImageSize.width,ImageSize.height,CV_8UC1,Scalar(0)); namedWindow("src", CV_WINDOW_NORMAL); imshow("src", src); int width = 140; int height = 140; for (int i = 0; i < src.rows; i++) { for (int j = 0; j < src.cols; j++) { if ((i / width + j / height)%2 != 0) { src.at(i, j) = 255; } else { src.at(i, j) = 0; } } } namedWindow("result", CV_WINDOW_NORMAL); imshow("result", src); imwrite("result.bmp", src); waitKey(0); return 0; }
运行生面的程序便可以生成我们需要的黑白格,再用直接用打印机打印就ok了。 A4纸打印变长2.65cm网格纸 https://pan.baidu.com/s/10hmIYeVzAfXcK-kACed_9g A4纸打印边长2.45cm网格纸 https://pan.baidu.com/s/1HaR27e01EPkJiTYcdxAAbA
相关阅读: 一起学习二维码(二)配置解码环境 一起学习二维码(一)生成自己的二维码 使用Matlab图像处理(五)——边缘提取 使用Matlab图像处理(四)——常用滤波的实现 使用Matlab图像处理(三)——图像滤波原理 使用Matlab图像处理(二) 使用Matlab图像处理(一)
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |