像素坐标转相机坐标代码c++
时间: 2023-06-15 09:06:48 浏览: 89
坐标转换C++
5星 · 资源好评率100%
下面是一个简单的 C++ 代码示例,用于将像素坐标转换为相机坐标:
```c++
#include <opencv2/opencv.hpp>
cv::Point2f pixel2cam(const cv::Point2f& p, const cv::Mat& K)
{
return cv::Point2f
(
(p.x - K.at<float>(0, 2)) / K.at<float>(0, 0),
(p.y - K.at<float>(1, 2)) / K.at<float>(1, 1)
);
}
int main()
{
// 焦距,光心
cv::Mat K = (cv::Mat_<float>(3, 3) << fx, 0, cx, 0, fy, cy, 0, 0, 1);
// 像素坐标
cv::Point2f pixel_point(320, 240);
// 像素坐标转相机坐标
cv::Point2f camera_point = pixel2cam(pixel_point, K);
return 0;
}
```
其中,`fx` 和 `fy` 是相机的焦距,`cx` 和 `cy` 是相机的光心,`K` 是相机的内参矩阵,`pixel_point` 是输入的像素坐标,`camera_point` 是输出的相机坐标。
阅读全文