Python在OpenCV里实现极坐标变换功能


Posted in Python onSeptember 02, 2019

在中学里学习过直角坐标系,也叫做笛卡尔坐标系,它是正交坐标系,不过也学习过极坐标系,这种坐标系比较适合大炮发射的场合。极坐标系的定义如下:

在 平面内取一个定点O, 叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向)。对于平面内任何一点M,用ρ表示线段OM的长度,θ表示从Ox到OM的角度,ρ叫做点M的极径,θ叫做点M的极角,有序数对 (ρ,θ)就叫点M的极坐标,这样建立的坐标系叫做极坐标系。

Python在OpenCV里实现极坐标变换功能

极坐标很方便应用到雷达上面,因为雷达不断地转动,反射回来的波计算出距离,再与转动的角度,就构成一个二维图的坐标了。也有人采用这样雷达图来表示公式的销售业绩,这样方便比较不同人的结果,可以看出每个人的差距。下面就使用python和matplotlib实现这样的绘图,让我们对极坐标有一个明确的理解,以便后面展开从直角坐标到极坐标的变换学习,这个例子代码如下:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import matplotlib.pyplot as plt
import numpy as np
 
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
 
employee = ["张三", "李四", "蔡大", "庞二", "林五"]
actual = [45, 53, 55, 61, 57, 45]
expected = [50, 55, 60, 65, 55, 50]
 
# 设置图形大小和极坐标方式显示
plt.figure(figsize=(5, 5))
plt.subplot(polar=True)
 
#角度坐标生成
theta = np.linspace(0, 2 * np.pi, len(actual))
 
# 设置极坐标的标记
lines, labels = plt.thetagrids(range(0, 360, int(360/len(employee))), (employee))
 
# 在极坐标显示销售数值
plt.plot(theta, actual)
plt.fill(theta, actual, 'b', alpha=0.1)
 
# 极坐标显示期望销售数值
plt.plot(theta, expected)
 
# 添加标注和标题
plt.legend(labels=('实际值', '期望值'), loc=1)
plt.title("实际值 与 期望值对比")
 
# 显示点到屏幕
plt.show()

输出结果如下:

Python在OpenCV里实现极坐标变换功能

总结

以上所述是小编给大家介绍的Python在OpenCV里实现极坐标变换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python去掉字符串中重复字符的方法
Feb 27 Python
wxPython窗口的继承机制实例分析
Sep 28 Python
python获取文件版本信息、公司名和产品名的方法
Oct 05 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
详细介绍Python中的偏函数
Apr 27 Python
python+pygame简单画板实现代码实例
Dec 13 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python  Django 母版和继承解析
Aug 09 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 #Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 #Python
Python目录和文件处理总结详解
Sep 02 #Python
Python3操作Excel文件(读写)的简单实例
Sep 02 #Python
python函数修饰符@的使用方法解析
Sep 02 #Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 #Python
基于python进行抽样分布描述及实践详解
Sep 02 #Python
You might like
Zend Framework页面缓存实例
2014/06/25 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python简单验证码识别的实现方法
2019/05/10 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
python实现梯度下降法
2020/03/24 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
普通党员对照检查材料
2014/09/24 职场文书
档案管理员岗位职责
2015/02/12 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers