Open cv——繪圖操作(橢圓與多邊形,Linestyle)

cv2.line(),cv2.rectangle(),cv2.circle(),cv2.ellipse(),cv2.polylines()

目標(biāo)

·學(xué)會使用open cv繪制幾何形狀學(xué)會使用函數(shù)

·cv2.line()动漾,cv2.circle()赤套,cv2.rectangle渠脉,cv2.ellipse()等代碼在以上的所有函數(shù)中存皂,你將會看到一些相同的參數(shù):

·img:就是繪制的形狀所在的圖像

·color:就是繪制形狀所用的顏色,對于BGR通道程奠,傳遞一個元組(B,G,R)败京。對于灰度圖。只要傳遞一個灰度值

·thickness:線條或者圓圈的厚度梦染。如果封閉的圖形并且該值是-1的話赡麦,形狀的內(nèi)部會被填充。default thickness=1

·lineType:線條的形狀帕识,八連通直線泛粹,反走樣直線(比像素點直線平滑)等。默認(rèn)值是八連通直線肮疗,cv2.LINE_AA給出的是反走樣直線晶姊,因為反走樣直線的算法,使得它不是單純使用像素值繪制伪货,因而顯得平滑们衙。有兩篇文章解答了我對八連接直線和反走樣直線的問題:

https://blog.csdn.net/jssyy123/article/details/42007565(反走樣直線)

https://blog.csdn.net/Young__Fan/article/details/82696276(八連通直線)

繪制直線

給定初始和結(jié)尾的坐標(biāo)值。

import numpy as np

import cv2


img = np.zeros((512,512,3), np.uint8)

#img為一個純黑色的背景

img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

畫一個矩形

給出左上角和右下角的坐標(biāo)值碱呼。

img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

畫圓

圓心坐標(biāo)和半徑

img = cv2.circle(img,(447,63), 63, (0,0,255), -1)

畫橢圓

要繪制一個橢圓蒙挑,我們需要傳遞幾個參數(shù),一個是橢圓的中心點坐標(biāo)愚臀。下一個是軸長度(第一主軸和第二主軸)忆蚀,angle是繪制橢圓的完整程度,從startangle開始逆時針旋轉(zhuǎn)到endangle。例如給startangle賦值0馋袜,endangle賦值360就是一整個橢圓男旗。下面是函數(shù)的參數(shù):

def ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None). ?

·?? @param img Image.???

. ??@param center Center of the ellipse.???

. ??@param axes Half of the size of the ellipse main axes.???

. ??@param angle Ellipse rotation angle in degrees.???

. ??@param startAngle Starting angle of the elliptic arc in degrees.

. ??@param endAngle Ending angle of the elliptic arc in degrees.???

. ??@param color Ellipse color.???

. ??@param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that????. ??a filled ellipse sector is to be drawn.???

. ??@param lineType Type of the ellipse boundary. See #LineTypes

. ??@param shift Number of fractional bits in the coordinates of the center and values of axes.

分別是:第一個是中心點的坐標(biāo),一個元組欣鳖;第二個兩條半主軸的長度察皇,也就是橢圓方程里面的長半軸與短半軸,也是一個元組泽台。第三個是橢圓相對于水平旋轉(zhuǎn)的角度让网,逆時針方向旋轉(zhuǎn)。第四個參數(shù)和第五個參數(shù)一起使用师痕,第四個參數(shù)是橢圓開始的角度(與水平的夾角),第五個是橢圓結(jié)束的角度(與水平的角度)而账。兩個參數(shù)表示了能顯示的橢圓的部分胰坟;比如0,180代表顯示一半的橢圓,因為整個橢圓的角度是360泞辐。第六個是線條的顏色笔横,可以是長為三的元組,代表BGR顏色咐吼,也可以是一個數(shù)字吹缔,代表顏色的深度(在這個數(shù)字為255的時候是純藍(lán)色,為0的時候是黑色)锯茄。第七個參數(shù)是線條的寬度厢塘,如果是負(fù)數(shù)就代表要完全填充所畫的圖形。第八個參數(shù)是線條類型肌幽,有八連通線條晚碾,反走樣線條(其他的我就不知道了)。第九個是浮點數(shù)的精度喂急,就是中心點的坐標(biāo)和主軸長度的精度格嘁。

繪制多邊形

首先要全部給出點的坐標(biāo),但是這些點的坐標(biāo)又必須轉(zhuǎn)化為一個RAWSx1x2的數(shù)組廊移,也就是行數(shù)可以改變糕簿,但是其他兩個維度必須是1和2的三維數(shù)組,并且是numpy中的有符號的32位數(shù)狡孔。

def polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)

. ??@param img Image.???

. ??@param pts Array of polygonal curves.???

. ??@param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,???

. ??the function draws a line from the last vertex of each curve to its first vertex.???

. ??@param color Polyline color.???

. ??@param thickness Thickness of the polyline edges.???

. ??@param lineType Type of the line segments. See #LineTypes???

. ??@param shift Number of fractional bits in the vertex coordinates.



pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)

pts = pts.reshape((-1,1,2))

#因為數(shù)組的轉(zhuǎn)化是相對應(yīng)的懂诗,元素的個數(shù)不會減少,因此使用-1來代表第一個維度是不確定的苗膝,numpy會自動計算一維的值

img = cv2.polylines(img,[pts],True,(0,255,255))

畫多邊形除了注意坐標(biāo)點轉(zhuǎn)化為一個三維矩陣之外還需要注意個布爾參數(shù)i是isClosed响禽。決定了多邊形是否閉合

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芋类,更是在濱河造成了極大的恐慌隆嗅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侯繁,死亡現(xiàn)場離奇詭異胖喳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贮竟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門丽焊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咕别,你說我怎么就攤上這事技健。” “怎么了惰拱?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵雌贱,是天一觀的道長。 經(jīng)常有香客問我偿短,道長欣孤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任昔逗,我火速辦了婚禮降传,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勾怒。我一直安慰自己婆排,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布笔链。 她就那樣靜靜地躺著泽论,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卡乾。 梳的紋絲不亂的頭發(fā)上翼悴,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機(jī)與錄音幔妨,去河邊找鬼鹦赎。 笑死,一個胖子當(dāng)著我的面吹牛误堡,可吹牛的內(nèi)容都是我干的古话。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼锁施,長吁一口氣:“原來是場噩夢啊……” “哼陪踩!你這毒婦竟也來了杖们?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肩狂,失蹤者是張志新(化名)和其女友劉穎摘完,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傻谁,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡孝治,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了审磁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谈飒。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖态蒂,靈堂內(nèi)的尸體忽然破棺而出杭措,到底是詐尸還是另有隱情,我是刑警寧澤钾恢,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布手素,位于F島的核電站,受9級特大地震影響赘那,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氯质,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一募舟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闻察,春花似錦拱礁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钉嘹,卻和暖如春鸯乃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跋涣。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工缨睡, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陈辱。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓奖年,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沛贪。 傳聞我的和親對象是個殘疾皇子陋守,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容