2020-04-07 17:24:12  --Edit by yangray

BboxBaseTransformNode 的子类, 同时它是所有 bounding box(平行四边形限位框) 的基类,提供 ‘只读’ 的访问, 常规的是以两个点(无顺序约束)表示,此类提供方便的

上 下 左 右边,宽 高 和 顶点坐标之间的转换方法。

方法:

  • frozon():  

    返回静态的本Bbox对象的拷贝, 不会随子变换改变而改变

  • is_unit():

    若Bbox是单位Bbox (由[(0,0), (1, 1)]初始化, 即长宽都是1, 左下角在原点),则返回True,反之为False

@property: 此后的方法由property装饰,且无property.setter(意为该属性只可读,不能改)

  • x0(), y0(), x1(), y1(), p0(), p1():

    返回初始化参数中的 x0, y0, x1, y1, (x0, y0), (x1, y1) (不保证x0<x1, y0<y1)

  • xmin(), ymin(), xmax(), ymax(), min(), max()

    返回Bbox的 左,下, 右,上边,左下, 右上点。 其中左下点横纵坐标保证<右上角.

  • intervalx(), intervaly():

    返回(x0, x1), (y0, y1)(不保证x0<x1, y0<y1)

  • width(), height(), size():

    返回Bbox的宽, 高, (宽, 高)。(注意: 若x1<x0, y1<y0, 宽高将为负数)

  • bounds():

    返回(x0, y0, width, height)。(width, height可能为负数)

  • extents():

    返回(x0, x1, y0, y1)

@property修饰器到此为止

  • get_points():

    抽象方法。(子类必需继承该方法)

  • containsx(x), containsy(y), contains(x, y):

    返回边x, y,点(x, y) 是否在(x0, x1) ,(y0, y1),((x0, x1) ,(y0, y1))区间内, 在内为True, 反之为False

  • overlaps(other), fully_overlaps(other):

    返回当前bbox与[other]:其他bbox实例 是否重叠(边重叠算重叠) / 完全重叠(边重叠不算),重叠为True, 不重为False

  • fully_containsx(x), fully_containsy(y), fully_contains(x, y):

    返回 边x, y, 点 (x, y) 是否在(x0, x1)/ (y0, y1)/ ((x0, x1), (y0, y1)) 的开区间内(在边上不算),在内为True, 在外为False

  • transformed(transform), inverse_transformed(trans):

    返回一个由指定变换[transform]做静态变化 /( 再得反转) 之后的bbox 。(变换有尺度,位置,旋转,反转等变化)

  • anchord(c, container=None):

    参数 [c]: 锚点, 可以是 大写的方位首字母,'C'(中)、'S'(南)、'E'(东)、'NW'(西北)等,也可以是形如(0.2, 0.4)的元组(0为最左/下, 1为最右/上)       [container]: Bbox实例,锚定的目标容器 ,默认为None(即自身)

    返回以[c]指定的锚点为左下角, 移动bbox。

  • shrunk(mx, my),shrunk_to_aspect(box_aspect, container=None, fig_aspect=1.0):

    shrunk()

      参数 [mx], [my]: 浮点数, 通常取值为 0~1

      返回按mx,my缩小宽高后的Bbox

    shrunk_to_aspect()

      参数 [box_aspect]: 宽高比,[container]: 容器figure, 默认为None(自身)

      [fig_aspect]: 默认容器figure纵横比(若bbox坐标为相对的, 将容器figure宽高用fig_aspect约束,使box_aspect工作在一个绝对的维度下)

      收缩至可维持宽高比(box_aspect)的最大值

  • splitx(*args), splity(*args):

    参数 [*args]: 由0~1之间的浮点数组成的元组, 0为左或下, 1为右或上

    返回 按*args指定的位置横向 / 纵向切割成的Bbox的列表

  • count_contains(vertices), count_overlaps(bboxes):

    count_contains():     

  参数 [vertices]: 点集, Nx2 numpy数组, Ex: [(1, 2), (2, 5), (6, 2)]

      返回vertices中包含在本Bbox中的顶点的个数

    count_overlaps():

     参数[bboxes]: Bbox集, Bbox实例数组,

     返回bboxes中和本bbox重叠的bbox数量

  • expanded(sw, sh):

    参数 [sw], [sh]: 扩展比例

    返回以本Bbox将宽、高伸长至sw*width, sh*height(中心点不动)后的新Bbox

  • padded(p):

    参数[p]: 垫起的厚度

    返回本bbox将四边都垫厚p之后的新bbox

  • translated(tx, ty):

    参数[tx], [ty]:含义未知

     返回本bbox由tx, ty 静态地转换后的新Bbox

  • corners():

    返回四个角的坐标的列表, 按左下、左上, 右下, 右上的顺序

  • rotate(radians):

    [radians]: 返回本bbox顺时针旋转弧度(raidans)后的新bbox(中心不动)。

