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)檫吘嗟膯?wè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)文章
分享8?個(gè)常用pandas的?index設(shè)置
這篇文章主要介紹了分享8?個(gè)常用pandas的?index設(shè)置,pandas?中的?index?是行索引或行標(biāo)簽。行標(biāo)簽可以說(shuō)是?pandas?的靈魂一簽,支撐了?pandas?很多強(qiáng)大的業(yè)務(wù)功能,比如多個(gè)數(shù)據(jù)框的?join,?merge?操作,自動(dòng)對(duì)齊等,下面來(lái)看看文章得具體介紹吧2021-12-12python服務(wù)器與android客戶端socket通信實(shí)例
這篇文章主要介紹了python服務(wù)器與android客戶端socket通信的實(shí)現(xiàn)方法,實(shí)例形式詳細(xì)講述了Python的服務(wù)器端實(shí)現(xiàn)原理與方法,以及對(duì)應(yīng)的Android客戶端實(shí)現(xiàn)方法,需要的朋友可以參考下2014-11-11基礎(chǔ)語(yǔ)音識(shí)別-食物語(yǔ)音識(shí)別baseline(CNN)
這篇文章主要介紹了一個(gè)基礎(chǔ)語(yǔ)音識(shí)別題目-食物語(yǔ)音識(shí)別baseline(CNN),代碼詳細(xì)嗎,對(duì)于想要學(xué)習(xí)語(yǔ)音識(shí)別的朋友可以參考下2021-04-04Python PyMuPDF實(shí)現(xiàn)PDF與圖片和PPT相互轉(zhuǎn)換
能夠用來(lái)對(duì)PDF文檔進(jìn)行操作的Python包有好幾個(gè),如提取內(nèi)容的PdfPlumber、PDFMiner,可以用來(lái)對(duì)PDF文件進(jìn)行修改操作的PyPDF2等等,如果只是需要簡(jiǎn)單地對(duì)PDF文件實(shí)現(xiàn)合并、拆分、書簽操作,使用PyPDF2就足以滿足。但如果想對(duì)PDF文件進(jìn)行一些底層操作,基本上只有PyMuPDF了2022-12-12python讀取并定位excel數(shù)據(jù)坐標(biāo)系詳解
這篇文章主要介紹了python讀取并定位excel數(shù)據(jù)坐標(biāo)系詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06Pandas數(shù)據(jù)分析-pandas數(shù)據(jù)框的多層索引
這篇文章主要介紹了Pandas數(shù)據(jù)分析-pandas數(shù)據(jù)框的多層索引,pandas數(shù)據(jù)框針對(duì)高維數(shù)據(jù),也有多層索引的辦法去應(yīng)對(duì)具體詳細(xì)的內(nèi)容介紹需要的小伙伴可以參考一下2022-08-08Python爬蟲(chóng)之App爬蟲(chóng)視頻下載的實(shí)現(xiàn)
這篇文章主要介紹了Python爬蟲(chóng)之App爬蟲(chóng)視頻下載的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Pandas?DataFrame.drop()刪除數(shù)據(jù)的方法實(shí)例
pandas作為數(shù)據(jù)分析強(qiáng)大的庫(kù),是基于numpy數(shù)組構(gòu)建的,專門用來(lái)處理表格和混雜的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame.drop()刪除數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-07-07