opencvc++三角测量函数
时间: 2023-11-13 17:09:50 浏览: 97
c++计算器代码 包含三角函数运算
4星 · 用户满意度95%
OpenCV中提供了一个函数来进行三角测量,即 `cv::triangulatePoints` 函数。
函数原型如下:
```
void cv::triangulatePoints(const cv::Mat& projMatr1, const cv::Mat& projMatr2, const cv::Mat& projPoints1, const cv::Mat& projPoints2, cv::Mat& points4D);
```
其中,`projMatr1` 和 `projMatr2` 是两个相机的投影矩阵,`projPoints1` 和 `projPoints2` 是对应的像素点坐标,`points4D` 是输出的齐次坐标点。
使用方法:
```
// 读取相机投影矩阵和对应的像素点坐标
cv::Mat projMatr1, projMatr2, projPoints1, projPoints2;
// ...
// 进行三角测量
cv::Mat points4D;
cv::triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D);
// 将输出的齐次坐标点转换为非齐次坐标点
cv::Mat points3D;
cv::convertPointsFromHomogeneous(points4D.t(), points3D);
```
需要注意的是,`cv::triangulatePoints` 函数输出的是齐次坐标点,需要将其转换为非齐次坐标点。
阅读全文