1.简介

Matplotlib是一个Python 2D绘图库,可生成图表、直方图、散点图、谱图、条形图等。pyplot提供了类似MALAB的界面,它提供了matplotlib的“状态机器环境”,位于层次结构顶部,其中的一些简单的函数便可绘图。pyplot的下一个层次是面向对象接口(?)。

1)图 figure

fig = plt.figure() # 最简单的方式创建一个图

fig.suptitle('No axes on this figure') # Add a title so we know which it is

fig, ax_lst = plt.subplots(2, 2) # a figure with a 2x2 grid of Axes

2)轴 Axes

一个图可以包含多个轴,但一个给定的轴对象只能在一个图中。轴对象可以包含两个或三个坐标轴,负责数据限制,x坐标和y坐标。

Axes 类及其成员函数是使用OO接口的主要入口点。

3)坐标轴 Axis

负责设置图形限制并生成刻度(轴上的标记)和 ticklabel (标记刻度的字符串)。

4)艺术家 Artist

图形中看到的每一个元素都是艺术家,例如:figure、Axes、Axis等。

输入在绘图之前,最好讲输入转换为np.array对象。

Matplotlib,pyplot和pylab之间的关系?

Matplotlib 是整个包,而 Matplotlib.pyplot 是 Matplotlib 的一个模块。

对于 pyplot 模块中的函数,总是有一个“当前”图形和轴(根据请求自动创建)。

pylab已被丢弃。

编码风格

pyplot风格

import maplotlib.pyplot as plt

import numpy as np

然后调用np.arange, np.zeros, np.pi, plt.figure, plt.plot, plt.show等函数。

使用 pyplot 接口创建图形,然后使用 object 方法创建其余的图形。

交互模式

TO-DO

Pyplot 常用API----Updating

matplotlib.pyplot是一系列让matplotlib像MATLAB那样工作的的函数集合。

matplotlib.pyplot.plot(x,y,format_string,**kwargs)----折线图

注:相邻点之间线段相连,不相邻的不连

format_string有颜色字符,风格字符和标记字符

matplotlib.pyplot.figure( num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True )

num:图像编号或名称,数字为编号 ,字符串为名称

figsize:指定figure的宽和高,单位为英寸;

dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张

facecolor:背景颜色

edgecolor:边框颜色

frameon:是否显示边框

matplotlib.pyplot.subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)

注意:subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图 。

plt.axis('off') # 不显示坐标尺寸

一般步骤:

1.建立一个画布

plt.figure

2.建立子图

plt.subplot()/plt.plot()

3.显示

plt.show()

可视化二维人体姿态

import matplotlib.pyplot as plt

import matplotlib.mplot3d import Axes3D

import numpy as np

是对(32,2)这样维度的2d pose进行可视化

1.判断是否是正确的维度

assert channel == len(H36_NAMES)*2 # 这是可以根据不同情况进行变化的,比如(17,3)

2.根据如下的人体骨骼图的连接定义两个列表

I = np.array([1,2,3,1,7,8,1, 13,14,15,14,18,19,14,26,27])-1 # start points

J = np.array([2,3,4,7,8,9,13,14,15,16,18,19,20,26,27,28])-1 # end points

LR = np.array([1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1])

3.建立连接矩阵

for i in np.arange(len(I)):

x, y = [np.array( [vals[I[i], j], vals[J[i], j]] ) for j in range(2)]

ax.plot(x, y, lw=2, c='#e74c3c' if LR[i] else c='#3498db') # 左右两边的骨骼以不同的颜色展示

4.设置坐标轴的上下限

root_x, root_y = vals[0,0], vals[0,1]

Radius = 350

ax.set_xlim([-Radius+root_x, Radius+root_x])

ax.set_ylim([-Radius+root_y, Radius+root_y])

Optional

5.设置无坐标轴刻度

ax.set_xticks([])

ax.set_yticks([])

