2020-04-11 11:42:22 --Edit by yangray
以下所有类(除了BboxTransformToMaxOnly )都直接继承于Affine2DBase

IdentityTransform专门做高效的原地变换(变换前后不变)。
BboxTransform 线性地将点集从一个bbox变换到另一bbox。
BboxTransformTo 线性地将点集从单位bbox([0,0], [1,1]) 变换到指定bbox。
BboxTransformToMaxOnly 线性地将点集从单位bbox变换到指定bbox,左上角固定为原点(0, 0)。
BboxTransformFrom 线性地将点集从给定bbox变换到单位bbox
ScaledTranslation 对位移量进行伸缩控制的位移变换。

IdentityTransform(Affine2DBase):
方法:
  • frozen(self):

    返回静态的变换矩阵的拷贝。

  • get_matrix(self):

    返回变换矩阵。

  • transform(self, points):

    返回points(点集)作原地变换的结果。(变换之后和变换之前一样)

  • transform_path(self, path):

    参数[path]: Path对象,曲线。    

    返回对曲线path作原地变换的结果。(变换前后都一样)

  • get_affine(self):

    返回本原地变换的 self。(便于链式调用)

BboxTransform(Affine2DBase):
方法:
  • __init__(self, boxin, boxout, **kwargs):

    参数[boxin], [boxout]: Bbox对象

    创建一个BboxTransform对象,线性地将点集从boxin变换到boxout中

  •  get_matrix(self):

     返回由boxin变换到boxout的变换矩阵,包括尺度的变换,位置的变换。

    横向尺度为 boxout的宽 / boxin的宽,纵向尺度为 boxout的高 / boxin的高。

    横向位移为boxout的左边 - bbox的左边 * 横向尺度,纵向类似。

BboxTransformTo(Affine2DBase):
方法:
  • __init__(self, boxout, **kwargs):

    参数[boxout]: Bbox对象

    创建一个BboxTransformTo对象,线性地将点集从单位bbox([0,0], [1,1])变换到boxout。

  • get_matrix(self):

    返回从单位bbox变换到boxout的变换矩阵。生成方式参考BboxTransform类的同一方法。

BboxTransformToMaxOnly(BboxTransformTo):
方法
  • get_matrix(self):

    返回从单位bbox变换到boxout的变换矩阵。生成方式参考BboxTransform类的同一方法。(选择最大的变换比例)


BboxTransformFrom(Affine2DBase):
方法
  • __init__(self, boxin, **kwargs):

    参数[boxin]: Bbox实例

     创建新的BboxTransformFrom,将点集从boxin变换到单位bbox([0,0], [1,1])。

  • get_matrix(self):

    返回从boxin变换到单位box的变换矩阵。生成方式参考BboxTransform类的同一方法。

ScaledTranslation(Affine2DBase):
方法
  •  __init__(self, xt, yt, scale_trans, **kwargs):

    参数[xt], [yt]: x / y方向的位移量

     [scale_trans]: 位移的伸缩比例

     创建一个ScaledTranslation(可控位移变换)对象,x方向位移xt*scale_trans, y方向位移yt*scale_trans。

  • get_matrix(self):

    返回本ScaledTranslation(可控位移变换)的变换矩阵。

    

matplotlib 中其他基于Affine2DBase的类的更多相关文章

  1. 基于Python实现matplotlib中动态更新图片(交互式绘图)

    最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...

  2. asp.net中使用基于角色role的Forms验证

    http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统 ...

  3. C#中的结构体与类的区别

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  4. 在ASP.NET MVC中实现基于URL的权限控制

    本示例演示了在ASP.NET MVC中进行基于URL的权限控制,由于是基于URL进行控制的,所以只能精确到页.这种权限控制的优点是可以在已有的项目上改动极少的代码来增加权限控制功能,和项目本身的耦合度 ...

  5. 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现

    <在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...

  6. 二、spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍

    包括JDBC.JPA.MyBatis.多数据源和事务. 一.JDBC 连接数据库 1.属性配置文件(application.properties) spring.datasource.url=jdbc ...

  7. JAVA中的集合容器操作类

    目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...

  8. Java中各种集合(字符串类)的线程安全性!!!

    Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...

  9. C#中的结构体与类的区别 (转载)

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

随机推荐

  1. node.js中http.respone.end方法概述

    方法说明: 结束响应,告诉客户端所有消息已经发送.当所有要返回的内容发送完毕时,该函数必须被调用一次. 如果不调用该函数,客户端将永远处于等待状态. 语法: response.end([data], ...

  2. SSM整合搭建(二)

    本页来衔接上一页继续来搭建SSM,再提一下大家如果不详细可以再去看视频哦,B站就有 之后我们来配置SpringMVC的配置文件,主要是配置跳转的逻辑 先扫描所有的业务逻辑组件 我们要用SpringMV ...

  3. MacOS下的渗透测试工具

    信息收集工具 工具名称 安装命令 CeWL brew install sidaf/pentest/cewl dirb brew install sidaf/pentest/dirb dnsrecon ...

  4. Cookie SameSite属性介绍及其在ASP.NET项目中的应用

    一.Cookie SameSite属性介绍 就像大家已经知道的,一旦设置Cookie之后,在Cookie失效之前浏览器会一直将这个Cookie在后续所有的请求中都传回到Server端.我们的系统会利用 ...

  5. NASNet : Google Brain经典作,改造搜索空间,性能全面超越人工网络,继续领跑NAS领域 | CVPR 2018

    论文将搜索空间从整体网络转化为卷积单元(cell),再按照设定堆叠成新的网络家族NASNet.不仅降低了搜索的复杂度,从原来的28天缩小到4天,而且搜索出来的结构具有扩展性,在小模型和大模型场景下都能 ...

  6. FormDataBodyPart获取表单文件名乱码解决方法

    FormDataMultiPart formData=; FormDataBodyPart filePart=; filePart.getFormDataContentDisposition().ge ...

  7. Oracle数据库开机自启动的配置

    如果服务器断电重启或计划内重启,在服务器的操作系统启动后,需要手工启动数据库实例和监听,本文介绍如何把Oracle数据库的启动和关闭配置成系统服务,在操作系统启动/关闭时,自动启动/关闭Oracle实 ...

  8. OpenCV-Python Shi-tomas拐角检测器和益于跟踪的特征 | 三十八

    目标 在本章中, 我们将学习另一个拐角检测器:Shi-Tomasi拐角检测器 我们将看到以下函数:cv.goodFeaturesToTrack() 理论 在上一章中,我们看到了Harris Corne ...

  9. JAVA中,一个类中,方法加不加static的区别,

    通俗理解: 1.若是对象的特有行为,(也就是某个实例方法特有的行为),不加static 2. 若是对象集合共有的集合,则加static static类型方法只可以访问静态变量和方法 实例方法可以访问实 ...

  10. Django安装和使用

    Django安装 安装Django Python3在线安装Django pip3 install Django 验证是否安装成功,并查看当前版本 python -m django --version ...