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

詳解Python圖像形態(tài)學處理(開運算,閉運算,梯度運算)

 更新時間:2022年06月08日 10:43:19   作者:Eastmount  
數(shù)學形態(tài)學(Mathematical Morphology)是一種應用于圖像處理和模式識別領域的新方法。本文將為大家介紹Python圖像形態(tài)學處理中的開運算、閉運算和梯度運算,感興趣的可以了解一下

這篇文章將繼續(xù)介紹開運算、閉運算和梯度運算。數(shù)學形態(tài)學(Mathematical Morphology)是一種應用于圖像處理和模式識別領域的新方法。數(shù)學形態(tài)學(也稱圖像代數(shù))表示以形態(tài)為基礎對圖像進行分析的數(shù)學工具,其基本思想是用具有一定形態(tài)的結構元素去量度和提取圖像中對應形狀以達到對圖像分析和識別的目的。

一.圖像開運算

開運算一般能平滑圖像的輪廓,削弱狹窄部分,去掉較細的突出。閉運算也是平滑圖像的輪廓,與開運算相反,它一般熔合窄的缺口和細長的彎口,去掉小洞,填補輪廓上的縫隙。圖像開運算是圖像依次經(jīng)過腐蝕、膨脹處理的過程,圖像被腐蝕后將去除噪聲,但同時也壓縮了圖像,接著對腐蝕過的圖像進行膨脹處理,可以在保留原有圖像的基礎上去除噪聲。其原理如圖1所示。

設A是原始圖像,B是結構元素圖像,則集合A被結構元素B做開運算,記為A?B,其定義為:

換句話說,A被B開運算就是A被B腐蝕后的結果再被B膨脹。圖像開運算在OpenCV中主要使用函數(shù)morphologyEx(),它是形態(tài)學擴展的一組函數(shù),其函數(shù)原型如下:

dst = cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)

  • src表示原始圖像
  • cv2.MORPH_OPEN表示圖像進行開運算處理
  • kernel表示卷積核,可以用numpy.ones()函數(shù)構建

圖像開運算的代碼如下所示:

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  

#讀取圖片
src = cv2.imread('test01.png', cv2.IMREAD_UNCHANGED)

#設置卷積核
kernel = np.ones((5,5), np.uint8)

#圖像開運算
result = cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)

#顯示圖像
cv2.imshow("src", src)
cv2.imshow("result", result)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖2所示,左邊為原始圖像,右邊為處理后的圖像,可以看到原始圖形中的噪聲點被去除了部分。

但處理后的圖像中仍然有部分噪聲,如果想更徹底地去除,可以將卷積設置為10×10的模板,代碼如下所示:

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  

#讀取圖片
src = cv2.imread('test01.png', cv2.IMREAD_UNCHANGED)

#設置卷積核
kernel = np.ones((10,10), np.uint8) 

#圖像開運算
result = cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)

#顯示圖像
cv2.imshow("src", src)
cv2.imshow("result", result)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

運行結果如圖3所示:

二.圖像閉運算

圖像閉運算是圖像依次經(jīng)過膨脹、腐蝕處理的過程,先膨脹后腐蝕有助于過濾前景物體內(nèi)部的小孔或物體上的小黑點。其原理如圖4所示:

設A是原始圖像,B是結構元素圖像,則集合A被結構元素B做開運算,記為A·B,其定義為:

換句話說,A被B閉運算就是A被B膨脹后的結果再被B腐蝕。圖像開運算在OpenCV中主要使用函數(shù)morphologyEx(),其函數(shù)原型如下:

dst = cv2.morphologyEx(src, cv2.MORPH_CLOSE, kernel)

  • src表示原始圖像
  • cv2.MORPH_CLOSE表示圖像進行閉運算處理
  • kernel表示卷積核,可以用numpy.ones()函數(shù)構建

圖像閉運算的代碼如下所示:

# -*- coding: utf-8 -*-
# By:Eastmount
import cv2  
import numpy as np  

#讀取圖片
src = cv2.imread('test02.png', cv2.IMREAD_UNCHANGED)

#設置卷積核
kernel = np.ones((10,10), np.uint8)

#圖像閉運算
result = cv2.morphologyEx(src, cv2.MORPH_CLOSE, kernel)

#顯示圖像
cv2.imshow("src", src)
cv2.imshow("result", result)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結果如圖5所示,它有效地去除了圖像中間的小黑點(噪聲)。

