OpenCV-Python教程:18.圖像輪廓

什么是輪廓蹂空?

輪廓可以被簡(jiǎn)單解釋為一個(gè)連接所有連續(xù)點(diǎn)的曲線(xiàn)(沿邊界)舰始,有同樣的顏色和亮度。輪廓在做形狀分析和目標(biāo)檢測(cè)與識(shí)別都很有用峻堰。

·為了更好地額準(zhǔn)確率讹开,使用二進(jìn)制圖像,所以在找輪廓前捐名,使用閾值或者canny邊緣檢測(cè)旦万。
·findContours函數(shù)修改原圖。所以如果你想在找輪廓后還需要原圖镶蹋,把它存到別的變量里成艘。
·在OpenCV里赏半,找輪廓和在黑色背景里找白色目標(biāo)一樣,所以記住淆两,目標(biāo)應(yīng)該是白的而背景是黑色的断箫。

如何找到一個(gè)二進(jìn)制圖像的輪廓:

import numpy as np
import cv2

im = cv2.imread('test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

cv2.findContours()函數(shù)的三個(gè)參數(shù),第一個(gè)是原圖琼腔,第二個(gè)是輪廓獲取方式瑰枫,第三個(gè)是輪廓近似方法踱葛。它會(huì)輸出圖片丹莲,輪廓和層級(jí)。輪廓是Python的列表尸诽,包括了圖片里的所有輪廓甥材,每個(gè)輪廓是一個(gè)Numpy的數(shù)組,包含對(duì)象的邊界點(diǎn)的坐標(biāo)(x,y)

如何繪制輪廓

要繪制輪廓性含,可以用cv2.drawContours函數(shù)洲赵。如果你有圖形的邊界點(diǎn),也可以用來(lái)繪制任何形狀商蕴。它的第一個(gè)參數(shù)是原圖叠萍,第二個(gè)參數(shù)是圖形的輪廓,應(yīng)該傳一個(gè)Python列表绪商,第三個(gè)參數(shù)是輪廓索引(在繪制特定的輪廓的時(shí)候有用苛谷,要畫(huà)所有的就傳-1)剩下的參數(shù)是顏色,厚度等格郁。

要畫(huà)一個(gè)圖像的所有輪廓:

img=cv2.drawContours(img,contours,-1,(0,255,0),3)

要畫(huà)第四級(jí)輪廓:

img=cv2.drawContours(img,contours,3,(0,255,0),3)

但大多數(shù)時(shí)候腹殿,下面的更有用:

cnt=contours[4]img=cv2.drawContours(img,[cnt],0,(0,255,0),3)

Contour 近似方法

這是cv2.findContours函數(shù)的參數(shù),它實(shí)際是指什么呢例书?

輪廓是圖形的邊界锣尉。它存了邊界坐標(biāo)(x,y),但是它存了所有坐標(biāo)么决采?這個(gè)就是輪廓近似方法指定的自沧。

如果你傳cv2.CHAIN_APPROX_NONE,所有的邊界點(diǎn)都會(huì)存下來(lái)树瞭。但是實(shí)際上我們需要所有的點(diǎn)么拇厢?比如說(shuō),你發(fā)現(xiàn)一個(gè)直線(xiàn)的輪廓移迫,你需要這線(xiàn)上的所有點(diǎn)來(lái)表示這個(gè)線(xiàn)么旺嬉?不需要,我們只需要兩個(gè)端點(diǎn)就夠了厨埋。這就是cv2.CHAIN_APPROX_SIMPLE要做的邪媳。它會(huì)去掉所有冗余點(diǎn)來(lái)壓縮輪廓,節(jié)省內(nèi)存。

下面矩形圖像展示了這個(gè)技術(shù)雨效,把輪廓里所有的點(diǎn)繪制出來(lái)迅涮。第一個(gè)圖像顯示了cv2.CHAIN_APPROX_NONE的情況(734個(gè)點(diǎn)),第二個(gè)圖像顯示了cv2.CHAIN_APPROX_SIMPLE的(4個(gè)點(diǎn))徽龟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叮姑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子据悔,更是在濱河造成了極大的恐慌传透,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件极颓,死亡現(xiàn)場(chǎng)離奇詭異朱盐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)菠隆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)兵琳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人骇径,你說(shuō)我怎么就攤上這事躯肌。” “怎么了破衔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵清女,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我运敢,道長(zhǎng)校仑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任传惠,我火速辦了婚禮迄沫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卦方。我一直安慰自己羊瘩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布盼砍。 她就那樣靜靜地躺著尘吗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浇坐。 梳的紋絲不亂的頭發(fā)上睬捶,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音近刘,去河邊找鬼擒贸。 笑死臀晃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的介劫。 我是一名探鬼主播徽惋,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼座韵!你這毒婦竟也來(lái)了险绘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤誉碴,失蹤者是張志新(化名)和其女友劉穎宦棺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體翔烁,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渺氧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹬屹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡白华,死狀恐怖慨默,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弧腥,我是刑警寧澤厦取,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站管搪,受9級(jí)特大地震影響虾攻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜更鲁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一霎箍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澡为,春花似錦漂坏、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拒啰,卻和暖如春驯绎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谋旦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工剩失, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骗随,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓赴叹,卻偏偏與公主長(zhǎng)得像鸿染,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乞巧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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