Python使用matplotlib 画矩形的三种方式分析

时间:2021-05-22

本文实例讲述了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 Line2Dcolor = [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相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章