衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析OpenCV中泛洪填充算法與應(yīng)用

新機(jī)器視覺(jué) ? 來(lái)源:OpenCV學(xué)堂公眾號(hào) ? 作者:OpenCV學(xué)堂公眾號(hào) ? 2021-04-09 10:25 ? 次閱讀

泛洪填充(Flood Fill)很多時(shí)候國(guó)內(nèi)的開(kāi)發(fā)者稱(chēng)它為漫水填充,該算法在圖形填充與著色應(yīng)用程序比較常見(jiàn),屬于標(biāo)配。在圖像處理里對(duì)二值圖像的Hole可以通過(guò)泛洪填充來(lái)消除,這個(gè)是泛洪填充在圖像處理中很經(jīng)典的一個(gè)用途,此外還可以通過(guò)泛洪填充為ROI區(qū)域著色。這個(gè)在圖像處理也經(jīng)常用到。讓我們首先看一下泛洪填充算法本身,然后再說(shuō)一下在圖像處理中的應(yīng)用場(chǎng)景。

泛洪填充算法

通常泛洪填充需要從一個(gè)點(diǎn)開(kāi)始,這個(gè)點(diǎn)可以隨機(jī)選擇的一點(diǎn),但是一定要在填充區(qū)域內(nèi)部,然后它就會(huì)進(jìn)行四鄰域或者把鄰域?qū)ふ覍?duì)周?chē)袼赝瓿商畛洌钡接龅礁付S機(jī)點(diǎn)像素值不同的像素為止,也可以認(rèn)為是到達(dá)了區(qū)域邊界。通過(guò)鄰域像素尋找實(shí)現(xiàn)填充速度比較慢、不是泛洪填充好的實(shí)現(xiàn)方式,最常見(jiàn)與快速的泛紅實(shí)現(xiàn)是基于掃描線算法的,步驟如下:

1.首先從開(kāi)始點(diǎn)出發(fā)進(jìn)行垂直方向列的掃描,填充

2.然后以填充點(diǎn)開(kāi)始進(jìn)行每一行的掃描與填充

3.繼續(xù)以每一行新填充的像素為開(kāi)始點(diǎn),執(zhí)行1,2步驟

4.直到區(qū)域所有點(diǎn)都完成填充為止。

圖示如下:

第一步:假設(shè)有圖像如下,紅色表種子像素點(diǎn)。

482a1852-98d9-11eb-8b86-12bb97331649.png

首先進(jìn)行豎直方向的掃描,填充結(jié)果如下:

484920ee-98d9-11eb-8b86-12bb97331649.png

然后以填充的紅色像素為起始點(diǎn),開(kāi)始水平方向的掃描填充,結(jié)果如下:

4865be3e-98d9-11eb-8b86-12bb97331649.png

用水平方向被填充像素點(diǎn)為種子像素點(diǎn),繼續(xù)豎直方式掃描填充,結(jié)果如下:

48739b12-98d9-11eb-8b86-12bb97331649.png

以填充的像素點(diǎn)為種子像素點(diǎn)繼續(xù)水平方向掃描,結(jié)果如下:

488483e6-98d9-11eb-8b86-12bb97331649.png

這樣就完成了對(duì)整個(gè)區(qū)域的填充。從上面的例子可以看出,泛洪填充可以通過(guò)遞歸方式編碼實(shí)現(xiàn),但是基于遞歸方式編碼實(shí)現(xiàn)有個(gè)致命的缺點(diǎn),對(duì)大圖填充時(shí)候容易導(dǎo)致棧溢出,所以更常用的基于隊(duì)列或者棧的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)非遞歸的泛洪填充。OpenCV中的實(shí)現(xiàn)主要是基于棧的掃描線算法實(shí)現(xiàn)泛洪填充。

應(yīng)用場(chǎng)景一:

通過(guò)泛洪填充算法實(shí)現(xiàn)對(duì)二值圖像對(duì)象區(qū)域中Hole填充

運(yùn)行顯示原圖如下:

489fade2-98d9-11eb-8b86-12bb97331649.png

填充以后結(jié)果如下:

48b3b8be-98d9-11eb-8b86-12bb97331649.png

實(shí)現(xiàn)代碼如下:

48cb96d2-98d9-11eb-8b86-12bb97331649.jpg

應(yīng)用場(chǎng)景二:

通過(guò)泛洪填充實(shí)現(xiàn)對(duì)ROI區(qū)域的著色, 跟上個(gè)例子使用API唯一不同地方是帶了mask參數(shù)。運(yùn)行結(jié)果如下:

48f93bb4-98d9-11eb-8b86-12bb97331649.png

實(shí)現(xiàn)代碼如下:

4934b072-98d9-11eb-8b86-12bb97331649.jpg

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1510

    瀏覽量

    62395
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41556
  • 泛洪算法
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1342