6.去除坐标轴刻度标签

ax.get_xaxis().set_xticklabels([])

ax.get_yaxis().set_yticklabels([])

ax.set_aspect('equal') # x轴和y轴的比例是1:1

注:这样显示出来的2d pose是倒立的,需要加上下面这行代码进行翻转:

ax.invert_yaxis()

可视化三维人体姿态

import matplotlib.pyplot as plt

import matplotlib.mplot3d import Axes3D

import numpy as np

是对(32,3)这样维度的3d pose进行可视化

1.判断是否是正确的维度

assert channel == len(H36_NAMES)*3 # 这是可以根据不同情况进行变化的,比如(17,3)

2.根据上面的人体骨骼图的连接定义两个列表

I = np.array([1,2,3,1,7,8,1, 13,14,15,14,18,19,14,26,27])-1 # start points

J = np.array([2,3,4,7,8,9,13,14,15,16,18,19,20,26,27,28])-1 # end points

LR = np.array([1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1])

3.建立连接矩阵

for i in np.arange(len(I)):

x, y, z = [np.array( [vals[I[i], j], vals[J[i], j]] ) for j in range(3)]

ax.plot(x, y, z,lw=2, c='#e74c3c' if LR[i] else c='#3498db') # 左右两边的骨骼以不同的颜色展示

4.设置坐标轴的上下限

root_x, root_y, root_z= vals[0,0], vals[0,1], vals[0,2]

Radius = 750

ax.set_xlim3d([-Radius+root_x, Radius+root_x])

ax.set_ylim3d([-Radius+root_y, Radius+root_y])

ax.set_ylim3d([-Radius+root_z, Radius+root_z])

5.设置无坐标轴刻度

ax.set_xticks([])

ax.set_yticks([])

ax.set_zticks([])

6.去除坐标轴刻度的标签

ax.get_xaxis.set_xticklabels([])

ax.get_yaxis.set_yticklabels([])

ax.get_zaxis.set_zticklabels([])

7.去除背景板的颜色

white = (1.0, 1.0, 1.0, 0.0)

ax.w_xaxis.set_pane_color(white)

ax.w_yaxis.set_pane_color(white)

8.去除线条的颜色

ax.w_xaxis.line.set_color(white)

ax.w_yaxis.line.set_color(white)

ax.w_zaxis.line.set_color(white)

最后,要显示出来一定要plt.show()!!!!

