您的位置:首页 > 房产 > 建筑 > seo顾问什么职位_广州哪里好玩的景点推荐_武汉百度开户电话_成都做网络推广的公司有哪些

seo顾问什么职位_广州哪里好玩的景点推荐_武汉百度开户电话_成都做网络推广的公司有哪些

2025/7/5 17:07:01 来源:https://blog.csdn.net/jndingxin/article/details/146932954  浏览:    关键词:seo顾问什么职位_广州哪里好玩的景点推荐_武汉百度开户电话_成都做网络推广的公司有哪些
seo顾问什么职位_广州哪里好玩的景点推荐_武汉百度开户电话_成都做网络推广的公司有哪些
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

计算二维向量的大小和角度。
cartToPolar 函数计算每个二维向量 (x(I), y(I)) 的大小、角度,或同时计算两者:
magnitude ( I ) = x ( I ) 2 + y ( I ) 2 , angle ( I ) = atan2 ( y ( I ) , x ( I ) ) [ ⋅ 180 / π ] \begin{array}{l} \texttt{magnitude} (I)= \sqrt{\texttt{x}(I)^2+\texttt{y}(I)^2} , \\ \texttt{angle} (I)= \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))[ \cdot180 / \pi ] \end{array} magnitude(I)=x(I)2+y(I)2 ,angle(I)=atan2(y(I),x(I))[180/π]
cartToPolar 函数计算角度的准确度约为0.3度。对于点 (0,0),其角度被设定为0。
第一个输出是一个与输入 x 具有相同大小和深度的矩阵,表示各个向量的大小(magnitude)。 第二个输出也是一个与 x 具有相同大小和深度的矩阵,但表示的是各个向量的角度(angle)。这些角度以弧度(范围从 0 到 2π)或度数(0 到 360 度)测量。

注意事项:
函数的文本ID是 “org.opencv.core.math.cartToPolar”。

函数原型

std::tuple<GMat, GMat> cv::gapi::cartToPolar
(const GMat &  	x,const GMat &  	y,bool  	angleInDegrees = false 
) 		

参数

  • 参数x:CV_32FC1 类型的 x 坐标的矩阵。
  • 参数y:CV_32FC1 类型的 y 坐标的数组。
  • 参数angleInDegrees:一个标志,指示角度是用弧度(这是默认设置)测量,还是用度数测量。

返回值

返回一个 std::tuple<GMat, GMat>,其中:

  • 第一个元素是表示向量大小(magnitude)的 GMat。
  • 第二个元素是表示向量角度(angle)的 GMat。

代码示例

#include <opencv2/gapi/core.hpp>  // 包含G-API核心功能
#include <opencv2/opencv.hpp>
#include <tuple>int main()
{// 创建示例数据cv::Mat x = ( cv::Mat_< float >( 4, 1 ) << 1.0f, 0.0f, -1.0f, 0.0f );cv::Mat y = ( cv::Mat_< float >( 4, 1 ) << 0.0f, 1.0f, 0.0f, -1.0f );// 检查输入矩阵是否为空if ( x.empty() || y.empty() ){std::cerr << "无法加载输入矩阵,请检查数据。" << std::endl;return -1;}// 定义G-API图中的输入cv::GMat gx, gy;auto res = cv::gapi::cartToPolar( gx, gy, true );  // 将角度转换为度数// 创建一个计算图cv::GComputation cartToPolar_graph( cv::GIn( gx, gy ), cv::GOut( std::get< 0 >( res ), std::get< 1 >( res ) ) );// 输出矩阵cv::Mat magnitude, angle;// 编译并执行计算图cartToPolar_graph.apply( cv::gin( x, y ), cv::gout( magnitude, angle ) );// 打印结果std::cout << "Magnitude: " << magnitude << std::endl;std::cout << "Angle (degrees): " << angle << std::endl;return 0;
}

运行结果

Magnitude: [1;1;1;1]
Angle (degrees): [0;90;180;270]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com