如何利用Matlab APPS camera calibrator 测相机内部参数!!
第一步:打开 Matlab APPS camera calibrator
第二步:打开Add Images 添加拍好的棋盘图(建议添加20多幅) 注:最后会提供生成棋盘的代码,只需要将生成的图片进行打印即可!
第三步:设置棋盘格单个格子的边长
第四步:点击OK 后 会进行检测,然后显示检测结果,Rejected images 不能太多,否则可能拍的照片不符合规则
第五步:点击Calibrate,等待一会即可生成数据
第六步:点击Export Camera Parameters 就可以保存参数了!
下面打开保存的参数:
一般来说,我们只需要内部参数,也就是fx,fy (焦距) Cx, Cy(光学中心)
对应的是fx :(1,1) fy :(2,2) Cx :(3,1) Cy : (3,2)
棋盘图的代码:
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
int main(int argc, char*argv[])
{
int width = 140;//棋盘格宽度
int height = 140;//棋盘格高度
IplImage *src = cvCreateImage(cvSize(980,1260), IPL_DEPTH_8U, 1);
cvZero(src);
for (int i = 0; i < src->height; i++)
{
for (int j = 0; j < src->width; j++)
{
if ((i / width + j / height) % 2 != 0)
{
src->imageData[i*src->widthStep + j*src->nChannels] = 255;
}
}
}
cvNamedWindow("src");
cvShowImage("src", src);
cvSaveImage("ChessBoard.bmp", src, 0);
cvWaitKey(0);
return 0;