原文標(biāo)題:OpenCV中泛洪填充算法解析與應(yīng)用

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    先進(jìn)封裝Underfill工藝的四種常用的填充膠CUF,NUF,WLUF和MUF介紹

    今天我們?cè)僭敿?xì)看看Underfill工藝中所用到的四種填充膠:CUF,NUF,WLUF和MUF。 倒裝芯片的底部填充工藝般分為三種:毛細(xì)填充(流動(dòng)型)、無(wú)流動(dòng)
    的頭像 發(fā)表于 01-28 15:41 ?143次閱讀
    先進(jìn)封裝Underfill工藝<b class='flag-5'>中</b>的四種常用的<b class='flag-5'>填充</b>膠CUF,NUF,WLUF和MUF介紹

    芯片底部填充膠種類(lèi)有哪些?

    芯片底部填充膠種類(lèi)有哪些?底部填充膠(Underfill)又稱(chēng)底部填充劑,指以高分子材料為原材料制成的電子封裝膠,主要用于在芯片和基板之間的空隙
    的頭像 發(fā)表于 12-27 09:16 ?404次閱讀
    芯片底部<b class='flag-5'>填充</b>膠種類(lèi)有哪些?

    PCB設(shè)計(jì)填充銅和網(wǎng)格銅有什么區(qū)別?

    填充銅(SolidCopper)和網(wǎng)格銅(HatchedCopper)是PCB設(shè)計(jì)兩種不同的鋪銅方式,它們?cè)陔姎庑阅堋峁芾怼⒓庸すに嚭统杀痉矫娲嬖?b class='flag-5'>一些區(qū)別:1.電氣性能:填充銅:提
    的頭像 發(fā)表于 12-10 16:45 ?101次閱讀
    PCB設(shè)計(jì)<b class='flag-5'>中</b><b class='flag-5'>填充</b>銅和網(wǎng)格銅有什么區(qū)別?

    PCB設(shè)計(jì)填充銅和網(wǎng)格銅有什么區(qū)別?

    填充銅(SolidCopper)和網(wǎng)格銅(HatchedCopper)是PCB設(shè)計(jì)兩種不同的鋪銅方式,它們?cè)陔姎庑阅堋峁芾怼⒓庸すに嚭统杀痉矫娲嬖?b class='flag-5'>一些區(qū)別:1.電氣性能:填充銅:提
    的頭像 發(fā)表于 12-10 11:18 ?80次閱讀
    PCB設(shè)計(jì)<b class='flag-5'>中</b><b class='flag-5'>填充</b>銅和網(wǎng)格銅有什么區(qū)別?

    【AI實(shí)戰(zhàn)項(xiàng)目】基于OpenCV的“顏色識(shí)別項(xiàng)目”完整操作過(guò)程

    OpenCV個(gè)廣受歡迎且極為流行的計(jì)算機(jī)視覺(jué)庫(kù),它因其強(qiáng)大的功能、靈活性和開(kāi)源特性而在開(kāi)發(fā)者和研究者備受青睞。學(xué)習(xí)OpenCV主要就是學(xué)習(xí)里面的計(jì)算機(jī)視覺(jué)
    的頭像 發(fā)表于 12-09 16:42 ?484次閱讀
    【AI實(shí)戰(zhàn)項(xiàng)目】基于<b class='flag-5'>OpenCV</b>的“顏色識(shí)別項(xiàng)目”完整操作過(guò)程

    個(gè)月速成python+OpenCV圖像處理

    OpenCV個(gè)廣受歡迎且極為流行的計(jì)算機(jī)視覺(jué)庫(kù),它因其強(qiáng)大的功能、靈活性和開(kāi)源特性而在開(kāi)發(fā)者和研究者備受青睞。學(xué)習(xí)OpenCV主要就是學(xué)習(xí)里面的計(jì)算機(jī)視覺(jué)
    的頭像 發(fā)表于 11-29 18:27 ?197次閱讀
    <b class='flag-5'>一</b>個(gè)月速成python+<b class='flag-5'>OpenCV</b>圖像處理

    手寫(xiě)圖像模板匹配算法OpenCV的實(shí)現(xiàn)

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,個(gè)主要的原因是查找最大閾值,只能匹配個(gè),自己比對(duì)閾值,又導(dǎo)致無(wú)法正確設(shè)定閾值范圍,所以問(wèn)題很多。于是我重新寫(xiě)了
    的頭像 發(fā)表于 11-11 10:12 ?326次閱讀
    手寫(xiě)圖像模板匹配<b class='flag-5'>算法</b>在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的實(shí)現(xiàn)

    opencv圖像識(shí)別有什么算法

    OpenCV(Open Source Computer Vision Library)是個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),提供了大量的圖像處理和計(jì)算機(jī)視覺(jué)相關(guān)的算法。以下是些常見(jiàn)
    的頭像 發(fā)表于 07-16 10:40 ?1209次閱讀

    opencv-python和opencv樣嗎

    樣。OpenCV(Open Source Computer Vision Library)是個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),它提供了大量的圖像和視頻處理功能。OpenCV
    的頭像 發(fā)表于 07-16 10:38 ?1404次閱讀

    opencv的主要功能有哪些

    OpenCV(Open Source Computer Vision Library)是個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),提供了大量的計(jì)算機(jī)視覺(jué)算法和工具。以下是OpenCV的主要功能: 圖像處
    的頭像 發(fā)表于 07-16 10:35 ?1763次閱讀

    OpenCV攜奧比光3D相機(jī)亮相CVPR 2024

    和機(jī)器學(xué)習(xí)軟件庫(kù),提供豐富的圖像處理和計(jì)算機(jī)視覺(jué)算法。奧比光與OpenCV的深入合作,使得復(fù)雜的3D感知項(xiàng)目開(kāi)發(fā)變得簡(jiǎn)單高效。全球開(kāi)發(fā)者及企業(yè)用戶(hù)可借助奧比光先進(jìn)的3D相機(jī)技術(shù)和
    的頭像 發(fā)表于 06-21 09:38 ?630次閱讀

    等離子清洗及點(diǎn)膠軌跡對(duì)底部填充膠流動(dòng)性的影響

    共讀好書(shū) 翟培卓,根深,王印權(quán),李守委,陳鵬,邵韜,柏鑫鑫 (中國(guó)電子科技集團(tuán)公司第五十八研究所) 摘要: 倒裝焊封裝過(guò)程,底部填充膠的流動(dòng)性決定了
    的頭像 發(fā)表于 06-17 08:44 ?455次閱讀
    等離子清洗及點(diǎn)膠軌跡對(duì)底部<b class='flag-5'>填充</b>膠流動(dòng)性的影響

    I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu編譯OpenCV庫(kù)(X86架構(gòu))

    Ubuntu環(huán)境下編譯X86架構(gòu)的OpenCV,這為快速迭代產(chǎn)品、優(yōu)化算法提供了堅(jiān)實(shí)的支撐。希望本篇指南能成為各位小伙伴在嵌入式技術(shù)探索之旅上的得力助手。如果您在實(shí)踐過(guò)程遇到任何問(wèn)題,歡迎留言交流。
    發(fā)表于 06-07 09:32

    嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu編譯OpenCV庫(kù)

    Ubuntu環(huán)境下編譯X86架構(gòu)的OpenCV,這為快速迭代產(chǎn)品、優(yōu)化算法提供了堅(jiān)實(shí)的支撐。希望本篇指南能成為各位小伙伴在嵌入式技術(shù)探索之旅上的得力助手。如果您在實(shí)踐過(guò)程遇到任何問(wèn)題,歡迎留言交流。
    發(fā)表于 06-07 09:21

    ELF 1技術(shù)貼|如何在Ubuntu編譯OpenCV庫(kù)

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在Ubuntu環(huán)境下將OpenCV編譯為X86架構(gòu)可能更加方便和高效。通過(guò)在主機(jī)上編譯并使用X86架構(gòu)
    的頭像 發(fā)表于 05-31 16:41 ?1211次閱讀
    ELF 1技術(shù)貼|如何在Ubuntu<b class='flag-5'>中</b>編譯<b class='flag-5'>OpenCV</b>庫(kù)
    百家乐下| 百家乐官网怎么玩请指教| 德州扑克冠军| 做生意的信风水吗| 百家乐官网作弊工具| 飞天百家乐的玩法技巧和规则| 利都百家乐官网国际娱乐场开户注册 | 百家乐官网视频赌博| 大发888大发888官方| 百家乐破解| 利都百家乐官网国际娱乐| 沙龙网上娱乐| 百家乐路书| 百家乐官网永利娱乐场| 尊龙国际网上娱乐| 百家乐博彩的玩法技巧和规则| 正品百家乐官网网站| 百家乐官网专打单跳投注法| 老虎机上分器| 百家乐金海岸软件| 百家乐官网专业术语| 百家乐官网终端下载| 青鹏棋牌游戏下载| 致胜百家乐的玩法技巧和规则 | 百家乐风云论坛| 百家乐官网赌博游戏| 皇冠网h| 大发888娱乐方| ag百家乐下载| 澳门百家乐官网手机软件| 百家乐官网趋势图怎么看| 大发体育场| 威尼斯人娱乐城代理加盟| 挖掘百家乐赢钱秘籍| 银河百家乐官网的玩法技巧和规则 | 做生意摆放什么财神爷| 上市百家乐官网.评论| 汝州市| 六合彩公式| 大发888娱乐场下载官方| 真人百家乐送钱|