OpenCV 笛卡尔坐标、极坐标互转
笛卡尔坐标、极坐标互转
- 1.笛卡尔坐标转为极坐标
- 2.极坐标转为笛卡尔坐标
1.笛卡尔坐标转为极坐标
函数原型:
void cartToPolar(InputArray x, //x坐标的数组,且必须是单精度或双精度浮点数组InputArray y, //y坐标的数组,且必须是单精度或双精度浮点数组OutputArray magnitude, //输出与x大小和类型相同的幅值数组OutputArray angle, //输出与x大小和类型相同的角度数组; 角度的范围是弧度(0~2pi)或角度(0~360)bool angleInDegrees = false) //一个标志,指示角度是以弧度(默认为弧度)还是以度为单位
示例代码1:
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main()
{vector<Point2f> sides;//建立容器存坐标sides.push_back(Point2f(3, 4));sides.push_back(Point2f(6, 8));sides.push_back(Point2f(1, 1));Mat xpts(sides.size(), 1, CV_32F, &sides[0].x, 2 * sizeof(float));Mat ypts(sides.size(), 1, CV_32F, &sides[0].y, 2 * sizeof(float));cout << "x: " << xpts.t() << endl;cout << "y: " << ypts.t() << endl;Mat magnitude, angle;cartToPolar(xpts, ypts, magnitude, angle); //调用函数cout << "\nmagnitude: " << magnitude.t();cout << "\nangle: " << angle.t() *180. / CV_PI <<endl;return 0;
}
示例代码2:
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main()
{Mat x = (Mat_<float>(3, 1) << 3, 6, 1);Mat y = (Mat_<float>(3, 1) << 4, 8, 1);Mat magnitude, angle;cartToPolar(x, y, magnitude, angle); //调用函数cout << "\nmagnitude: " << magnitude.t();cout << "\nangle: " << angle.t() * 180. / CV_PI << endl;return 0;
}
2.极坐标转为笛卡尔坐标
函数原型:
void polarToCart(InputArray magnitude, //输入二维矢量幅度的浮点数组;//它可以是一个空矩阵(= Mat()),在这种情况下,该函数假定 所有的幅度都是= 1; //如果不为空,则必须具有与角度相同的大小和类型InputArray angle, //输入2D向量角度的浮点数组OutputArray x, //2D向量的x坐标输出数组; 它的大小和类型与角度相同OutputArray y, //2D向量的y坐标的输出数组; 它的大小和类型与角度相同bool angleInDegrees = false)
示例代码:
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main()
{Mat magnitude = (Mat_<float>(3, 1) << 5, 10, 1.4142135);Mat angle = (Mat_<float>(3, 1) << 0.92740309, 0.92740309, 0.78523159);Mat x, y;polarToCart(magnitude, angle, x, y); //调用函数cout << "\nx: " << x.t() << endl;cout << "\ny: " << y.t() << endl;return 0;
}
OpenCV 笛卡尔坐标、极坐标互转相关推荐
- python笛卡尔转换极坐标_Go 语言: 极坐标与笛卡尔坐标的互转
本文记录使用 Go 语言实现 RESTful 的点坐标的转换. 极坐标与笛卡尔坐标的数学关系 假设同一个点使用极坐标表示为 (ρ, θ), 使用笛卡尔坐标表示为(x,y),那么,这些数学符号之间,有如 ...
- opencv与PIL互转
PIL 转 opencv import cv2 import numpy as np from PIL import Image# 这种打开方式也支持中文路径 image = Image.open(& ...
- Dlib学习笔记:dlib array2d与 OpenCV Mat互转
Dlib学习笔记:dlib array2d与 OpenCV Mat互转 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/7 ...
- 【数理知识】极坐标与笛卡尔坐标转换
极坐标与笛卡尔坐标 极坐标与笛卡尔坐标 笛卡尔坐标系 极坐标系 转换 笛卡尔坐标转换为极坐标 极坐标转换为笛卡尔坐标 但如果 X 和 Y 是负数呢? 总结 极坐标与笛卡尔坐标 笛卡尔坐标系 极坐标系 ...
- Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真
Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/deta ...
- 【Python】opencv展示汉字及与pillow对比
1.前记 因为opencv不能显示中文(会变成???),所以尝试通过opencv->pillow->opencv这种方式来实现,具体可参考这篇博客. 2.利用pillow展示中文 下面来简 ...
- C++常用方法笔记资料
C++常用方法笔记资料 目录 目录 C++常用方法笔记资料 VS中常用的设置 C++函数注释规范: 使用fprintf保存数据 C++和OpenCV的Debug文件 获得路径中的文件名和文件前缀和后缀 ...
- 深度学习项目训练时突然卡住或崩盘问题
问题1:训练到某个epoch或batch突然停住或报错可能原因如下:前一进程还未处理完,又进入下一个导致互锁,在一个Epoch完了后,或者每次获取一个batch数据后停顿一下: time.sleep( ...
- PyTorch 训练时中遇到的卡住停住等问题
目录 前言 1. PyTorch 训练时在第一个 epoch 的最后一个 batch 卡死 - 问题描述 - 可能的原因 - 解决方法 2. 使用命令行运行时,卡在第一个 epoch - 问题描述 - ...
最新文章
- wake_lock_timeout的使用方法【转】
- apache camel 相关配置_MyBatis-Plus返回map自动转驼峰配置object-wrapper-factory
- 代码智能技术如何应用到日常开发?
- ret2dlresolve归纳
- 如果可以,我们一起留在竹山。
- 1215课后练习----判断字符串位置
- 杭电1963 完全背包
- prune研究记录(二)
- C# WinForm捕获全局异常
- windows 下搭建 git 服务器 gogs
- mysq命令行导出sql_mysql 命令行导入导出.sql文件
- 体脂率在线计算机,在线体脂率计算器 男性15%~18%若体脂率过
- 中序遍历 java_java二叉树中序遍历递归和非递归实现
- 界面怎么随意设计java,怎么样设计一个图形用户界面(普通登陆框)用java语言中的swing...
- 【python】实用tools
- 如果细节决定成败,那么什么决定细节
- 原理:小程序image图片实现宽度100%,高度自适应
- matlab流场可视化后处理
- Java web p41
- 五金机械行业网站建设方案
热门文章
- solidworks如何等比例放大缩小零件
- cgb2108-day04
- J2EE开发笔记(一)—— J2EE开发环境配置
- 二本计算机考研简单吗,二本考生考研一本院校难不难?不要听那些奇怪论调,而要看这些!...
- AIOps浅谈《人工智能专栏里》
- matlab pca svd,关于使用SVD进行PCA主成分提取的代码问题!也是必须涉及到原理的!...
- 2007.9.16 今天
- 华为交换机以及基本配置
- asp学习入门经验谈
- python cache_python 内存cache