资源简介
参考我的博客: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个文件信息
相关资源
- VIBE算法原理及openCV源程序
- opencv+zbar实现摄像头二维码识别
- opencv学习---运动目标前景检测
- 新手学习opencv--基于Hog的视频行人检测
- 泊松重建的工程源代码亲测可运行
- 通过Kinect v2.0+ VS2012+openCV2.4.9将彩色帧
- Mastering OpenCV中文版
- vs2008下实现二维码扫描,图片扫描,
- 基于opencv2.4.9的车牌定位、倾斜校正、
- OpenCV张正友相机标定程序,附实验数
- HOG特征可视化C代码
- 基于vs2013+opencv实现的CT平扫式二维断
- 车牌识别完整版 基于OPENCV3 完全实现
- opencv实现多角度重建
- 车辆识别项目.rar
- 张正友相机标定Opencv实现完整程序+棋
- OpenCV计算机视觉编程攻略 (第2版)
- opencv视频行人检测1HOG+SVM
- OpenCV手势动作识别--石头剪刀布
- 图像匹配 目标轮廓匹配 基于OPENCV库
- opencv视觉导航小车寻迹
- 对图像的一维高斯滤波操作
- opencv420_boostdesc_bgm_vgg_generated.zip
- VS2010 Opencv-2.4.3的配置
- 基于opencv的三维重建代码
-
Robust Real-time ob
ject Detection 论文 整理 - opencv2.1+VS2008实现维纳滤波复原
- 相机标定讲解ppt
- opencv3.2交叉编译出来的库文件
- 基于opencv人脸识别的封装
评论
共有 条评论