资源简介
使用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的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论