资源简介

参考我的博客:http://blog.csdn.net/hongbin_xu/article/details/78988450 张正友相机标定完整工程实现,开发环境为(win10+VS2015+OpenCV3.1.0)

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main()
{
ifstream inImgPath(“calibdata.txt“); //标定所用图像文件的路径
vector imgList;
vector::iterator p;
string temp;
if (!inImgPath.is_open())
{
cout << “没有找到文件“ << endl;
}
//读取文件中保存的图片文件路径,并存放在数组中
while (getline(inImgPath temp))
{
imgList.push_back(temp);
}

ofstream fout(“caliberation_result.txt“); //保存标定结果的文件

cout << “开始提取角点......“ << endl;
cv::Size image_size;//保存图片大小
cv::Size pattern_size = cv::Size(4 6);//标定板上每行、每列的角点数;测试图片中的标定板上内角点数为4*6
vector corner_points_buf;//建一个数组缓存检测到的角点,通常采用Point2f形式
vector::iterator corner_points_buf_ptr;
vector> corner_points_of_all_imgs;
int image_num = 0;
string filename;
while(image_num < imgList.size())
{
filename = imgList[image_num++];
cout << “image_num = “ << image_num << endl;
cout << filename.c_str() << endl;
cv::Mat imageInput = cv::imread(filename.c_str());
if (image_num == 1)
{
image_size.width = imageInput.cols;
image_size.height = imageInput.rows;
cout << “image_size.width = “ << image_size.width << endl;
cout << “image_size.height = “ << image_size.height << endl;
}

if (findChessboardCorners(imageInput pattern_size corner_points_buf) == 0)
{
cout << “can not find chessboard corners!\n“; //找不到角点
exit(1);
}
else
{
cv::Mat gray;
cv::cvtColor(imageInput gray CV_RGB2GRAY);
cv::find4QuadCornerSubpix(gray corner_points_buf cv::Size(5 5));
corner_points_of_all_imgs.push_back(corner_points_buf);
cv::drawChessboardCorners(gray pattern_size corner_points_buf true);
cv::imshow(“camera calibration“ gray);
cv::waitKey(100);
}
}

int total = corner_points_of_all_imgs.size();
cout << “total=“ << total << endl;
int cornerNum = pattern_size.width * pattern_size.height;//每张图片上的总的角点数
for (int i = 0; i < total;i++)
{
cout << “--> 第“ << i + 1 << “幅图片的数据 -->:“ << endl;
for (int j = 0;j < cornerNum;j++)
{
cout << “-->“ << corner_points_of_all_imgs[i][j].x;
cout << “-->“ << corner_points_of_all_imgs[i][j].y;
if ((j + 1) % 3 == 0)
{
cout << endl;
}
else
{
cout.width(10);
}
}
cout << endl;
}

cout << endl << “角点提取完成“ << endl;

//摄像机标定
cout << “开始标定………………“ << endl;
cv::Mat cameraMatrix = cv::Mat(3 3 CV_32FC1 cv::Scalar::all(0));//内外参矩阵,H——单应性矩阵
cv::Mat distCoefficients = cv::Mat(1 5 CV_32FC1 cv::Scalar::all(0));//摄像机的5个畸变系数:k1k2p1p2k3
vector tvecsMat;//每幅图像的平移向量,t
vector rvecsMat;//每幅图像的旋转向量(罗德里格旋转向量)
vector> objectPoints;//保存所有图片的角点的三维坐标
 //初始化每一张图片中标定板上角点的三维坐标
int i j k;
for (k = 0;k <

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-06 17:25  testCameraCalibration\
     目录           0  2018-01-06 12:48  testCameraCalibration\.vs\
     目录           0  2018-01-06 12:48  testCameraCalibration\.vs\testCameraCalibration\
     目录           0  2018-01-06 12:48  testCameraCalibration\.vs\testCameraCalibration\v14\
     文件       32256  2018-01-06 17:25  testCameraCalibration\.vs\testCameraCalibration\v14\.suo
     目录           0  2018-01-06 12:48  testCameraCalibration\Debug\
     目录           0  2018-01-06 14:03  testCameraCalibration\testCameraCalibration\
     文件        1345  2018-01-06 12:48  testCameraCalibration\testCameraCalibration.sln
     文件    13533184  2018-01-06 17:25  testCameraCalibration\testCameraCalibration.VC.db
     文件       96914  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\10_d.jpg
     文件      105567  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\11_d.jpg
     文件      122697  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\12_d.jpg
     文件      116777  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\13_d.jpg
     文件      125110  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\14_d.jpg
     文件      106607  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\1_d.jpg
     文件      101875  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\2_d.jpg
     文件      111613  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\3_d.jpg
     文件      115462  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\4_d.jpg
     文件      118556  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\5_d.jpg
     文件      123183  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\6_d.jpg
     文件      107267  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\7_d.jpg
     文件      110507  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\8_d.jpg
     文件       96209  2018-01-06 17:22  testCameraCalibration\testCameraCalibration\9_d.jpg
     文件        1305  2017-12-26 10:55  testCameraCalibration\testCameraCalibration\calibdata.txt
     文件        6322  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\caliberation_result.txt
     目录           0  2018-01-06 12:48  testCameraCalibration\testCameraCalibration\Debug\
     目录           0  2018-01-06 12:48  testCameraCalibration\testCameraCalibration\Debug\testCame.cf59b612.tlog\
     文件        8072  2018-01-06 12:49  testCameraCalibration\testCameraCalibration\testCameraCalibration.vcxproj
     文件         944  2018-01-06 12:49  testCameraCalibration\testCameraCalibration\testCameraCalibration.vcxproj.filters
     目录           0  2018-01-06 12:49  testCameraCalibration\testCameraCalibration\x64\
     目录           0  2018-01-06 17:21  testCameraCalibration\testCameraCalibration\x64\Debug\
............此处省略19个文件信息

评论

共有 条评论