python opencv minAreaRect 生成最小外接矩形的方法
使用python opencv返回點(diǎn)集cnt的最小外接矩形,所用函數(shù)為 cv2.minAreaRect(cnt) ,cnt是點(diǎn)集數(shù)組或向量(里面存放的是點(diǎn)的坐標(biāo)),并且這個(gè)點(diǎn)集不定個(gè)數(shù)。
舉例說(shuō)明:畫(huà)一個(gè)任意四邊形(任意多邊形都可以)的最小外接矩形,那么點(diǎn)集 cnt 存放的就是該四邊形的4個(gè)頂點(diǎn)坐標(biāo)(點(diǎn)集里面有4個(gè)點(diǎn))
cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) # 必須是array數(shù)組的形式 rect = cv2.minAreaRect(cnt) # 得到最小外接矩形的(中心(x,y), (寬,高), 旋轉(zhuǎn)角度) box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x 獲取最小外接矩形的4個(gè)頂點(diǎn)坐標(biāo) box = np.int0(box)
函數(shù) cv2.minAreaRect() 返回一個(gè)Box2D結(jié)構(gòu)rect:(最小外接矩形的中心(x,y),(寬度,高度),旋轉(zhuǎn)角度),但是要繪制這個(gè)矩形,我們需要矩形的4個(gè)頂點(diǎn)坐標(biāo)box, 通過(guò)函數(shù) cv2.cv.BoxPoints() 獲得,返回形式[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ]。得到的最小外接矩形的4個(gè)頂點(diǎn)順序、中心坐標(biāo)、寬度、高度、旋轉(zhuǎn)角度(是度數(shù)形式,不是弧度數(shù))的對(duì)應(yīng)關(guān)系如下:
注意:
- 旋轉(zhuǎn)角度θ是水平軸(x軸)逆時(shí)針旋轉(zhuǎn),與碰到的矩形的第一條邊的夾角。并且這個(gè)邊的邊長(zhǎng)是width,另一條邊邊長(zhǎng)是height。也就是說(shuō),在這里,width與height不是按照長(zhǎng)短來(lái)定義的。
- 在opencv中,坐標(biāo)系原點(diǎn)在左上角,相對(duì)于x軸,逆時(shí)針旋轉(zhuǎn)角度為負(fù),順時(shí)針旋轉(zhuǎn)角度為正。所以,θ∈(-90度,0]。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python找出一個(gè)列表中相同元素的多個(gè)索引實(shí)例
今天小編就為大家分享一篇python找出一個(gè)列表中相同元素的多個(gè)索引實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06web.py 十分鐘創(chuàng)建簡(jiǎn)易博客實(shí)現(xiàn)代碼
web.py是一款輕量級(jí)的Python web開(kāi)發(fā)框架,簡(jiǎn)單、高效、學(xué)習(xí)成本低,特別適合作為python web開(kāi)發(fā)的入門(mén)框架2016-04-04PyQt5基本控件使用詳解:單選按鈕、復(fù)選框、下拉框
這篇文章主要介紹了PyQt5基本控件使用:單選按鈕、復(fù)選框、下拉框,本文中的內(nèi)容和實(shí)例也基本回答了開(kāi)篇提到的問(wèn)題。需要的朋友可以參考下2019-08-08numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack
numpy庫(kù)是一個(gè)高效處理多維數(shù)組的工具,可以在進(jìn)行邊寫(xiě)的數(shù)組計(jì)算上進(jìn)行一系列的操作,下面這篇文章主要給大家介紹了關(guān)于numpy中數(shù)組拼接、數(shù)組合并方法(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)的相關(guān)資料,需要的朋友可以參考下2022-08-08跟老齊學(xué)Python之賦值,簡(jiǎn)單也不簡(jiǎn)單
在《初識(shí)永遠(yuǎn)強(qiáng)大的函數(shù)》一文中,有一節(jié)專(zhuān)門(mén)討論“取名字的學(xué)問(wèn)”,就是有關(guān)變量名稱(chēng)的問(wèn)題,本溫故而知新的原則,這里要復(fù)習(xí)一下2014-09-09tensorflow 獲取checkpoint中的變量列表實(shí)例
今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02一文詳解Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合
這篇文章主要為大家介紹了Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Python開(kāi)發(fā)最牛逼的IDE——pycharm
這篇文章給大家介紹了Python開(kāi)發(fā)最牛逼的IDE——pycharm,主要是介紹python IDE pycharm的安裝與使用教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08