资源简介
使用opencv2413版本通过张正友法进行单目相机标定,提供了用于标定的原始图片和标定代码,简单修改后即可在VS上运行
代码片段和文件信息
#include
#include
#include “CameraCalibrator.h“
/* 获取指令路径下所有文件的绝对路径 */
void getFiles(std::string path std::vector& files)
{
long hFile = 0;
struct _finddata_t fileinfo;
std::string p;
if((hFile = _findfirst(p.assign(path).append(“\\*“).c_str() &fileinfo)) != -1)
{
do
{
if((fileinfo.attrib & _A_SUBDIR))
{
if(strcmp(fileinfo.name “.“) != 0 && strcmp(fileinfo.name “..“) != 0)
getFiles(p.assign(path).append(“\\“).append(fileinfo.name) files);
}
else
{
files.push_back(p.assign(path).append(“\\“).append(fileinfo.name));
}
}while(_findnext(hFile &fileinfo) == 0);
_findclose(hFile);
}
}
// 存放用于标定的图像文件夹路径
std::string path = “C:\\Users\\Wiley\\Documents\\Visual Studio 2012\\Projects\\opencv_camera\\opencv_camera\\saveImage“;
int main()
{
/* 获取图像路径信息 */
std::vector files;
getFiles(path files);
cv::Mat image;
CameraCalibrator cc;
cv::Size boardSize(6 4);// 标定图像中每行、列中内角点的数量
image = cv::imread(files[7] 0);
cc.addChessboardPoints(files boardSize);// 计算并保存角点信息
cc.calibrate(image.size());// 标定
cv::Mat uImage = cc.remap(image);// 对图像进行矫正操作
cv::imshow(“Original Image“ image);
cv::imshow(“Undistorted Image“ uImage);
/* 打印内参矩阵 */
std::cout<<“相机内参矩阵:“< cv::Mat cameraMatrix = cc.getCameraMatrix();
for(int i = 0; i < cameraMatrix.rows; i++)
{
for(int j = 0; j < cameraMatrix.cols; j++)
{
std::cout<(ij)<<“ “;
}
std::cout< }
std::cout<
/* 验证标定结果 */
cc.computeCalibrateError();
std::vector errs = cc.getCalibrateErrs();
for(int i = 0; i < errs.size(); i++)
{
std::cout<<“第“< }
cv::waitKey();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3288 2017-09-25 15:59 CameraCalibrator.cpp
文件 1442 2017-09-25 15:55 CameraCalibrator.h
文件 1947 2017-09-25 16:00 calibrate.cpp
目录 0 2017-09-25 14:03 saveImage\
文件 921654 2017-09-25 10:12 saveImage\image_0.bmp
文件 921654 2017-09-25 10:12 saveImage\image_10.bmp
文件 921654 2017-09-25 10:12 saveImage\image_102.bmp
文件 921654 2017-09-25 10:12 saveImage\image_112.bmp
文件 921654 2017-09-25 10:12 saveImage\image_129.bmp
文件 921654 2017-09-25 10:12 saveImage\image_133.bmp
文件 921654 2017-09-25 10:12 saveImage\image_17.bmp
文件 921654 2017-09-25 10:12 saveImage\image_34.bmp
文件 921654 2017-09-25 10:12 saveImage\image_41.bmp
文件 921654 2017-09-25 10:12 saveImage\image_56.bmp
文件 921654 2017-09-25 10:12 saveImage\image_66.bmp
文件 921654 2017-09-25 10:12 saveImage\image_89.bmp
文件 921654 2017-09-25 10:12 saveImage\image_97.bmp
相关资源
- opencv 数字识别
- itti视觉显著性计算模型opencv实现
- 异常行为检测
- qt+opencv视频图像采集与基于tcp协议的
- opencv2.4.3和4.0函数手册带目录可搜索
- 遗留物检测
- 笔记本OpenCV调用摄像头进行人脸捕捉
- VS+OPENCV手势识别
- opencv下haarclassifiercascade加上LBPHFaceRe
- 图片动漫风格化
- 基于SVM与ANN的车牌识别
- OpenCV实现同一窗口显示多幅图片
- haar特征的手势检测OpenCV
- 基于opencv的人脸表情识别的预处理
- opencv+qt+vs的摄像头视频显示和处理G
- OpenCV算法精解——源码和测试图片
- opencv结构光生成代码
- opencv 书籍
- 基于PCA的人脸识别系统
-
haartraining+ob
jectmarker,opencv,Adaboo - opencv提取光斑质心
- Ubuntu下Opencv显示中文
- 划痕缺陷检测
- 单USB双目摄像头拍摄程序
- RAAR相位恢复 opencv
- FTVd全变差去模糊opencv实现
- 全变差TV去噪(split bregman) opencv
- opencv开启本地摄像头并拍照
- 基于opencv的激光线中心提取源码
- opencv3.0 鱼眼标定校正 改进
评论
共有 条评论