使用OpenCV中的calibrateCamera函数进行张正友相机标定,得到相机内参矩阵。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 60360 2015-07-30 11:09 calibrationcalibration1.jpg
文件 61121 2015-07-30 11:11 calibrationcalibration10.jpg
文件 61229 2015-07-30 11:10 calibrationcalibration2.jpg
文件 61537 2015-07-30 11:10 calibrationcalibration3.jpg
文件 64177 2015-07-30 11:10 calibrationcalibration4.jpg
文件 59513 2015-07-30 11:10 calibrationcalibration5.jpg
文件 62833 2015-07-30 11:11 calibrationcalibration6.jpg
文件 77115 2015-07-30 11:11 calibrationcalibration7.jpg
文件 66128 2015-07-30 11:11 calibrationcalibration8.jpg
文件 59704 2015-07-30 11:11 calibrationcalibration9.jpg
文件 4449 2015-07-27 15:06 calibrationcalibrationcalibration.vcxproj
文件 941 2015-07-27 14:44 calibrationcalibrationcalibration.vcxproj.filters
文件 410 2015-07-27 18:06 calibrationcalibrationcalibration.vcxproj.user
文件 0 2015-08-31 11:53 calibrationcalibrationcalibration_result.txt
文件 96 2015-07-30 00:33 calibrationcalibrationDebugcalibration.lastbuildstate
文件 2230 2015-07-30 00:33 calibrationcalibrationDebugcalibration.log
文件 736 2015-07-30 00:33 calibrationcalibrationDebugcl.command.1.tlog
文件 15812 2015-07-30 00:33 calibrationcalibrationDebugCL.read.1.tlog
文件 516 2015-07-30 00:33 calibrationcalibrationDebugCL.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink-cvtres.read.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink-cvtres.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink-rc.read.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink-rc.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904-cvtres.read.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904-cvtres.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904-rc.read.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904-rc.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904.read.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.10904.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebuglink.11096-cvtres.read.1.tlog
............此处省略134个文件信息
#include “opencv2/core/core.hpp“
#include “opencv2/imgproc/imgproc.hpp“
#include “opencv2/calib3d/calib3d.hpp“
#include “opencv2/highgui/highgui.hpp“
#include
#include
using namespace cv;
using namespace std;
enum { DETECTION = 0 CAPTURING = 1 CALIBRATED = 2 };
int main()
{
/************************************************************************
从摄像机中读取多幅图像从中提取出角点,然后对角点进行亚像素精确化
*************************************************************************/
int image_count= 10; /**** 图像数量 ****/
Mat frame;
Size image_size; /**** 图像的尺寸 ****/
Size board_size = Size(96); /**** 定标板上每行、列的角点数 ****/
vector corners; /**** 缓存每幅图像上检测到的角点 ****/
vector> corners_Seq; /**** 保存检测到的所有角点 ****/
ofstream fout(“calibration_result.txt“); /** 保存定标结果的文件 **/
int mode = DETECTION;
VideoCapture cap(1);
cap.set(CV_CAP_PROP_frame_WIDTH640);
cap.set(CV_CAP_PROP_frame_HEIGHT480);
if(!cap.isOpened()){
std::cout<<“打开摄像头失败,退出“;
exit(-1);
}
namedWindow(“Calibration“);
std::cout<<“Press ‘g‘ to start capturing images!“<
int count = 0n=0;
stringstream tempname;
string filename;
int key;
string msg;
int baseLine;
Size textSize;
while(n < image_count )
{
frame.setTo(0);
cap>>frame;
if(mode == DETECTION)
{
key = 0xff & waitKey(30);
if( (key & 255) == 27 )
break;
if( cap.isOpened() && key == ‘g‘ )
{
mode = CAPTURING;
}
}
if(mode == CAPTURING)
{
key = 0xff & waitKey(30);
if( (key & 255) == 32 )
{
image_size = frame.size();
/* 提取角点 */
Mat imageGray;
cvtColor(frame imageGray CV_RGB2GRAY);
bool patternfound = findChessboardCorners(frame board_size cornersCALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE + CALIB_CB_FAST_CHECK );
if (patternfound)
{
n++;
tempname< tempname>>filename;
filename+=“.jpg“;
/* 亚像素精确化 */
cornerSubPix(imageGray corners Size(11 11) Size(-1 -1) TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER 30 0.1));
count += corners.size();
corners_Seq.push_back(corners);
imwrite(filenameframe);
tempname.clear();
filename.clear();
}
else
{
std::cout<<“Detect Failed.
“;
}
}
}
msg = mode == CAPTURING ? “100/100/s“ : mode == CALIBRATED ? “Calibrated“ : “Press ‘g‘ to start“;
baseLine = 0;
textSize = getTextSize(msg 1 1 1 &baseLine);
Point textOrigin(frame.cols - 2*textSize.width - 10 frame.rows - 2*baseLine - 10);
if( mode == CAPTURING )
{
msg = format( “%d/%d“nimage_count);
}
putText( frame msg textOrigin 1 1mode != CALIBRATED ? Scalar(00255) : Scalar(02550));
imshow(“Calibration“frame);
key = 0xff & waitKey(1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 60360 2015-07-30 11:09 calibrationcalibration1.jpg
文件 61121 2015-07-30 11:11 calibrationcalibration10.jpg
文件 61229 2015-07-30 11:10 calibrationcalibration2.jpg
文件 61537 2015-07-30 11:10 calibrationcalibration3.jpg
文件 64177 2015-07-30 11:10 calibrationcalibration4.jpg
文件 59513 2015-07-30 11:10 calibrationcalibration5.jpg
文件 62833 2015-07-30 11:11 calibrationcalibration6.jpg
文件 77115 2015-07-30 11:11 calibrationcalibration7.jpg
文件 66128 2015-07-30 11:11 calibrationcalibration8.jpg
文件 59704 2015-07-30 11:11 calibrationcalibration9.jpg
文件 4449 2015-07-27 15:06 calibrationcalibrationcalibration.vcxproj
文件 941 2015-07-27 14:44 calibrationcalibrationcalibration.vcxproj.filters
文件 410 2015-07-27 18:06 calibrationcalibrationcalibration.vcxproj.user
文件 0 2015-08-31 11:53 calibrationcalibrationcalibration_result.txt
文件 96 2015-07-30 00:33 calibrationcalibrationDebugcalibration.lastbuildstate
文件 2230 2015-07-30 00:33 calibrationcalibrationDebugcalibration.log
文件 736 2015-07-30 00:33 calibrationcalibrationDebugcl.command.1.tlog
文件 15812 2015-07-30 00:33 calibrationcalibrationDebugCL.read.1.tlog
文件 516 2015-07-30 00:33 calibrationcalibrationDebugCL.write.1.tlog
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
文件 2 2015-07-30 00:33 calibrationcalibrationDebugli
............此处省略134个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)