91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python邊緣檢測之prewitt,sobel和laplace算子怎么寫

發布時間:2023-04-21 16:50:39 來源:億速云 閱讀:104 作者:iii 欄目:開發技術

本篇內容介紹了“Python邊緣檢測之prewitt,sobel和laplace算子怎么寫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

濾波算子簡介

ndimage中提供了卷積算法,并且建立在卷積之上,提供了三種邊緣檢測的濾波方案:prewitt, sobel以及laplace。

在convolve中列舉了一個用于邊緣檢測的濾波算子,統一維度后,其x xx和y yy向的梯度算子分別寫為

Python邊緣檢測之prewitt,sobel和laplace算子怎么寫

此即prewitt算子。

Sobel算子為Prewitt增添了中心值的權重,記為

Python邊緣檢測之prewitt,sobel和laplace算子怎么寫

這兩種邊緣檢測算子,均適用于某一個方向,ndimage還提供了lapace算子,其本質是二階微分算子,其3×3卷積模板可表示為

Python邊緣檢測之prewitt,sobel和laplace算子怎么寫

具體實現

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表示卷積過程中對邊緣效應的彌補方案,設待濾波數組為a b c d,則在不同的模式下,對邊緣進行如下填充


左側填充數據右側填充
reflectd c b aa b c dd c b a
constantk k k ka b c dk k k k
nearesta a a aa b c dd d d d
mirrord c ba b c dc b a
wrapa b c da b c da b c d

測試

接下來測試一下

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()

為了看上去更加簡潔,代碼中將原圖、prewitt濾波、sobel濾波以及laplace濾波封裝在了一個字典中。其中origin表示原始圖像,對應的函數是一個lambda表達式。

在繪圖時,通過將cmap映射到plt.cm.gray,使得繪圖之后表現為灰度圖像。

效果如下

Python邊緣檢測之prewitt,sobel和laplace算子怎么寫

“Python邊緣檢測之prewitt,sobel和laplace算子怎么寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴塘县| 连州市| 巴中市| 乌鲁木齐市| 东兰县| 锡林郭勒盟| 庄浪县| 辽宁省| 桦甸市| 什邡市| 佛山市| 奉新县| 齐河县| 宜城市| 台中市| 旬邑县| 池州市| 张家港市| 正蓝旗| 靖远县| 瑞丽市| 将乐县| 邳州市| 潢川县| 遂宁市| 宝鸡市| 葵青区| 锦州市| 合肥市| 安义县| 连江县| 五河县| 盖州市| 扶余县| 望江县| 穆棱市| 九台市| 津南区| 麻栗坡县| 华亭县| 纳雍县|