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

 更新时间:2019年09月02日 10:33:58   作者:caimouse  
这篇文章主要介绍了在OpenCV里实现极坐标变换功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

极坐标很方便应用到雷达上面,因为雷达不断地转动,反射回来的波计算出距离,再与转动的角度,就构成一个二维图的坐标了。也有人采用这样雷达图来表示公式的销售业绩,这样方便比较不同人的结果,可以看出每个人的差距。下面就使用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链接sqlite数据库的详细代码实例

    python链接sqlite数据库的详细代码实例

    SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身,它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低
    2021-09-09
  • Pygame Rect区域位置的使用(图文)

    Pygame Rect区域位置的使用(图文)

    在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域。本文主要就来介绍一下如何使用,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • python密码学黑客攻击RSA密码

    python密码学黑客攻击RSA密码

    这篇文章主要为大家介绍了python密码学黑客攻击RSA密码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python并发2之使用asyncio处理并发

    python并发2之使用asyncio处理并发

    本篇文章主要介绍了python并发2之使用asyncio处理并发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Python编程scoketServer实现多线程同步实例代码

    Python编程scoketServer实现多线程同步实例代码

    这篇文章主要介绍了Python编程scoketServer实现多线程同步实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python3.5面向对象与继承图文实例详解

    Python3.5面向对象与继承图文实例详解

    这篇文章主要介绍了Python3.5面向对象与继承,结合图文与实例形式详细分析了Python3.5面向对象与继承的相关概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-04-04
  • Python操作PDF图片的基本方法(增删改查)

    Python操作PDF图片的基本方法(增删改查)

    PDF文件中的图片可以丰富文档内容,提升用户的阅读体验,除了在PDF中添加图片外,有时也需要替换或删除其中的图片,文本将提供三个示例,介绍如何使用Python 操作PDF文件中的图片,需要的朋友可以参考下
    2024-04-04
  • python树的同构学习笔记

    python树的同构学习笔记

    在本篇文章里小编给大家整理的是一篇关于python树的同构学习笔记以及相关实例代码内容,有需要的朋友们学习下。
    2019-09-09
  • Python中将列表转化为链表的方法详解

    Python中将列表转化为链表的方法详解

    这篇文章主要介绍了Python中将列表转化为链表的方法详解,本文的主要问题是输入一组数,将其按照顺序添加到链表中,文中提供了解决思路与部分实现代码,需要的朋友可以参考下
    2023-11-11
  • Jupyter Notebook安装及使用方法解析

    Jupyter Notebook安装及使用方法解析

    这篇文章主要介绍了Jupyter Notebook安装及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11

最新评论