Python邊緣檢測(cè)之prewitt,sobel和laplace算子詳解
濾波算子簡(jiǎn)介
ndimage中提供了卷積算法,并且建立在卷積之上,提供了三種邊緣檢測(cè)的濾波方案:prewitt, sobel以及l(fā)aplace。
在convolve中列舉了一個(gè)用于邊緣檢測(cè)的濾波算子,統(tǒng)一維度后,其x xx和y yy向的梯度算子分別寫為
此即prewitt
算子。
Sobel算子為Prewitt增添了中心值的權(quán)重,記為
這兩種邊緣檢測(cè)算子,均適用于某一個(gè)方向,ndimage還提供了lapace算子,其本質(zhì)是二階微分算子,其3×3卷積模板可表示為
具體實(shí)現(xiàn)
ndimage
封裝的這三種卷積濾波算法,定義如下
prewitt(input, axis=-1, output=None, mode='reflect', cval=0.0) sobel(input, axis=-1, output=None, mode='reflect', cval=0.0) laplace(input, output=None, mode='reflect', cval=0.0)
其中,mode
表示卷積過(guò)程中對(duì)邊緣效應(yīng)的彌補(bǔ)方案,設(shè)待濾波數(shù)組為a b c d
,則在不同的模式下,對(duì)邊緣進(jìn)行如下填充
左側(cè)填充 | 數(shù)據(jù) | 右側(cè)填充 | |
---|---|---|---|
reflect | d c b a | a b c d | d c b a |
constant | k k k k | a b c d | k k k k |
nearest | a a a a | a b c d | d d d d |
mirror | d c b | a b c d | c b a |
wrap | a b c d | a b c d | a b c d |
測(cè)試
接下來(lái)測(cè)試一下
from scipy.ndimage import prewitt, sobel, laplace from scipy.misc import ascent import matplotlib.pyplot as plt img = ascent() dct = { "origin" : lambda img:img, "prewitt" : prewitt, "sobel" : sobel, "laplace" : lambda img : abs(laplace(img)) } fig = plt.figure() for i,key in enumerate(dct): ax = fig.add_subplot(2,2,i+1) ax.imshow(dct[key](img), cmap=plt.cm.gray) plt.ylabel(key) plt.show()
為了看上去更加簡(jiǎn)潔,代碼中將原圖、prewitt濾波、sobel濾波以及l(fā)aplace濾波封裝在了一個(gè)字典中。其中origin
表示原始圖像,對(duì)應(yīng)的函數(shù)是一個(gè)lambda
表達(dá)式。
在繪圖時(shí),通過(guò)將cmap
映射到plt.cm.gray
,使得繪圖之后表現(xiàn)為灰度圖像。
效果如下
到此這篇關(guān)于Python邊緣檢測(cè)之prewitt,sobel和laplace算子詳解的文章就介紹到這了,更多相關(guān)Python邊緣檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的監(jiān)測(cè)服務(wù)器硬盤使用率腳本分享
這篇文章主要介紹了Python實(shí)現(xiàn)的監(jiān)測(cè)服務(wù)器硬盤使用率腳本分享,本文腳本適應(yīng)windows和linux系統(tǒng),需要的朋友可以參考下2014-11-11詳解python3中socket套接字的編碼問(wèn)題解決
本篇文章主要介紹了詳解python3中socket套接字的編碼問(wèn)題解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Python入門教程(四十一)Python的NumPy數(shù)組索引
這篇文章主要介紹了Python入門教程(四十一)Python的NumPy數(shù)組索引,數(shù)組索引是指使用方括號(hào)([])來(lái)索引數(shù)組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數(shù)和切片索引之外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引,需要的朋友可以參考下2023-05-05pycharm軟件實(shí)現(xiàn)設(shè)置自動(dòng)保存操作
這篇文章主要介紹了pycharm軟件實(shí)現(xiàn)設(shè)置自動(dòng)保存操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06完美解決在oj中Python的循環(huán)輸入問(wèn)題
今天小編就為大家分享一篇完美解決在oj中Python的循環(huán)輸入問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06在Python中使用Mako模版庫(kù)的簡(jiǎn)單教程
這篇文章主要介紹了在Python中使用Mako模版庫(kù)的簡(jiǎn)單教程,包括在Django或者Tornado框架中集成Mako的方法,需要的朋友可以參考下2015-04-04