三.圖像梯度運算

圖像梯度運算是圖像膨脹處理減去圖像腐蝕處理后的結果,從而得到圖像的輪廓,其原理如圖6所示,(a)表示原始圖像,(b)表示膨脹處理后的圖像,(c)表示腐蝕處理后的圖像,(d)表示圖像梯度運算的效果圖。

在Python中,圖像梯度運算主要調(diào)用morphologyEx()實現(xiàn),其中參數(shù)cv2.MORPH_GRADIENT表示梯度處理,函數(shù)原型如下:

dst = cv2.morphologyEx(src, cv2.MORPH_GRADIENT, kernel)

  • src表示原始圖像
  • cv2.MORPH_GRADIENT表示圖像進行梯度運算處理
  • kernel表示卷積核,可以用numpy.ones()函數(shù)構建

圖像梯度運算的實現(xiàn)代碼如下所示。

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  

#讀取圖片
src = cv2.imread('test03.png', cv2.IMREAD_UNCHANGED)

#設置卷積核
kernel = np.ones((10,10), np.uint8)

#圖像梯度運算
result = cv2.morphologyEx(src, cv2.MORPH_GRADIENT, kernel)

#顯示圖像
cv2.imshow("src", src)
cv2.imshow("result", result)

#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像梯度運算處理的結果如圖7所示,左邊為原始圖像,右邊為處理后的效果圖。

四.總結

本文主要介紹圖像形態(tài)學處理,詳細講解了圖像開運算、閉運算和梯度運算。數(shù)學形態(tài)學是一種應用于圖像處理和模式識別領域的新方法,其基本思想是用具有一定形態(tài)的結構元素去量度和提取圖像中對應形狀以達到對圖像分析和識別目的。

到此這篇關于詳解Python圖像形態(tài)學處理(開運算,閉運算,梯度運算)的文章就介紹到這了,更多相關Python圖像形態(tài)學處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python中Collection的使用小技巧

    Python中Collection的使用小技巧

    這篇文章主要介紹了Python中Collection的使用小技巧,對初學者來說有不錯的學習借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 如何使用python自帶IDLE的幾種方法

    如何使用python自帶IDLE的幾種方法

    這篇文章主要介紹了如何使用python自帶IDLE的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • python 中的9個實用技巧,助你提高開發(fā)效率

    python 中的9個實用技巧,助你提高開發(fā)效率

    這篇文章主要介紹了python 中的9個實用技巧,幫助大家提高python開發(fā)時的效率,感興趣的朋友可以了解下
    2020-08-08
  • Python列表切片操作實例總結

    Python列表切片操作實例總結

    這篇文章主要介紹了Python列表切片操作,結合實例形式總結分析了Python列表切片常見操作技巧與注意事項,需要的朋友可以參考下
    2019-02-02
  • python類繼承用法實例分析

    python類繼承用法實例分析

    這篇文章主要介紹了python類繼承用法,實例分析了Python類的定義與類繼承的實現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • python常用數(shù)據(jù)結構元組詳解

    python常用數(shù)據(jù)結構元組詳解

    這篇文章主要介紹了python常用數(shù)據(jù)結構元組詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 最新python 字符串數(shù)組互轉(zhuǎn)問題

    最新python 字符串數(shù)組互轉(zhuǎn)問題

    這篇文章主要介紹了最新python 字符串數(shù)組互轉(zhuǎn)問題,主要介紹了字符串轉(zhuǎn)list數(shù)組問題和list數(shù)組轉(zhuǎn)字符串問題,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Python實現(xiàn)多個視頻合成一個視頻的功能

    Python實現(xiàn)多個視頻合成一個視頻的功能

    這篇文章主要介紹了可以將多個視頻拼接為一個視頻的Python工具代碼,文中的代碼講解詳細,對我們學習Python有一定的幫助,快來跟隨小編一起學習一下吧
    2021-12-12
  • 在CMD窗口中調(diào)用python函數(shù)的實現(xiàn)

    在CMD窗口中調(diào)用python函數(shù)的實現(xiàn)

    本文主要介紹了在CMD窗口中調(diào)用python函數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Python Json數(shù)據(jù)文件操作原理解析

    Python Json數(shù)據(jù)文件操作原理解析

    這篇文章主要介紹了Python Json數(shù)據(jù)文件操作原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05

最新評論