Python使用matplotlib 畫矩形的三種方式分析
本文實(shí)例講述了Python使用matplotlib 畫矩形的三種方式。分享給大家供大家參考,具體如下:
假設(shè)矩形兩點(diǎn)坐標(biāo)如下,分別為:x1, y1, x2, y2
cat_dict['bbox'][i] = (min_row, min_col, max_row, max_col)
1. plt.plot(x,y)
這種方式畫的矩形 因?yàn)檫吘嗟膯栴} 會(huì)放縮
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())
最好的一種實(shí)現(xiàn)方式,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))

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python?包之?multiprocessing?多進(jìn)程
這篇文章主要介紹了python?包之?multiprocessing?多進(jìn)程,首先創(chuàng)建一個(gè)進(jìn)程。實(shí)例化?Process?類創(chuàng)建一個(gè)進(jìn)程對(duì)象、然后調(diào)用它的?start?方法即可生成一個(gè)子進(jìn)程,下文更多相關(guān)資料,需要的朋友可以參考一下2022-04-04
python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例
這篇文章主要介紹了python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python區(qū)塊鏈基本原型簡(jiǎn)版實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python區(qū)塊鏈基本原型簡(jiǎn)版實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python tkinter Entry控件的焦點(diǎn)移動(dòng)操作
這篇文章主要介紹了python tkinter Entry控件的焦點(diǎn)移動(dòng)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
django為Form生成的label標(biāo)簽添加class方式
這篇文章主要介紹了django為Form生成的label標(biāo)簽添加class方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
PyQt5通過信號(hào)實(shí)現(xiàn)MVC的示例
這篇文章主要介紹了PyQt5通過信號(hào)實(shí)現(xiàn)MVC的示例,幫助大家更好的理解和使用pyqt5,感興趣的朋友可以了解下2021-02-02

