最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【第18節(jié)】OpenCV圖片輪廓特征

2022-11-22 18:18 作者:海鷗之道  | 我要投稿

目標(biāo)

  • 查找輪廓的不同特征,例如面積、周長(zhǎng)、中心、邊界框等

  • 你會(huì)學(xué)到很多輪廓相關(guān)函數(shù)

1、矩

????????圖像的矩可以幫助我們計(jì)算圖像的質(zhì)心、面積等。

函數(shù)CV2.moments()會(huì)將計(jì)算得到的矩以一個(gè)字典的形式返回。

根據(jù)這些矩的值,我們可以計(jì)算出對(duì)象的重心:Cx%20%3D%20%5Cfrac%7BM_%7B10%7D%20%7D%7BM_%7B00%7D%20%7D%20%2CCy%20%3D%20%5Cfrac%7BM_%7B01%7D%20%7D%7BM_%7B00%7D%20%7D%20%E3%80%82

2、輪廓面積

????????輪廓的面積可以使用函數(shù)CV2.contourArea()計(jì)算得到,也可以使用矩(0階矩),M[‘m00’]。

3、輪廓周長(zhǎng)

????????也被稱為弧長(zhǎng)??梢允褂煤瘮?shù)CV2.arcLength()計(jì)算得到。這個(gè)函數(shù)的第二參數(shù)可以用來(lái)指定對(duì)象的形狀是閉合的(True),還是打開(kāi)的(一條曲線)。

4、輪廓近似

????????將輪廓形狀近似到另外一種由更少點(diǎn)組成的輪廓形狀,新輪廓的點(diǎn)的數(shù)目由我們?cè)O(shè)定的準(zhǔn)確度來(lái)決定。為了幫助理解,假設(shè)我們要在一幅圖像中查找一個(gè)矩形,但是由于圖像的

種種原因,我們不能得到一個(gè)完美的矩形,而是一個(gè)“壞形狀"(如下圖所示)?,F(xiàn)在你就可以使用這個(gè)函數(shù)來(lái)近似這個(gè)形狀()了。這個(gè)函數(shù)的第二個(gè)參數(shù)叫epsilon,它是從原始輪廓到近似輪廓的最大距離。它是一個(gè)準(zhǔn)確度參數(shù)。選擇一個(gè)好的epsilon對(duì)于得到滿意結(jié)果非常重要。

下邊,第二幅圖中的綠線是當(dāng) epsilon = 10% 時(shí)得到的近似輪廓,第三幅圖是當(dāng) epsilon = 1% 時(shí)得到的近似輪廓。第三個(gè)參數(shù)設(shè)定弧線是否閉合。

5、凸包

????????凸包與輪廓近似相似,但不同,雖然有些情況下它們給出的結(jié)果是一樣的。函數(shù)CV2.convexHullO可以用來(lái)檢測(cè)一個(gè)曲線是否具有凸性缺陷,并能糾正缺陷。一般來(lái)說(shuō),凸性曲線總是凸出來(lái)的,至少是平的。如果有地方凹進(jìn)去了就被叫做凸性缺陷。例如下圖中的手。紅色曲線顯示了手的凸包,凸性缺陷被雙箭頭標(biāo)出來(lái)了。

函數(shù)原型:

參數(shù):

  • points我們要傳入的輪廓

  • hull輸出,通常不需要

  • clockwise方向標(biāo)志,如果設(shè)置為True,輸出的凸包是順時(shí)針?lè)较虻?,否則為逆時(shí)針?lè)较颉?/p>

  • returnPoints默認(rèn)值為True。它會(huì)返回凸包上點(diǎn)的坐標(biāo),如果設(shè)置為False,就會(huì)返回與凸包點(diǎn)對(duì)應(yīng)的輪廓上的點(diǎn)。

????????要獲得上圖的凸包,可以用下面命令:

????????但是如果你想獲得凸性缺陷,需要把returnPoints設(shè)置為False。以上面矩形為例,首先我們找到他的輪廓從cnt?,F(xiàn)在把returnPoints設(shè)置為True查找凸包,得到的就是矩形的四個(gè)角點(diǎn)。把returnPoints設(shè)置為False,得到的是輪廓點(diǎn)的索引。

6、凸性檢測(cè)

????????函數(shù)CV2.isContourConvex()可以檢測(cè)一個(gè)曲線是不是凸的。它只能返回True或者False。

7、邊界矩形

直邊界矩形,一個(gè)直矩形,沒(méi)有旋轉(zhuǎn)。不會(huì)考慮對(duì)象是否旋轉(zhuǎn)。所以邊界矩形的面積不是最小的??梢允褂煤瘮?shù)CV2.boundingRect()查找得到。

(x,y)為矩形左上角的坐標(biāo),(w,h)是矩形的寬和高

旋轉(zhuǎn)的邊界矩形,這個(gè)邊界矩形是面積最小的,因?yàn)樗紤]了對(duì)象的旋轉(zhuǎn)。用函數(shù)CV2.minAreaRect()。返回的是一個(gè)Box2D結(jié)構(gòu),其中包含矩形最上角角點(diǎn)坐標(biāo)(x,y)矩形的寬和高(w,h)以及旋轉(zhuǎn)角度。但是要繪制這個(gè)矩形需要矩形的4個(gè)角點(diǎn),可以通過(guò)函數(shù)CV2.boxPoints()獲得。

其中綠色的為直矩形,紅色為旋轉(zhuǎn)矩形。








【第18節(jié)】OpenCV圖片輪廓特征的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
资溪县| 平乡县| 综艺| 奇台县| 社会| 江川县| 泸西县| 淳安县| 庆元县| 日喀则市| 岳池县| 页游| 河南省| 邻水| 抚松县| 渑池县| 城步| 鲁山县| 介休市| 兴山县| 桐梓县| 冀州市| 客服| 盐城市| 磐安县| 孝昌县| 兴义市| 琼海市| 比如县| 林西县| 大新县| 揭东县| 连山| 奉贤区| 都安| 高阳县| 定兴县| 阜平县| 昭通市| 揭阳市| 河东区|