二维平面上的点从极坐坐标系转换为笛卡尔标系 opencv
时间: 2024-03-26 11:41:11 浏览: 113
在 OpenCV 中,可以使用 `cv::polarToCart()` 函数将极坐标系下的点转换为笛卡尔坐标系下的点。函数原型如下:
```c++
void cv::polarToCart(
InputArray magnitude, // 极径值
InputArray angle, // 极角值
OutputArray x, // 输出的 x 坐标
OutputArray y, // 输出的 y 坐标
bool angleInDegrees = false // 极角是否以角度制给出
);
```
其中,`magnitude` 是极径值,`angle` 是极角值,`x` 和 `y` 分别是输出的 x 坐标和 y 坐标。如果 `angleInDegrees` 为 true,表示极角是以角度制给出的,否则默认为弧度制。
举个例子,假设有一个极坐标点 $(r, \theta)$,我们可以使用以下代码将它转换为笛卡尔坐标系下的点 $(x, y)$:
```c++
double r = 10.0; // 极径
double theta = 1.5; // 极角
cv::Mat x, y;
cv::polarToCart(r, theta, x, y);
std::cout << "x = " << x.at<double>(0, 0) << ", y = " << y.at<double>(0, 0) << std::endl;
```
输出结果应该是:
```
x = -0.0707372, y = -9.99587
```
其中,`x` 和 `y` 的类型都是 `cv::Mat`,因此需要使用 `at()` 函数获取它们的值。
阅读全文