Python使用matplotlib 画矩形的三种方式分析
作者:谢小帅 时间:2022-04-06 05:49:17
本文实例讲述了Python使用matplotlib 画矩形的三种方式。分享给大家供大家参考,具体如下:
假设矩形两点坐标如下,分别为:x1, y1, x2, y2
cat_dict['bbox'][i] = (min_row, min_col, max_row, max_col)
1. plt.plot(x,y)
这种方式画的矩形 因为边距的问题 会放缩
plt.plot([cat_dict['bbox'][i][1], cat_dict['bbox'][i][3], cat_dict['bbox'][i][3], cat_dict['bbox'][i][1], cat_dict['bbox'][i][1]], # col
[cat_dict['bbox'][i][0], cat_dict['bbox'][i][0], cat_dict['bbox'][i][2], cat_dict['bbox'][i][2], cat_dict['bbox'][i][0]], # row
color=[c / 255 for c in label_colors[cat_idx]], marker='.', ms=0)
2. ax.add_line(Line2D)
添加 4 条直线的方式,比较繁琐
from matplotlib.lines import Line2D
color = [c / 255 for c in label_colors[cat_idx]]
ax.add_line(Line2D([cat_dict['bbox'][i][1], cat_dict['bbox'][i][3]],
[cat_dict['bbox'][i][0], cat_dict['bbox'][i][0]],
linewidth=2,
color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][3], cat_dict['bbox'][i][3]],
[cat_dict['bbox'][i][0], cat_dict['bbox'][i][2]],
linewidth=2,
color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][3], cat_dict['bbox'][i][1]],
[cat_dict['bbox'][i][2], cat_dict['bbox'][i][2]],
linewidth=2,
color=color))
ax.add_line(Line2D([cat_dict['bbox'][i][1], cat_dict['bbox'][i][1]],
[cat_dict['bbox'][i][2], cat_dict['bbox'][i][0]],
linewidth=2,
color=color))
3. plt.gca().add_patch(plt.Rectangle())
最好的一种实现方式,fast rcnn 也是这么用的,传送门
plt.gca().add_patch(plt.Rectangle(xy=(cat_dict['bbox'][i][1], cat_dict['bbox'][i][0]),
width=cat_dict['bbox'][i][3] - cat_dict['bbox'][i][1],
height=cat_dict['bbox'][i][2] - cat_dict['bbox'][i][0],
edgecolor=[c / 255 for c in label_colors[cat_idx]],
fill=False, linewidth=2))
希望本文所述对大家Python程序设计有所帮助。
来源:https://www.jianshu.com/p/8d14238d402a
标签:Python,matplotlib,画矩形
0
投稿
猜你喜欢
MIME Type 引出的两难困境
2011-06-14 09:45:41
Css 清除浮动
2008-09-15 18:47:00
CSS浏览器兼容方案
2008-06-10 12:21:00
小白学Python之实现OCR识别
2022-02-12 20:35:48
随机提取N条记录方法
2007-10-11 18:04:00
python神经网络Batch Normalization底层原理详解
2021-01-28 12:50:08
如何定义记录集打开的游标类型?
2009-11-15 20:19:00
Oracle 用户权限管理方法
2009-08-15 10:54:00
Centos 安装 PHP7.4 和 Nginx的操作方法
2023-10-14 01:11:55
php 一维数组的循环遍历实现代码
2023-06-12 00:49:04
Django分页查询并返回jsons数据(中文乱码解决方法)
2022-12-02 22:44:20
python 实现Harris角点检测算法
2023-08-03 08:08:31
PHP的PDO事务与自动提交
2023-06-09 02:32:55
Python进行区间取值案例讲解
2021-10-23 15:17:34
有效网页表单的八条规则[译]
2009-06-01 10:29:00
基于循环神经网络(RNN)的古诗生成器
2023-04-29 13:28:06
5个款MySQL常用维护管理工具
2010-10-25 19:45:00
golang开发go包依赖管理godep使用教程
2023-10-16 04:09:31
ORACLE常见错误代码的分析与解决(一)
2010-08-02 13:20:00
解决Python安装后pip不能用的问题
2023-05-10 04:52:14