opencv基本的圖像操作

參考o(jì)pencv官方文檔OpenCV: Basic Operations on Images

加載圖像捌臊,常用的方式是imread()函數(shù)深浮,這個函數(shù)會返回一幅圖像,而這個圖像是一個數(shù)組,會根據(jù)imread()輸入?yún)?shù)的不同,可能是一個三維數(shù)組或者二維數(shù)組码秉。

numpy是經(jīng)過優(yōu)化了的進(jìn)行快速矩陣運(yùn)算的包,其中numpy.array結(jié)構(gòu)針對數(shù)組操作有很好的優(yōu)化鸡号,它可以允許bulk(塊)操作转砖,這些操作經(jīng)常會在圖像的處理上用到。

1.獲取像素并修改像素

import cv2

import numpy

img = cv2.imread('MY_PIC.jpg')

px=img[100,100]

print(px)

blue = img[100,100,0]

print(blue)

img[101,101]=[255,255,255]

print(img[101,101])

numpy是經(jīng)過優(yōu)化了的進(jìn)行快速矩陣運(yùn)算的包鲸伴,所以不推薦逐個獲取像素值并修改能矩陣運(yùn)算就不要用循環(huán)府蔗。例如前5行的后3列,用numpy的array.item()和array.itemset()會更好挑围。但是返回是標(biāo)量礁竞,如果想獲得所有RGB的值糖荒,需要使用array.item()分割.

print(img.item(10,10,2))

img.itemset((10,10,2),100)

print(img.item(10,10,2))

2.獲取圖像屬性

img.shape 獲得圖像的形狀杉辙,返回值是一個包含行數(shù),列數(shù)捶朵,通道數(shù)的元組

img.size可以返回圖像的像素數(shù)目

?img.dtype返回圖像的數(shù)據(jù)類型蜘矢,在debug時很重要,因?yàn)镺penCV-Python代碼中經(jīng)常出現(xiàn)數(shù)據(jù)類型的不一致

3.對圖像的特定區(qū)域操作综看。ROI是使用numpy索引來獲得的

例:選擇球的部分并拷貝到其他區(qū)域


ball = img[280:340, 330:390]

img[40:40,50:50]=ball

4.拆分及合并圖像通道

有時需要拆分BGR為單個通道品腹,對BGR三個通道分別操作。有時需要把獨(dú)立的通道的圖片合成一個BGR红碑。

b,g,r = cv2.split(img)

img = cv2.merge((b,g,r))

?#拆分b通道

b = img[:,:,0]

# 假如想使所有紅色通道值都為0舞吭,不必拆分再賦值,可以使用numpy索引析珊,這樣更快

img[:,:,2]=0

PS:cv2.split()是比較耗時的操作羡鸥,能用numpy就盡量使用。

5.為圖像擴(kuò)邊(填充)

想為圖像周圍建一個邊可以使用cv2.copyMakeBorder()函數(shù)忠寻。這經(jīng)常在卷積運(yùn)算或0填充時被用到惧浴。具體參數(shù)如下:

5.1 src輸入圖像

5.2 top,bottom,left,right對應(yīng)邊界的像素數(shù)目

5.3 borderType要添加哪種類型的邊界:

5.3.1 cv2.BORDER_CONSTANT添加有顏色的常數(shù)值邊界,還需要下一個參數(shù)(value:邊界顏色)

5.3.2 cv2.BORDER_REFLIECT邊界元素的鏡像奕剃。例如:fedcba | abcdefgh | hgfedcb

5.3.3 cv2.BORDER_101或者cv2.BORDER_DEFAULT跟上面一樣衷旅,但稍作改動捐腿,例如:gfedcb | abcdefgh | gfedcba

5.3.4 cv2.BORDER_REPLICATE復(fù)后一個元素。例如: aaaaaa| abcdefgh|hhhhhhh

5.3.5 cv2.BORDER_WRAP 就像這樣: cdefgh| abcdefgh|abcdefg


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


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柿顶,一起剝皮案震驚了整個濱河市茄袖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘁锯,老刑警劉巖绞佩,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猪钮,居然都是意外死亡品山,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門烤低,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肘交,“玉大人,你說我怎么就攤上這事扑馁⊙纳耄” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵腻要,是天一觀的道長复罐。 經(jīng)常有香客問我,道長雄家,這世上最難降的妖魔是什么效诅? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮趟济,結(jié)果婚禮上乱投,老公的妹妹穿的比我還像新娘。我一直安慰自己顷编,他們只是感情好戚炫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著媳纬,像睡著了一般双肤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钮惠,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天茅糜,我揣著相機(jī)與錄音,去河邊找鬼萌腿。 笑死限匣,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播米死,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锌历,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了峦筒?” 一聲冷哼從身側(cè)響起究西,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎物喷,沒想到半個月后卤材,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峦失,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年扇丛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尉辑。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡帆精,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隧魄,到底是詐尸還是另有隱情卓练,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布购啄,位于F島的核電站襟企,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏狮含。R本人自食惡果不足惜顽悼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辉川。 院中可真熱鬧表蝙,春花似錦拴测、人聲如沸乓旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿愚。三九已至,卻和暖如春务荆,著一層夾襖步出監(jiān)牢的瞬間妆距,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工函匕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娱据,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓盅惜,卻偏偏與公主長得像中剩,于是被迫代替她去往敵國和親忌穿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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