OpenCV 4.11.0
开源计算机视觉库
正在加载…
正在搜索…
未找到匹配项
三维重建

详细描述

注意
  • 请注意,只有在正确安装Ceres Solver后才会编译此模块。
    请查看以下教程中的安装说明:SFM 模块安装

函数

void cv::sfm::reconstruct (const std::vector< String > images, OutputArray Ps, OutputArray points3d, InputOutputArray K, bool is_projective=false)
 在执行自标定(autocalibration)的同时,从二维图像重建三维点。
 
void cv::sfm::reconstruct (const std::vector< String > images, OutputArray Rs, OutputArray Ts, InputOutputArray K, OutputArray points3d, bool is_projective=false)
 在执行自标定(autocalibration)的同时,从二维图像重建三维点。
 
void cv::sfm::reconstruct (InputArrayOfArrays points2d, OutputArray Ps, OutputArray points3d, InputOutputArray K, bool is_projective=false)
 在执行自标定(autocalibration)的同时,从二维对应点重建三维点。
 
void cv::sfm::reconstruct (InputArrayOfArrays points2d, OutputArray Rs, OutputArray Ts, InputOutputArray K, OutputArray points3d, bool is_projective=false)
 在执行自标定(autocalibration)的同时,从二维对应点重建三维点。
 

函数文档

◆ reconstruct() [1/4]

void cv::sfm::reconstruct ( const std::vector< String > images,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

在执行自标定(autocalibration)的同时,从二维图像重建三维点。

参数
images包含图像路径的字符串向量。
Ps输出向量,包含每张图像的 3x4 投影矩阵。
points3d输出数组,包含估计的三维点。
K输入/输出相机矩阵 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。输入参数用作初始猜测。
is_projective如果为真,则假定相机为投影相机。

此方法调用以下签名并从估计的 K、R 和 t 中提取投影矩阵。

注意
  • 图像必须按照图像序列的顺序排列。此外,每一帧都应尽可能接近于前一帧和后一帧。
  • 目前使用 DAISY 特征来计算二维点轨迹,并且仅适用于 3-4 张图像。

◆ reconstruct() [2/4]

void cv::sfm::reconstruct ( const std::vector< String > images,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

在执行自标定(autocalibration)的同时,从二维图像重建三维点。

参数
images包含图像路径的字符串向量。
Rs输出向量,包含相机的 3x3 旋转矩阵。
Ts输出向量,包含相机的 3x1 平移向量。
points3d输出数组,包含估计的三维点。
K输入/输出相机矩阵 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。输入参数用作初始猜测。
is_projective如果为真,则假定相机为投影相机。

内部调用 libmv 简单流水线程序,通过实例化 SFMLibmvEuclideanReconstruction 类使用一些默认参数。

注意
  • 图像必须按照图像序列的顺序排列。此外,每一帧都应尽可能接近于前一帧和后一帧。
  • 目前使用 DAISY 特征来计算二维点轨迹,并且仅适用于 3-4 张图像。
  • 要查看场景重建的工作示例,请查看以下教程:场景重建

◆ reconstruct() [3/4]

void cv::sfm::reconstruct ( InputArrayOfArrays points2d,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

在执行自标定(autocalibration)的同时,从二维对应点重建三维点。

参数
points2d二维点向量的输入向量(内部向量对应于每张图像)。
Ps输出向量,包含每张图像的 3x4 投影矩阵。
points3d输出数组,包含估计的三维点。
K输入/输出相机矩阵 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。输入参数用作初始猜测。
is_projective如果为真,则假定相机为投影相机。

此方法调用以下签名并从估计的 K、R 和 t 中提取投影矩阵。

注意
  • 轨迹必须尽可能精确。它不处理异常值,并且对异常值非常敏感。

◆ reconstruct() [4/4]

void cv::sfm::reconstruct ( InputArrayOfArrays points2d,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

在执行自标定(autocalibration)的同时,从二维对应点重建三维点。

参数
points2d二维点向量的输入向量(内部向量对应于每张图像)。
Rs输出向量,包含相机的 3x3 旋转矩阵。
Ts输出向量,包含相机的 3x1 平移向量。
points3d输出数组,包含估计的三维点。
K输入/输出相机矩阵 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。输入参数用作初始猜测。
is_projective如果为真,则假定相机为投影相机。

内部调用 libmv 简单流水线程序,通过实例化 SFMLibmvEuclideanReconstruction 类使用一些默认参数。

注意
  • 轨迹必须尽可能精确。它不处理异常值,并且对异常值非常敏感。
  • 要查看相机运动重建的工作示例,请查看以下教程:相机运动估计