我们对摄像头进行标定时,常会用到棋盘格图像。下面就给出一个生成棋盘格图像的opencv代码。
编译环境为VC6.0与opencv1.0,代码如下:
#include <stdio.h> #include <cv.h> #include <highgui.h> #include <cxcore.h> void main() { //---生成标定图 IplImage *img; int dx=80;//棋盘格大小,像素为单位 int dy=5;//棋盘格数目 img = cvCreateImage(cvSize(2*dx*dy, 2*dx*dy), IPL_DEPTH_8U, 1); cvZero(img); int flag=0; for(int i=0;i<2*dy;i++) for(int j=0;j<2*dy;j++) { flag = (i+j)%2; if (flag == 0) { for (int m=i*dx; m<(i+1)*dx; m++) for(int n=j*dx; n<(j+1)*dx; n++) ((uchar *)(img->imageData + m * img->widthStep ))[n] = 255; //*(img->imageData+m*img->widthStep+n)=255; } } //---END生成标定图 cvSaveImage("棋盘格标定图.bmp",img); cvNamedWindow("棋盘格", 1); cvShowImage("棋盘格",img); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("棋盘格"); }