OpenCV4每日一练day9:单目相机标定
一.单目相机模型
二.OpenCV提供的相关函数
三.标定
准备文件:
运行(GIF动图)
最终标定结果:
附代码:
#include <opencv2\opencv.hpp>
#include <fstream>
#include <iostream>
#include <vector>using namespace std;
using namespace cv;int main()
{//读取所有图像vector<Mat> imgs;string imageName;ifstream fin("calibdata.txt");while (getline(fin, imageName)){Mat img = imread(imageName);imgs.push_back(img);}Size board_size = Size(9, 6); //方格标定板内角点数目(行,列)vector<vector<Point2f>> imgsPoints;for (int i = 0; i < imgs.size(); i++){Mat img1 = imgs[i];Mat gray1;cvtColor(img1, gray1, COLOR_BGR2GRAY);vector<Point2f> img1_points;findChessboardCorners(gray1, board_size, img1_points); //计算方格标定板角点find4QuadCornerSubpix(gray1, img1_points, Size(5, 5)); //细化方格标定板角点坐标bool pattern = true;drawChessboardCorners(img1,board_size,img1_points,pattern);imshow("img1",img1);waitKey(0);imgsPoints.push_back(img1_points);}//生成棋盘格每个内角点的空间三维坐标Size squareSize = Size(10, 10); //棋盘格每个方格的真实尺寸vector<vector<Point3f>> objectPoints;for (int i = 0; i < imgsPoints.size(); i++){vector<Point3f> tempPointSet;for (int j = 0; j < board_size.height; j++){for (int k = 0; k < board_size.width; k++){Point3f realPoint;// 假设标定板为世界坐标系的z平面,即z=0realPoint.x = j*squareSize.width;realPoint.y = k*squareSize.height;realPoint.z = 0;tempPointSet.push_back(realPoint);}}objectPoints.push_back(tempPointSet);}/* 初始化每幅图像中的角点数量,假定每幅图像中都可以看到完整的标定板 */vector<int> point_number;for (int i = 0; i<imgsPoints.size(); i++){point_number.push_back(board_size.width*board_size.height);}//图像尺寸Size imageSize;imageSize.width = imgs[0].cols;imageSize.height = imgs[0].rows;Mat cameraMatrix = Mat(3, 3, CV_32FC1, Scalar::all(0)); //摄像机内参数矩阵Mat distCoeffs = Mat(1, 5, CV_32FC1, Scalar::all(0)); //摄像机的5个畸变系数:k1,k2,p1,p2,k3vector<Mat> rvecs; //每幅图像的旋转向量vector<Mat> tvecs; //每张图像的平移量calibrateCamera(objectPoints, imgsPoints, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, 0);cout << "相机的内参矩阵=" << endl << cameraMatrix << endl;cout << "相机畸变系数" << distCoeffs << endl;waitKey(0);return 0;
}
OpenCV4每日一练day9:单目相机标定相关推荐
- OpenCV4每日一练day12:双目相机标定
一.标定说明--<OpenCV4快速入门> 二.标定 文件准备: 运行结果: <OpenCV4快速入门>中的运行结果: 附上例代码: #include <opencv2\ ...
- 单目相机标定(使用OpenCV)
关于相机标定的理论知识和使用Matlab软件进行相机标定请看这篇博文:单目相机标定(使用Matlab) 这次因为项目原因需要给海康工业相机进行标定了,下载Matlab软件有些麻烦(主要是我电脑内存小. ...
- 基于OpenCV的单目相机标定与三维定位
相机是产生图像数据的硬件,广泛应用于消费电子.汽车.安防等领域.围绕着相机衍生出一系列的研究与应用领域,包括传统的图像处理和基于深度学习的智能应用等.目前大火的自动驾驶中相机也是重要的硬件组成,如环视 ...
- matlab单目相机标定
文章目录 1.标定图片 2.标定 3.获取标定结果 使用matlab进行相机参数标定非常方便,相机畸变模型请参考另一篇文章相机内参与畸变模型,单目相机标定的结果就是得到相机内参与畸变系数. 1.标定图 ...
- 3.OpenCV可视化(Viz)——单目相机标定模拟
单目相机标定模拟 基于OpenCV中的Viz模块,虚拟一个相机,设置相机的内参数.然后在相机视野下放置标定板,通过相机标定算法,最终再获取相机内参数. 当然最终相机标定还是存在误差,我猜测主要原因是标 ...
- 【计算机视觉】OpenCV实现单目相机标定
文章目录 单目相机标定(基于Python OpenCV) 1.上期填坑 2.单目相机标定 2.1 数据采集 2.2 角点提取 2.3 参数求解 2.4 参数评估(重投影误差) 2.5 相机位姿(棋盘位 ...
- 单目相机标定实现--张正友标定法
文章目录 一:相机坐标系,像素平面坐标系,世界坐标系,归一化坐标系介绍 1:概述 公式 二:实现 1:整体流程 4:求出每张图像的单应性矩阵并用LMA优化 5:求解理想无畸变情况下的摄像机的内参数和外 ...
- 单目相机标定 分辨率1920X1080 利用libuvc
单目相机标定 分辨率1920X1080 利用libuvc libuvc 安装 开始标定 之前一直使用 usb_cam 但是默认分辨率是 640X480,调节到1920X1080后运行出错,干脆用lib ...
- SLAM学习 | 单目相机标定(附代码实测可用)
SLAM学习 | 单目相机标定(附代码实测可用) 1 针孔相机模型 2 张正友标定法 3 VS2013下配置openCV 4 标定过程与结果 5 经验总结与注意事项 概要: 这篇文章介绍如何解决做SL ...
- 一文图解单目相机标定算法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 有一天,蟹老板找底下的员工川建国同学: 等蟹老板走后,然后转头问旁边的学霸李雷同学: 李雷同学整理了下 ...
最新文章
- Science | COVID-19大流行期间,研究重点应放在高质量研究
- wordpress 重新生成附件文件名
- linux shell putty 无法使用 home end 键
- 互联网1分钟 |1221
- 【收藏】HDFS的Java API使用
- 编程之美 求数组中的最长递增子序列
- iphone字体大小设置_Win10电脑桌面上使用的记事本便签软件字体大小怎么调整?...
- unix mysql备份_数据库操作 备份篇 unix
- 教师提升微能力_国培主讲风采录:信息技术再提升 微能力点巧研修
- Denise God Mode for mac(磁带饱和器音频插件)
- 三天两夜肝完这篇万字长文,终于拿下了 TCP/IP
- await js 报错_async/await优雅的错误处理方法总结
- 开发常用在线协作工具推荐
- 关于电感数字传感器的一些问题
- java爬取网页上qq号,邮箱号等
- 程序员面试中一面、二面、三面有什么区别?
- PHP会员自动续费,switch会员自动续费怎么关
- P9065 [yLOI2023] 云梦谣 题解
- keil(MDK)中出现error: #513:
- Python多线程多进程应用场景
热门文章
- Oracle(三)多行函数
- Java数据结构与算法解析(二)——栈
- 一致性哈希 php redis,使用一致性哈希实现Redis分布式部署
- sp+Ssh+Mysql实现的简单的企业物资信息管理
- Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(8)
- 从Windows复制文件到Linux显示乱码问题
- java selenium环境安装
- 弹层,iframe页面
- 枚举算法:最小连续n个合数。试求出最小的连续n个合数(其中n是键盘输入的任意正整数)。
- mysql索引实现原理_Mysql索引原理