opencv入門2:使用opencv簡單畫圖

如opencv開發(fā)前的準(zhǔn)備工作中所說,此系列文章是在學(xué)習(xí)Practical Python and OpenCV(點(diǎn)擊下載)這本書的一些記錄,發(fā)出來的文章跳過了第三章對RGB,以及numpy簡單操作等介紹,請大家下載原書查看洒嗤,在原書中對一下段落已進(jìn)行翻譯注釋箫荡。文章系列完整展示代碼點(diǎn)擊下載

線和矩形

畫線drawing.py

importnumpyasnp

importcv2

canvas = np.zeros((300,300,3), dtype ="uint8")

#使用np.zeros方法構(gòu)造一個300,300渔隶,3通道的RGB的numpy array

#zeros方法用初始值為零填充數(shù)組中的每個元素羔挡。

#dtype 數(shù)據(jù)類型? 8進(jìn)制(

#Since we are representing our image as an RGB image with pixels in the range [0, 255],

#it’s important that we use an 8-bit unsigned integer, or uint8. There #are many

#other data types that we can use (common ones include 32-bit integers, and 32-bit

#or 64-bit floats), but we’ll mainly be using uint8 for the majority of the examples in this book)

green = (0,255,0)#定義一個表示綠色的BGR元組

cv2.line(canvas,(0,0),(300,300),green)

#line(canvas.point1,point2,color) 畫布洁奈,起點(diǎn),終點(diǎn)绞灼,顏色

cv2.imshow("Canvas", canvas)

cv2.waitKey(0)

red = (0,0,255)

cv2.line(canvas,(300,0),(0,300),red,3)

#line(canvas.point1,point2,color利术,thickness) 畫布,起點(diǎn)低矮,終點(diǎn)印叁,顏色,線條寬度pixels

cv2.imshow("Canvas",canvas)

cv2.waitKey(0)

運(yùn)行結(jié)果如下:

畫矩形drawing.py

cv2.rectangle(canvas,(10,10),(60,60),green)

#rectangle(canvas,point1,point2,color)畫布军掂,起點(diǎn)轮蜕,終點(diǎn),顏色

we are starting our rectangle at point (10,10)

We decide to end our rectangle at(60,60),

defining a region of50x50pixels

cv2.imshow("Canvas",canvas)

cv2.waitKey(0)

cv2.rectangle(canvas,(50,200),(200,225),red,5)

#rectangle(canvas,point1,point2,color,thickness) 畫布蝗锥,起點(diǎn)跃洛,終點(diǎn),顏色终议,線條寬度pixels

cv2.imshow("Canvas",canvas)

cv2.waitKey(0)

以上我們只繪制了一個矩形的輪廓汇竭,如何繪制一個填充滿的矩形?

我們只需要通過設(shè)置厚度參數(shù)為:-1痊剖,如下

填充矩形drawing.py

blue = (255,0,0)

cv2.rectangle(canvas,(200,50),(255,125),blue,-1)

cv2.imshow("Canvas",canvas)

cv2.waitKey(0)

運(yùn)行結(jié)果如下:


畫圓drawing.py

canvas = np.zeros((300,300,3),dtype ="uint8")

