看了许多标定的博文,为了以后的使用将标定步骤整理下来,整体分为先分别标定左右相机在立体标定:
这里使用的标定图片是网上找的,双目标定时待标定图片是双目相机同时拍摄得到的,拍摄程序如下:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
char* name_l = (char*)malloc(sizeof(char)*200);
char* name_r = (char*)malloc(sizeof(char)*200);
int main()
{
int i=0;
IplImage *img0 , *img1;
cvNamedWindow("camera_left");
cvNamedWindow("camera_right");
CvCapture* cap_left= cvCreateCameraCapture(2); //这里我的摄像头ID是2,1,也有可能是1,0
CvCapture* cap_right= cvCreateCameraCapture(1);
while(1)
{
img0 = cvQueryFrame(cap_left);
img1 = cvQueryFrame(cap_right);
if( !img0 || !img1)
{
cout << "camera0 error" << endl;
break;
}
cvShowImage("camera_left", img0);
cvShowImage("camera_right", img1);
char c = cvWaitKey(33);
if(c == 27)
break;
if(c == 32)
{
i++;
sprintf(name_l, "leftPic%d.jpg", i);
sprintf(name_r, "rightPic%d.jpg", i);
cvSaveImage(name_l, img0);
cvSaveImage(name_r, img1);
}
}
cvReleaseCapture(&cap_left);
cvReleaseCapture(&cap_right);
cvDestroyWindow("camera_left");
cvDestroyWindow("camera_right");
return 0;
}
将下载好的标定工具箱插件放到MATLAB目录下,这里本人是放置toolboox这个文件夹下,然后打开MATLAB点击File->Set Path->Add Floder添加插件目录,在save一下
将当前文件夹设置成待标定图片的文件夹,我这里是在桌面新建一个文件夹放置图片,所以Current Folder设置如下
MATLAB命令行窗口输入calib_gui,弹出工具框
选择第一个Standard,弹出如下界面Camera Calibration Toolbox(以下简称标定界面)
现在开始左摄像头标定,选择第一个Images names后,MATLAB命令行窗口会提示你输入图片的basename以及各格式,这里图片保存的文件名