python 人体建模_Matplotlib学习---可视化人体姿态相关推荐

  1. python数学建模--绘图动态可视化图表

    目录 写在本博客的开篇 关于matplotlib绘图的两种模式 阻塞模式 交互模式 总结 绘制动态图的例子 二维折线图 结果演示 代码 三维折线图 结果演示 代码 三维散点图 结果演示 代码 写在本博 ...

  2. 【深度学习】深度学习三维人体建模最新论文、资源、数据、代码整理分享

    三维人体建模作为计算机人体仿真的一个组成部分,一直是人们研究的热点之一.自交互式计算机图形学诞生之日起,就有学者不断探索计算机人体建模技术.从线框建模.实体建模.曲面建模发展到基于物理的建模,已取得重 ...

  3. 深度学习三维人体建模最新论文、资源、数据、代码整理分享

    三维人体建模作为计算机人体仿真的一个组成部分,一直是人们研究的热点之一.自交互式计算机图形学诞生之日起,就有学者不断探索计算机人体建模技术.从线框建模.实体建模.曲面建模发展到基于物理的建模,已取得重 ...

  4. DELMIA学习笔记(三)人体建模学习笔记

    这篇笔记比较多,直接上传了,有需要的可下载,也可私聊白嫖. DELMAI人体建模学习笔记.pdf-其它文档类资源-CSDN下载DELMAI人体建模学习笔记更多下载资源.学习资料请访问CSDN下载频道. ...

  5. 深度学习之人体姿态估计在医疗领域的作用

    深度学习之人体姿态估计在医疗中的应用 摘要 目前基于深度学习的人体姿态估计的方法在一定的训练集上都取得不错的效果,将人体姿态估计应用于医疗当中有利于目前医疗体系的进步和医疗手段的改进.本文将介绍人体姿 ...

  6. 深度学习3D 人体姿态估计面临的问题和挑战

    在 3D 人体姿态估计中,学者们致力于研究基于单目 RGB 视频的 3D 人体姿态估计,这是因为目前单目 RGB 摄像头应用广泛.价格低廉,在人们日常使用的手机.电脑均配备有摄像头,因此该技术有着广大 ...

  7. 利用深度学习进行人体姿势估计--概述

    本文转载于原文链接 什么是姿势估计? 人体姿势估计和跟踪是一项计算机视觉任务,包括检测.关联和跟踪语义关键点.语义关键点的例子是 "右肩"."左膝 "或 &qu ...

  8. Python机器学习建模的标准流程(特征工程+建模调参+模型评估+全流程可视化)

    作者CSDN:进击的西西弗斯 本文链接:https://blog.csdn.net/qq_42216093/article/details/116994199 版权声明:本文为作者原创文章,转载需征得 ...

  9. 斯坦福大学李飞飞所在团队,招聘数字人体建模博士后研究员

    关注公众号,获取更多AI领域发展机会 (图片来自斯坦福大学官网) 团队介绍 该团队是斯坦福大学的一个教师团队,包括 Serena Yeung.Scott Delp.Garry Gold.Karen L ...

  10. 想做游戏次世代角色建模,如何学好人体和五官的雕刻?

    如果你没有一点美术基础的话,一开始就做角色建模会很难. 角色就是游戏中的人物.动物等活物,角色的起点要求比较高,要求 有比较好的美术基础,对人体结构有娴熟的了解,当然还要会用3D软件. 大家从最基础的 ...

最新文章

  1. 哪些人适合参加软件测试培训?
  2. python中的协程(二)
  3. GPT Timeline
  4. Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
  5. WeChat报错navigateTo:fail can not navigateTo a tabbar page
  6. Java代码实现负载均衡五种算法
  7. python twisted教程一,异步编程
  8. delphi 同盘移动文件所用时间测试(文件大小约6,083,545,088 字节)
  9. 螺旋千斤顶设计大作业_新型飞机千斤顶的优化设计
  10. python中的real是什么意思_为什么“1.real”语法错误,但“1 .real”在Python中有效?...
  11. Servlet过滤器和监听器知识总结
  12. 【转】VNode节点
  13. C++ 输出日志到 DbgView
  14. 访问服务器根目录文件,可道云 访问服务器根目录
  15. 二级mysql与access数据库_2017计算机二级Access数据库基础教程
  16. java的六大框架_常用的java开发框架介绍 (初学者必备的六大框架)
  17. 列车停站方案_基于节点分级的高速铁路列车停站方案设计策略
  18. linux d开头是什么文件夹,linux文件权限,p开头/d开头/l开头
  19. Java--网络编程(利用TCP实现简单的双人聊天)
  20. 积分第一中值定理与伏汝兰尼(Froullani)积分

热门文章

  1. 如何***内网windows xp的几种思路和方法
  2. 香港房地产业发展历程、现状、问题及对策探究
  3. 单片机74LS138扩展中断
  4. 数学分析教程(科大)——6.2笔记+习题
  5. Python-Selenium自动化登陆QQ空间
  6. 烽火通信 c语言 笔试,C语言嵌入式笔试题目及参考答案-烽火通信.doc
  7. KX022-1020 3轴 传感器 LGA RT8577AGQW LED驱动器
  8. 惠普HP CQ40 519TX XP系统安装以及XP驱动
  9. 实时错误‘429’:ActiveX控件不能创建对象
  10. ssh框架超详细总结