(centerX,centerY) = (canvas.shape[1] //2,canvas.shape[0] //2)

#圖像canvas的高度可以在canvas.shape [0]和canvas.shape [1]的寬度中找到韩玩。shape [2]為圖像channels

white = (255,255,255)

forrinrange(0,175,25):

# range(start, stop[, step])

# 參數(shù)說明:

# start: 計(jì)數(shù)從 start 開始。默認(rèn)是從 0 開始陆馁。例如range(5)等價(jià)于range(0找颓, 5);

# end: 計(jì)數(shù)到 end 結(jié)束,但不包括 end叮贩。例如:range(0击狮, 5) 是[0, 1, 2, 3, 4]沒有5

# step:步長,默認(rèn)為1益老。例如:range(0彪蓬, 5) 等價(jià)于 range(0, 5, 1)

? ? cv2.circle(canvas,(centerX,centerY),r,white)

# cv2.circle(canvas,(centerX,centerY),radius,color,thickness) 畫布,起點(diǎn)捺萌,終點(diǎn)档冬,顏色,線條寬度(為-1時填充整個圖像)

運(yùn)行結(jié)果如下:

畫一個半徑桃纯,中心點(diǎn)隨機(jī)的填充多圓圖

畫圓drawing.py

for i in range(0,25):

???? radius = np.random.randint(5, high =200)

???? #使用np.random.randint 生成一個5到200之間的隨機(jī)數(shù)

???? color = np.random.randint(0, high =256,size=(3,)).tolist()

???? pt = np.random.randint(0, high=300, size = (2,))

???? cv2.circle(canvas,tuple(pt),radius,color,-1)

cv2.imshow("Canvas",canvas)

cv2.waitKey(0)

運(yùn)行結(jié)果如下:


擴(kuò)展

numpy.random.randint(low, high=None, size=None, dtype='l')

Return random integers from low (inclusive) to high (exclusive).

Return random integers from the “discrete uniform” distribution of the specified dtype in the “half-open” interval [low, high). If high is None (the default), then results are from [0, low).

Parameters:

low : intLowest (signed) integer to be drawn from the distribution (unless high=None, in which case this parameter is one above the highest such integer).

high : int, optionalIf provided, one above the largest (signed) integer to be drawn from the distribution (see above for behavior if high=None).

size : int or tuple of ints, optionalOutput shape. If the given shape is, e.g., (m, n, k), then m?n?k samples are drawn. Default is None, in which case a single value is returned.

dtype : dtype, optionalDesired dtype of the result. All dtypes are determined by their name, i.e., ‘int64’, ‘int’, etc, so byteorder is not available and a specific precision may have different C types depending on the platform. The default value is ‘np.int’.New in version 1.11.0.

Returns:

out : int or ndarray of intssize-shaped array of random integers from the appropriate distribution, or a single such random int if size not provided.

更多文章請關(guān)注我的博客:https://harveyyeung.github.io

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酷誓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子态坦,更是在濱河造成了極大的恐慌盐数,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伞梯,死亡現(xiàn)場離奇詭異玫氢,居然都是意外死亡帚屉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門漾峡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攻旦,“玉大人,你說我怎么就攤上這事灰殴【刺兀” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵牺陶,是天一觀的道長。 經(jīng)常有香客問我辣之,道長掰伸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任怀估,我火速辦了婚禮狮鸭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘多搀。我一直安慰自己歧蕉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布康铭。 她就那樣靜靜地躺著惯退,像睡著了一般。 火紅的嫁衣襯著肌膚如雪从藤。 梳的紋絲不亂的頭發(fā)上催跪,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機(jī)與錄音夷野,去河邊找鬼懊蒸。 笑死,一個胖子當(dāng)著我的面吹牛悯搔,可吹牛的內(nèi)容都是我干的骑丸。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼妒貌,長吁一口氣:“原來是場噩夢啊……” “哼通危!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苏揣,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤黄鳍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后平匈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體框沟,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藏古,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忍燥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拧晕。...
    茶點(diǎn)故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梅垄,靈堂內(nèi)的尸體忽然破棺而出厂捞,到底是詐尸還是另有隱情,我是刑警寧澤队丝,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布靡馁,位于F島的核電站,受9級特大地震影響机久,放射性物質(zhì)發(fā)生泄漏臭墨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一膘盖、第九天 我趴在偏房一處隱蔽的房頂上張望胧弛。 院中可真熱鬧,春花似錦侠畔、人聲如沸结缚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽红竭。三九已至,卻和暖如春码党,著一層夾襖步出監(jiān)牢的瞬間德崭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工揖盘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眉厨,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓兽狭,卻偏偏與公主長得像憾股,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子箕慧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評論 2 361

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