matplotlib BboxBase类
2020-04-07 17:24:12 --Edit by yangray
BboxBase 是 TransformNode 的子类, 同时它是所有 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类的更多相关文章
- matplotlib Bbox类
Bbox 类是一个可变的(相对于BboxBase)限位框, 继承自BboxBase 2020-04-07 22:54:57 --Edit by yangray 方法: __init__(points ...
- matplotlib TransformNode类
TransformNode 是所有参与变换的类和所有需要无效自己或祖先的类的基类 方法: __init__(shorthand_name=None): 参数 [shorthand_name]: 别名 ...
- Matplotlib Tutorial(译)
Matplotlib Tutorial(译) 翻译自:Matplotlib tutorialNicolas P. Rougier - Euroscipy 2012 toc{: toc} 这个教程基于可 ...
- matplotlib的annotate用法小结
这个是matplotlib自定义的annotate方法的文本: 一. def annotate(self, s, xy, *args, **kwargs): a = mtext.Annotation( ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- windows7 安装TensorFlow
Win7 TensorFlow安装步骤: 1.安装python,参考http://www.zhimengzhe.com/windows/283058.html#0-tsina-1-12530-3972 ...
- matplotlib类
1.plt.subplot 在matplotlib下,一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制,其调用形式如下:subplot(numRows, numCo ...
- matplotlib 中其他基于Affine2DBase的类
2020-04-11 11:42:22 --Edit by yangray以下所有类(除了BboxTransformToMaxOnly )都直接继承于Affine2DBaseIdentityTrans ...
- 【Matplotlib】详解图像各个部分
首先一幅Matplotlib的图像组成部分介绍. 在matplotlib中,整个图像为一个Figure对象.在Figure对象中可以包含一个或者多个Axes对象.每个Axes(ax)对象都是一个拥有自 ...
随机推荐
- 建议14:灵活使用Arguments
Javascript支持Arguments机制.Arguments是一个为数组,可以通过数组下标形式获取该集合中传递给函数的参数值.例如:下面函数中,没有指定形参,但在函数体内通过Arguments对 ...
- Java第一节课动手动脑
在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...
- Gitblit无法查看单个文件解决方案
一个简单的解决方案是在reference.properties中设置: web.mountParameters = false 在这种情况下,您完全避免了该问题,因为项目名称,分支和文件名作为查询字符 ...
- LeetCode42题,单调栈、构造法、two pointers,这道Hard题的解法这么多?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第23篇文章. 今天来看一道很有意思的题,它的难度是Hard,并且有许多种解法. 首先我们来看题面,说是我们有若 ...
- JDBC怎么连接数据库
1:注册驱动:class.forName("com.mysql.jdbc.Driver"); 2:连接数据库:DriverManager.getConnection(url , u ...
- 强化学习之五:基于模型的强化学习(Model-based RL)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- C++实现秒表
完整代码下载 思路概括:如果有键按下,判断按下的是什么键并处理.没有键按下,计时.传统的Sleep无法满足秒表精确到百毫秒的需求,这里使用更精确的clock,clock的作用是统计从程序开始运行到现在 ...
- OpenCV-Python 读取显示图像 | 五
目标 在这里,你将学习如何读取图像,如何显示图像以及如何将其保存回去 你将学习以下功能:cv.imread(),cv.imshow(),cv.imwrite() (可选)你将学习如何使用Matplot ...
- 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...
- Git入门操作(一)
最近真正用到了Git,感觉还是需要好好整理一下最最基础用法,与萌新共享.^_^ 关于Git的基础介绍,这里不再赘述,下面撸代码了(主要是命令行的操作,属于linux操作系统的,可能没听过,但记住就好了 ...