@staticmethod: 静态方法(不接受默认传递的self指针参数,不传递建议以类调用,不从实例调用)

  • union(bboxes), intersection(bbox1, bbox2):

    参数 [bboxes]为bbox集, [bbox1]和[bbox2]为单个bbox

    返回bboxes的交集(包含所有bboxes中bbox的大bbox)/ bbox1和bbox2的交集

matplotlib BboxBase类的更多相关文章

  1. matplotlib Bbox类

    Bbox 类是一个可变的(相对于BboxBase)限位框, 继承自BboxBase 2020-04-07 22:54:57  --Edit by yangray 方法: __init__(points ...

  2. matplotlib TransformNode类

    TransformNode 是所有参与变换的类和所有需要无效自己或祖先的类的基类 方法: __init__(shorthand_name=None): 参数 [shorthand_name]: 别名 ...

  3. Matplotlib Tutorial(译)

    Matplotlib Tutorial(译) 翻译自:Matplotlib tutorialNicolas P. Rougier - Euroscipy 2012 toc{: toc} 这个教程基于可 ...

  4. matplotlib的annotate用法小结

    这个是matplotlib自定义的annotate方法的文本: 一. def annotate(self, s, xy, *args, **kwargs): a = mtext.Annotation( ...

  5. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  6. windows7 安装TensorFlow

    Win7 TensorFlow安装步骤: 1.安装python,参考http://www.zhimengzhe.com/windows/283058.html#0-tsina-1-12530-3972 ...

  7. matplotlib类

    1.plt.subplot 在matplotlib下,一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制,其调用形式如下:subplot(numRows, numCo ...

  8. matplotlib 中其他基于Affine2DBase的类

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

  9. 【Matplotlib】详解图像各个部分

    首先一幅Matplotlib的图像组成部分介绍. 在matplotlib中,整个图像为一个Figure对象.在Figure对象中可以包含一个或者多个Axes对象.每个Axes(ax)对象都是一个拥有自 ...

随机推荐

  1. javaScript 基础知识汇总(七)

    1.数组 特点:数组是可以存储有序集合的对象. 声明: let arr = new Array();   let arr=[]; 大多数情况下我们使用第二种. let fruits = [" ...

  2. 机器学习实战 [Machine learning in action]

    内容简介 机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存.谋发展的决定性手段,这使得这一过去为分析师和数学家所专属 ...

  3. java web 中base64传输的坑

    今天在项目中,前端需要向后端发送一张图片,使用toDataURL方法以base64编码的形式传输,在写好程序后,发现报错为base64不是有效的图片,反复排查后发现接口需要一张格式为png的图片,在前 ...

  4. 2019.3.14解题报告&补题报告

    A题 题意: 输入r, c,代表r*c的矩阵,接下来一行,是r个数,代表每一行里最大的数:接下来一行,是c个数,代表每一列中的最大数.求所给数据是否冲突. 思路:判断r个数中最大数maxr和c个数中最 ...

  5. [剑指offer]6.从尾到头打印链表+18.删除链表节点

    链表 6.从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 方法一 迭代 创建空列表res,将链表值head.val依次存进res,返回翻转后的res 代码 cl ...

  6. datetime和time

    datetime和time 1.datetime模块 import datetimenow = datetime.datetime.now() #时间对象print(now,type(now))pri ...

  7. win7系统下的Nodejs开发环境配置

    此处不推荐使用msi安装包直接安装nodejs,我们应该知道它里面做了哪些事情,这样以后出问题的时候,可以更快速地定位问题点.另一方面,直接安装的情况,以后更新了版本的话会很麻烦,因为如果我们想体验新 ...

  8. Oracle设置和修改system和scott的口令,并且如何连接到system和scott模式下

    1.在Oracle数据库中,有个示例模式scott和系统模式system. 2.在安装数据库时只是设置了system的口令,即密码,如果忘记的话可以使用如下办法,首先打开sqlplus工具或者cmd命 ...

  9. drf 简介以及部分源码分析

    目录 复习 drf框架 全称:django-rest framework 知识点 接口 restful接口规范 基于restful规范的原生Django接口 主路由:url.py api组件的子路由: ...

  10. NodeMCU入坑指南-烧写固件并连接WIFI

    写在前面 今天入手了一个NodeMCU的板子,准备学习一下物联网相关的知识.不过由于博主学艺不精,在第一步烧写固件上就踩坑了,所以就想着把自己的踩坑经历写出来分享给大家,希望能有一些帮助~ 材料准备 ...