Python使用matplotlib 画矩形的三种方式分析
作者:谢小帅 发布时间:2022-04-06 05:49:17
标签:Python,matplotlib,画矩形
本文实例讲述了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
0
投稿
猜你喜欢
- 介绍 append()语法list.append( element )参数element:任何类型的元素列表「末尾」添加元素nam
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 分水岭算法概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- Selenium简介与安装 Selenium是什么? Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏
- 以一个toggle按钮控制p元素显隐为例,如果不使用过渡效果,则如下所示<div id="demo"> &l
- 需求背景假设我们想设计一个定时任务,比如每天定时的用python来测试服务是否在正常运行,但是又不希望每天登录到系统后台去查看服务状态。这里
- 1.在Qt Designer中设计两个简单窗口2.将.ui文件转换成.py文件3.新建**.py文件#-*- coding:utf-8 -*
- 一·逻辑运算符优先级:not>and>or符号名称描述and逻辑与运算当and的两边同时满足条件时,结果为
- 本文实例讲述了js选项卡的实现方法。分享给大家供大家参考。具体分析如下:一、思路1. 获取元素;2. for循环按钮元素添加onclick(
- eclare @str nvarchar(50);set @str='462,464,2';select @str as &
- 今天发现有一个备份的mysql数据文件夹异常变大,一查发现是多了三个文件:ibdata1 ib_logfile0 ib_logfile1,前
- 前言文章抄袭在互联网中普遍存在,很多博主都收受其烦。近几年随着互联网的发展,抄袭等不道德行为在互联网上愈演愈烈,甚至复制、黏贴后发布标原创屡
- 第一种情况是返回的游标是某个具体的表或视图的数据,如:SQL-Code:CREATE OR REPLACE P
- PyMongo是什么PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成.安装环境
- 在介绍Python的self用法之前,先来介绍下Python中的类和实例……我们知道,面向对象最
- django的表单系统,分2种基于django.forms.Form的所有表单类的父类基于django.forms.ModelForm,可以
- 本文实例讲述了python操作mongodb根据_id查询数据的实现方法。分享给大家供大家参考。具体分析如下:_id是mongodb自动生成
- 限定范围拖拽目录代码实例与简易拖拽的差异下载源码链接 代码实例* { padding: 0; margin: 0;}#box1 {
- 1. 相对与比较老的环境,建议使用第二个 set dbconnection=Server.CREATEOBJECT("ADODB.
- 对于React,Vue构建的单页面应用老说,SEO是一个众所周知的问题。服务端渲染(SSR-server Side Render)是目前看来
- 我的长博文不少,比较影响阅读体验,有必要添加一个文章目录功能。相比 Wordpress, Typecho 的插件就比较少了。我想找一个像掘金