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

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

基于Python的Opencv入門教程第二大部分(P2.識(shí)別物體)

2022-01-25 16:15 作者:閑予1217  | 我要投稿

書接上文(doge)

輪廓檢測(cè)并繪制

在這個(gè)OpenCV基礎(chǔ)教程中,我們正在使用OpenCV和Python查找輪廓形狀。

在上圖中,我們有6個(gè)形狀輪廓。讓我們通過(guò)代碼找到并繪制他們的輪廓:

在第34行和第35行,我們使用CV2。查找輪廓以檢測(cè)圖像中的輪廓。注意參數(shù)標(biāo)志,但現(xiàn)在讓我們保持簡(jiǎn)單——我們的算法是在閾值中查找所有前景(白色)像素。復(fù)制()圖像。

第36行非常重要,因?yàn)?a class='article-link' target='_blank' href='//www.bilibili.com/read/cv2?from=articleDetail'>CV2。findContours的實(shí)現(xiàn)在OpenCV 2.4、OpenCV 3和OpenCV 4之間進(jìn)行了更改。無(wú)論涉及到什么樣的輪廓,博客上都會(huì)出現(xiàn)這種兼容性。

我們?cè)诘?7行復(fù)制原始圖像,以便在隨后的第40-45行繪制輪廓。

我們使用CVC列表中的每一行CNT47來(lái)適當(dāng)?shù)乩L制cnts。畫輪廓。我選擇了紫色,它由元組(240,0,159)表示。

根據(jù)我們之前在這篇博文中了解到的內(nèi)容,讓我們?cè)趫D像上疊加一些文本:

第48行構(gòu)建一個(gè)文本字符串,其中包含形狀輪廓的數(shù)量。計(jì)算這張圖像中物體的總數(shù)就像檢查輪廓列表的長(zhǎng)度一樣簡(jiǎn)單。

結(jié)果如下圖所示:

使用OpenCV計(jì)算輪廓就像找到輪廓然后調(diào)用len(cnts)一樣簡(jiǎn)單。

侵蝕和擴(kuò)張

腐蝕和膨脹通常用于減少二值圖像中的噪聲(閾值化的副作用)。

為了減小前景對(duì)象的大小,我們可以通過(guò)多次迭代來(lái)削弱像素:

在第55行,我們復(fù)制thresh圖像,同時(shí)將其命名為mask。

然后,利用CV2。侵蝕,我們繼續(xù)通過(guò)5次迭代來(lái)減小輪廓尺寸(第56行)。

如下圖所示,由俄羅斯方塊輪廓生成的面具略小:

使用OpenCV,我們可以侵蝕輪廓,有效地使其變小,或通過(guò)足夠的迭代使其完全消失。這通常用于移除遮罩圖像中的小斑點(diǎn)。

類似地,我們可以在遮罩中顯示前景區(qū)域。要擴(kuò)大區(qū)域,只需使用CV2.dilate:

在圖像處理管道中,如果需要連接附近的輪廓,可以對(duì)圖像應(yīng)用膨脹。圖中顯示的是經(jīng)過(guò)五次迭代擴(kuò)展輪廓的結(jié)果,但不是兩個(gè)輪廓變成一個(gè)。

掩蔽和按位操作

遮罩允許我們“遮掩”我們不感興趣的圖像區(qū)域。我們稱它們?yōu)椤罢谡帧?,因?yàn)樗鼈儠?huì)隱藏我們不關(guān)心的圖像區(qū)域。

如果我們使用文章中的第四張圖片的thresh圖像,并用原始圖像遮罩它,我們將看到下圖:

當(dāng)使用閾值圖像作為與原始圖像相比的遮罩時(shí),彩色區(qū)域會(huì)隨著圖像的其余部分被“遮罩”而重新出現(xiàn)。當(dāng)然,這是一個(gè)簡(jiǎn)單的例子,但正如你所想象的,面具非常強(qiáng)大。

在上圖中,背景現(xiàn)在是黑色的,前景由彩色像素組成——任何被遮罩圖像遮住的像素。

讓我們學(xué)習(xí)如何做到這一點(diǎn):

通過(guò)復(fù)制二值閾值圖像生成掩模(第67行)。

從這里,我們使用CV2按位和兩幅圖像中的像素組合在一起。按位_和。

結(jié)果如上圖所示,我們現(xiàn)在只顯示/突出顯示俄羅斯方塊。

運(yùn)行第二個(gè)OpenCV教程Python腳本

上期簡(jiǎn)單的講了一下如何運(yùn)行這個(gè)程序,那么詳細(xì)教程來(lái)了!

(干嘛說(shuō)這么多廢話)

要運(yùn)行第二個(gè)腳本,請(qǐng)確保您位于包含下載的源代碼和Python腳本的文件夾中。從那里,我們將打開(kāi)一個(gè)終端,提供腳本名+命令行參數(shù):

參數(shù)標(biāo)志是--image,圖像參數(shù)本身是俄羅斯方塊。png-目錄中相關(guān)文件的路徑。

此腳本沒(méi)有終端輸出。同樣,要循環(huán)瀏覽圖像,請(qǐng)確保單擊圖像窗口使其處于活動(dòng)狀態(tài),從那里可以按一個(gè)鍵,它將被捕獲,以前進(jìn)到腳本中的下一個(gè)等待鍵(0)。當(dāng)程序完成運(yùn)行時(shí),腳本將優(yōu)雅地退出,并在終端中顯示一個(gè)新的bash提示行。

PS:當(dāng)然也可以使用上一期所講的方法,上文是原作者寫的,而上一期的是我這個(gè)87找老師后的解答,兩者都可以運(yùn)行

以下是廢話時(shí)間(bushi)

那么,關(guān)于基于Python的Opencv入門教程的第二大Part也結(jié)束了。(沒(méi)想到兩期就趕完了)

接來(lái)應(yīng)該會(huì)更新關(guān)于這個(gè)外國(guó)作者的其他文章。

還有,視頻短時(shí)間內(nèi)是更不了了QAQ

基于Python的Opencv入門教程第二大部分(P2.識(shí)別物體)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
荃湾区| 龙陵县| 沅江市| 金山区| 海原县| 从江县| 湘乡市| 汝阳县| 湘潭县| 兴安县| 三门县| 黄龙县| 泰顺县| 河东区| 巴东县| 长寿区| 乾安县| 德昌县| 利辛县| 顺昌县| 洛隆县| 景宁| 冀州市| 岳普湖县| 平谷区| 吉木萨尔县| 塘沽区| 浙江省| 霍州市| 台安县| 吴旗县| 富宁县| 鄂州市| 环江| 公安县| 门头沟区| 曲靖市| 玉林市| 通许县| 峨山| 西充县|