OpenCV (用标定相机实现三维重建)
利用不同视角下图像点之间的关系,计算出三维信息。
学些啥?
利用不同视角下图像点之间的关系,计算出三维信息
新的数学实体 —— 本质矩阵
三角剖分概念
实现
匹配两个视图的特征点
可利用 SIFT检测器 或 描述子
SIFT & SURF
SURF(加速稳健特征) 算法是 SIFT(尺度不变特征转换) 算法的加速版
SURF 特征检测属于 opencv_contrib
库,在编译时包含了附加模块才能使用。
1 | // 创建SURF特征检测器对象 |
SIFT
1 | // 创建SIFT特征检测器对象 |
画关键点
1 | drawKeypoints(image, // 原始图像 |
包含被检测特征的结果图像
用不同的尺度对同一物体拍摄一张照片,特征检测的结果图像
DrawMatchesFlags::DRAW_RICH_KEYPOINTS
标志得到了关键点的圆,并且圆的尺寸与每个特征计算得到的尺度成正比。为了使特征具有旋转不变性,SURF还让每个特征关联了一个方向,由每个圆的辐射线表示。
特征描述子
1 | // 定义关键点的容器 |
Feature2D
类有一个很实用的函数,可在检测兴趣点的同时计算它们的描述子,调用方法如下
1 | ptrFeature2D -> detectAndCompute(image, noArray(), keypoints, descriptors); |
二值描述子
ORB
ORB 的用法与 SURF 、SIFT 没有什么区别
1 | // 定义关键点的容器 和 描述子 |
找出本质矩阵
https://www.cnblogs.com/yuanlibin/p/9462180.html
1 | Mat inliers; |
还原相机的相对姿态
1 | // 根据本质矩阵还原相机的相对姿态 |
计算三角剖分
1 | vector<Vec3d> points3D; |
完整代码
1 | // 定义关键点的容器 和 描述子 |
- Post title:OpenCV (用标定相机实现三维重建)
- Post author:Eva.Q
- Create time:2021-08-02 16:26:31
- Post link:https://qyy/2021/08/02/OPENCV/OPENCV1-5/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.