欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

opencv形態(tài)學中的孔洞填充詳細圖解

 更新時間:2022年10月18日 09:52:20   作者:Henry_zs  
我們在進行圖像分割后,分割結(jié)果有時會有一些小孔洞,如圖1所示,其中黑白兩色表示兩種不同的類別。一般情況下,這些孔洞屬于錯分情況,為了優(yōu)化結(jié)果,我們通常對這些孔洞進行填充。今天我們就用python語言基于OpenCV實現(xiàn)孔洞填充

1. 原理

孔洞指的是被前景像素點或者說感興趣的像素點包圍起來的區(qū)域,這個區(qū)域是我們不感興趣的背景區(qū)域。

數(shù)字圖像處理的孔洞填充的公式為:

I 為前景像素 ,c 為補集

其實孔洞填充的步驟就是一個迭代的過程:

先設(shè)置一個填充的起始點,需要在孔洞的內(nèi)部。如d圖所示,然后被結(jié)構(gòu)元B(圖c)膨脹。

然后,為了將膨脹的結(jié)果限制在孔洞內(nèi)部,需要和原圖(圖a)的補集(圖b)相交(圖e),因為如果不控制膨脹的結(jié)果的話,那么膨脹會填充整個區(qū)域,而膨脹結(jié)果和原圖的補集相交,會使結(jié)果限制到我們感興趣的區(qū)域內(nèi)部,也就是孔洞。

其次,重復這個過程,直到第k步和第k+1的步驟結(jié)果相同,那么我們可以認為孔洞已經(jīng)被填充完畢(圖h)

最后,和原圖相加即可(圖i)

2. 漫水填充算法

注:這里的mask必須為圖像長寬+2,且類型要是uint8

我們對下面圖像做孔洞填充

# -*- coding: utf-8 -*-
import cv2
import numpy as np
def holefill(img):
    img_copy = img.copy()
    mask = np.zeros((img.shape[0]+2,img.shape[1]+2),dtype=np.uint8)
    cv2.floodFill(img,mask,(0,0),255)
    img_inverse = cv2.bitwise_not(img)
    dst = cv2.bitwise_or(img_copy,img_inverse)
    return dst
img = cv2.imread('hole.png',0)
thresh , img = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
img_copy =img.copy()
dst = holefill(img)
cv2.imshow('img',np.hstack((img_copy,dst)))
cv2.waitKey()
cv2.destroyAllWindows()

處理的結(jié)果為

代碼詳解:

1. 首先將圖像進行二值化處理,轉(zhuǎn)為二值圖像

2. 通過圖像的長和寬設(shè)置掩膜mask,類型為uint8

3. floodFill 會對原圖像進行操作,所以事先需要拷貝圖像,將漫水的種子設(shè)為(0,0)也就是圖像的左上角,填充的顏色為255。雖然通過計算找到孔洞的位置,然后直接填充就可以,但是這樣比較麻煩,且孔洞較多的時候不好處理。這里我們將除了 前景像素點和孔洞 的位置都填充為前景像素點,然后通過求反就可以得到所有的孔洞的位置

4. 最后將孔洞和原圖相加即可

到此這篇關(guān)于opencv形態(tài)學中的孔洞填充詳細圖解的文章就介紹到這了,更多相關(guān)opencv孔洞填充內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?合并/拆分Excel的實現(xiàn)示例

    Python?合并/拆分Excel的實現(xiàn)示例

    有時對于多個工作表需要進行合并或拆分,以便進行瀏覽總結(jié),本文主要介紹了Python?合并/拆分Excel的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Python字典生成式、集合生成式、生成器用法實例分析

    Python字典生成式、集合生成式、生成器用法實例分析

    這篇文章主要介紹了Python字典生成式、集合生成式、生成器用法,結(jié)合實例形式分析了Python字典生成式、集合生成式、生成器相關(guān)原理、使用技巧與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • 淺析Python裝飾器以及裝飾器模式

    淺析Python裝飾器以及裝飾器模式

    本篇文章給大家分享了關(guān)于Python裝飾器以及裝飾器模式的相關(guān)知識點,一起跟著小編學習下吧。
    2018-05-05
  • Python中安裝庫的常用方法介紹

    Python中安裝庫的常用方法介紹

    大家好,本篇文章主要講的是Python中安裝庫的常用方法介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python命令行click參數(shù)用法解析

    Python命令行click參數(shù)用法解析

    這篇文章主要介紹了Python命令行click參數(shù)用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python內(nèi)建類型str源碼學習

    Python內(nèi)建類型str源碼學習

    這篇文章主要為大家介紹了Python內(nèi)建類型str的源碼學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python針對mysql數(shù)據(jù)庫的連接、查詢、更新、刪除操作示例

    python針對mysql數(shù)據(jù)庫的連接、查詢、更新、刪除操作示例

    這篇文章主要介紹了python針對mysql數(shù)據(jù)庫的連接、查詢、更新、刪除操作,結(jié)合實例形式詳細分析了Python操作mysql數(shù)據(jù)庫的連接與增刪改查相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09
  • python運算符號詳細介紹

    python運算符號詳細介紹

    大家好,本篇文章主要講的是python運算符號詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • django restframework序列化字段校驗規(guī)則

    django restframework序列化字段校驗規(guī)則

    本文主要介紹了django restframework序列化字段校驗規(guī)則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • TensorFlow MNIST手寫數(shù)據(jù)集的實現(xiàn)方法

    TensorFlow MNIST手寫數(shù)據(jù)集的實現(xiàn)方法

    MNIST數(shù)據(jù)集中包含了各種各樣的手寫數(shù)字圖片,這篇文章主要介紹了TensorFlow MNIST手寫數(shù)據(jù)集的實現(xiàn)方法,需要的朋友可以參考下
    2020-02-02

最新評論