cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解
cv2.getStructuringElement()函數(shù)的作用是返回一個結(jié)構(gòu)元素(卷積核),具體解析如下:
kernel = cv2.getStructuringElement(a,b,c): # 得到一個結(jié)構(gòu)元素(卷積核)。主要用于后續(xù)的腐蝕、膨脹、開、閉等運算。
因為這些運算都是依賴于卷積核的,不同的卷積核(形狀、大小)對圖形的腐蝕、膨脹操作效果不一樣輸入?yún)?shù):
a設定卷積核的形狀、b設定卷積核的大小、c表示描點的位置,一般 c = 1,表示描點位于中心。(下文細說)
返回值:
返回指定形狀和尺寸的結(jié)構(gòu)元素(一般是返回一個矩形)、也就是腐蝕/膨脹用的核的大小。(下文細說)
a取不同的參數(shù)會導致卷積核有不同的形狀,a參數(shù)有三個:
①:MORPH_RECT(函數(shù)返回矩形卷積核)
②:MORPH_CROSS(函數(shù)返回十字形卷積核)
③:MORPH_ELLIPSE(函數(shù)返回橢圓形卷積核)
b:用一個(x,y)的形式表示,表示卷積核有x行,y列。
腐蝕操作
①:腐蝕操作的對象是二值化圖像,二值圖像前景物體為1,背景為0,卷積核也是只含有0和1。
②:比如這是圖像A和一個卷積核(結(jié)構(gòu)元素):
(注意A的像素點(方格)不是0就是1。B的描點(中心點)就是我們通過getStructuringElement函數(shù)中的參數(shù)c來確定的,也可以設立在其他地方)
腐蝕的步驟就是用卷積核B的描點(此處就是中心點),來對齊A中的每一個小方格,然后選取卷積核B的方格中的數(shù)據(jù)的最小值,意思就是當B的描點對齊A的邊界方格的時候,那么B的其他四個方格可能位于A圖像中的0像素點,那么最小值就是0,那么就把卷積核B的描點對應的A中的小方格設為0,這就導致使用腐蝕操作后,我我們能看到的白色區(qū)域減少的原因。
kernel = cv2.getStructuringElement(a,b,c) cv2.erode(img, kernel, iteration = 1)# 腐蝕操作
膨脹操作
原理與腐蝕操作一樣,只不過是取最大像素值,其他地方?jīng)]差別。
kernel = cv2.getStructuringElement(a,b,c) cv2.dilate(img, kernel, iteration = 1)# 膨脹操作
開、閉
開:先進行腐蝕運算,再進行膨脹運算。
閉:先進行膨脹運算,再進行腐蝕運算。
kernel = cv2.getStructuringElement(a,b,c) opening = cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel) # 開運算 opening = cv2.morphologyEx(ima,cv2.MORPH_CLOSE,lernel) # 閉運算
開運算和閉運算都是處理噪點用的:
開:消去一個黑圖中的很多小白點
閉:小區(qū)一個白圖中的很多小黑點 如:
原圖:
開運算:
閉運算:
總結(jié)
到此這篇關于cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解的文章就介紹到這了,更多相關cv2.getStructuringElement()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django 接收Post請求數(shù)據(jù),并保存到數(shù)據(jù)庫的實現(xiàn)方法
今天小編就為大家分享一篇Django 接收Post請求數(shù)據(jù),并保存到數(shù)據(jù)庫的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python遞歸調(diào)用中的坑:打印有值, 返回卻None
這篇文章主要介紹了python遞歸調(diào)用中的坑:打印有值, 返回卻None,本文通過問題分析給出解決方法,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03python使用ctypes調(diào)用dll遇到的坑解決記錄
這篇文章主要為大家介紹了python使用ctypes調(diào)用dll遇到的坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12python使用pooch實現(xiàn)下載網(wǎng)絡文件
pooch是python的一個模塊,主打一個更加方便地下載文件,適用于科研人員和開發(fā)者,目前,已經(jīng)有scikit-image, MetPy, scipy, seaborn等項目采用pooch作為內(nèi)置數(shù)據(jù)集的下載方法,本文給大家介紹了python用pooch便捷地下載網(wǎng)絡文件,需要的朋友可以參考下2024-01-01