版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第OpenCV实现相机标定示例详解目录环境准备相机标定棋盘格图片实时显示相机的画面在线标定实时显示相机画面,按键保存能检测到角点的棋盘格图片离线标定畸变矫正
环境准备
vs2015+opencv4.10安装与配置
相机标定
棋盘格图片
可以自己生成,然后打印到A4纸上。(也可以去TB买一块,平价买亚克力板的,不反光买氧化铝材质,高精度买陶瓷的)
*生成棋盘格图片
intgenerateCalibrationPicture()
//Matframe=imread("3A4.bmp");//cols*rows=630*891
Matframe(1600,2580,CV_8UC3,Scalar(0,0,0));
intnc=frame.channels();
intnWidthOfROI=320;
for(intj=10;jframe.rows-10;j++)
uchar*data=frame.ptruchar
for(inti=10;i(frame.cols-10)*nc;i+=nc)
if((i/nc/nWidthOfROI+j/nWidthOfROI)%2)
//bgr
data[i/nc*nc+0]=255;
data[i/nc*nc+1]=255;
data[i/nc*nc+2]=255;
imshow("test",frame);
//imwrite("3.bmp",frame);
waitKey(0);
return0;
实时显示相机的画面
准备一个相机,我的是usb相机(罗技100多的)。
intdisplayCameraRealTime()
//1.从摄像头读入视频
VideoCapturecapture(0);
if(!capture.isOpened()){
std::cout"无法开启摄像头!"std::endl;
return-1;
//2.循环显示每一帧
while(1)
Matcam;
capturecam;//获取当前帧图像
namedWindow("实时相机画面",WINDOW_AUTOSIZE);
imshow("实时相机画面",cam);//显示当前帧图像
//imwrite(to_string(i)+".png",cam);
waitKey(20);//延时20ms
效果如下图:
在线标定
把打印的棋盘格固定在板子上
*实时检测角点,按键保存角点参数,达到数量执行标定并保存标定结果
*@paramnumBoards需要几张标定图片,即获取几组角点参数
*@paramboardSize格子尺寸Size7*4
*@paramsquareSize格子尺寸mm
*@paramflipHorizontal是否翻转
intcalibrateCameraRealTime(intnumBoards,cv::SizeboardSize,floatsquareSize=1,intdelay=50,boolflipHorizontal=false);
实时显示相机画面,按键保存能检测到角点的棋盘格图片
intsaveChessboardImages(cv::SizeboardSize,stringsavePath)
//1.从摄像头读入视频
VideoCapturecapture(0);
if(!capture.isOpened()){
std::cout"无法开启摄像头!"std::endl;
return-1;
if(savePath!="./")
myMkdir(savePath);
//2.循环显示每一帧
while(1){
Matimage0,image;
captureimage0;
//将图像复制到image
image0.copyTo(image);
//查找标定板(不对称圆网格板)
vectorPoint2fcorners;
//boolfound=findCirclesGrid(image,boardSize,corners,CALIB_CB_ASYMMETRIC_GRID);
boolfound=findChessboardCorners(image,boardSize,corners,CALIB_CB_FAST_CHECK);
//画上去
drawChessboardCorners(image,boardSize,corners,found);
intaction=waitKey(30)255;
//判断动作
if(action==ACTION_SPACE){//用户按下了空格
if(found){
//保存图片
stringimgFileName=savePath+getCurrentTime()+".png";
imwrite(imgFileName,image0);
coutimgFileName"saved"endl;
else{
printf("%s\n","未检测到角点");
elseif(action==ACTION_ESC){//用户按下了ESC
break;
cv::imshow("Calibration",image);
cv::destroyAllWindows();
return1;
离线标定
*离线相机标定
*@paramimagePath标定图片存放路径
*@paramboardSize格子尺寸Size7*4
*@paramsquareSize格子尺寸mm
intcalibrateCameraOffLine(stringimagePath,constSizeboardSize,floatsquareSize=1);
畸变矫正
*去畸变1、本地图片2、实时相机图像
*@par
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 3903.24-2026鞋类鞋跟试验方法持钉力
- 幼儿园教师专业学习共同体运行效能研究-基于教研活动记录与教师成长数据
- 美育基础概述 9
- 建筑项目策划
- 会议系统施工方案
- 智能化工程施工操作规程
- 焦虑自评量表(SAS)修订版
- 平面设计工设备清单
- 2025高考四川卷生物真题试卷(纯答案版)
- 5G工业互联网智能装备生产基地建设项目可行性研究报告模板拿地申报
- 生物浙江宁波市三锋联盟2025-2026学年度高一年级第二(下)学期期中联考(4.22-4.24)
- 2026年二级建造师二建法规考前预测重点知识强化记忆总结笔记
- 2026云南省有色地质局楚雄勘查院下属企业招聘工作人员11人笔试备考试题及答案解析
- 心血管科试卷及分析
- 2026四川发展(控股)有限责任公司所属公司招聘5人笔试参考题库及答案解析
- 湖北省武汉市2026届高三毕业生四月调研考试语文试卷(含答案)
- 养老机构防灾避险课件
- 2026年辽宁能源集团招聘考试指南及模拟题解析
- 2026广东广州市黄埔区大沙街道招聘编外聘用人员4人备考题库及参考答案详解
- 国家事业单位招聘2025中国工艺美术馆招聘拟聘人员笔试历年参考题库典型考点附带答案详解(3卷合一)
- 企业管理 华为会议接待全流程手册SOP
评论
0/150
提交评论