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

溫馨提示×

溫馨提示×

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

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

python之基本形態學濾波實例分析

發布時間:2022-06-29 09:43:07 來源:億速云 閱讀:233 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“python之基本形態學濾波實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python之基本形態學濾波實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

引言

對圖像進行形態學變換。變換對象一般為灰度圖或二值圖,功能函數放在morphology子模塊內。

1、膨脹(dilation)

原理:一般對二值圖像進行操作。找到像素值為1的點,將它的鄰近像素點都設置成這個值。1值表示白,0值表示黑,因此膨脹操作可以擴大白色值范圍,壓縮黑色值范圍。一般用來擴充邊緣或填充小的孔洞。

功能函數:skimage.morphology.dilation(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

from skimage import data
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=data.checkerboard()
dst1=sm.dilation(img,sm.square(5))  #用邊長為5的正方形濾波器進行膨脹濾波
dst2=sm.dilation(img,sm.square(15))  #用邊長為15的正方形濾波器進行膨脹濾波
plt.figure('morphology',figsize=(8,8))
plt.subplot(131)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.subplot(132)
plt.title('morphological image')
plt.imshow(dst1,plt.cm.gray)
plt.subplot(133)
plt.title('morphological image')
plt.imshow(dst2,plt.cm.gray)

分別用邊長為5或15的正方形濾波器對棋盤圖片進行膨脹操作,結果如下:

python之基本形態學濾波實例分析

可見濾波器的大小,對操作結果的影響非常大。一般設置為奇數。

除了正方形的濾波器外,濾波器的形狀還有一些,現列舉如下:

morphology.square: 正方形

morphology.disk:  平面圓形

morphology.ball: 球形

morphology.cube: 立方體形

morphology.diamond: 鉆石形

morphology.rectangle: 矩形

morphology.star: 星形

morphology.octagon: 八角形

morphology.octahedron: 八面體

注意,如果處理圖像為二值圖像(只有0和1兩個值),則可以調用:

skimage.morphology.binary_dilation(image, selem=None)

用此函數比處理灰度圖像要快。

2、腐蝕(erosion)

函數:skimage.morphology.erosion(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

和膨脹相反的操作,將0值擴充到鄰近像素。擴大黑色部分,減小白色部分。可用來提取骨干信息,去掉毛刺,去掉孤立的像素。

from skimage import data
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=data.checkerboard()
dst1=sm.erosion(img,sm.square(5))  #用邊長為5的正方形濾波器進行膨脹濾波
dst2=sm.erosion(img,sm.square(25))  #用邊長為25的正方形濾波器進行膨脹濾波
plt.figure('morphology',figsize=(8,8))
plt.subplot(131)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.subplot(132)
plt.title('morphological image')
plt.imshow(dst1,plt.cm.gray)
plt.subplot(133)
plt.title('morphological image')
plt.imshow(dst2,plt.cm.gray)

python之基本形態學濾波實例分析

注意,如果處理圖像為二值圖像(只有0和1兩個值),則可以調用:

skimage.morphology.binary_erosion(image, selem=None)

用此函數比處理灰度圖像要快。

3、開運算(opening)

函數:skimage.morphology.openning(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

先腐蝕再膨脹,可以消除小物體或小斑塊。

from skimage import io,color
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=color.rgb2gray(io.imread('d:/pic/mor.png'))
dst=sm.opening(img,sm.disk(9))  #用邊長為9的圓形濾波器進行膨脹濾波
plt.figure('morphology',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.axis('off')
plt.subplot(122)
plt.title('morphological image')
plt.imshow(dst,plt.cm.gray)
plt.axis('off')

python之基本形態學濾波實例分析

注意,如果處理圖像為二值圖像(只有0和1兩個值),則可以調用:

skimage.morphology.binary_opening(image, selem=None)

用此函數比處理灰度圖像要快。

4、閉運算(closing)

函數:skimage.morphology.closing(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

先膨脹再腐蝕,可用來填充孔洞。

from skimage import io,color
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=color.rgb2gray(io.imread('d:/pic/mor.png'))
dst=sm.closing(img,sm.disk(9))  #用邊長為5的圓形濾波器進行膨脹濾波
plt.figure('morphology',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.axis('off')
plt.subplot(122)
plt.title('morphological image')
plt.imshow(dst,plt.cm.gray)
plt.axis('off')

python之基本形態學濾波實例分析

注意,如果處理圖像為二值圖像(只有0和1兩個值),則可以調用:

skimage.morphology.binary_closing(image, selem=None)

用此函數比處理灰度圖像要快。

5、白帽(white-tophat)

函數:skimage.morphology.white_tophat(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

將原圖像減去它的開運算值,返回比結構化元素小的白點

from skimage import io,color
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=color.rgb2gray(io.imread('d:/pic/mor.png'))
dst=sm.white_tophat(img,sm.square(21))  
plt.figure('morphology',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.axis('off')
plt.subplot(122)
plt.title('morphological image')
plt.imshow(dst,plt.cm.gray)
plt.axis('off')

python之基本形態學濾波實例分析

6、黑帽(black-tophat)

函數:skimage.morphology.black_tophat(image, selem=None)

selem表示結構元素,用于設定局部區域的形狀和大小。

將原圖像減去它的閉運算值,返回比結構化元素小的黑點,且將這些黑點反色。

from skimage import io,color
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=color.rgb2gray(io.imread('d:/pic/mor.png'))
dst=sm.black_tophat(img,sm.square(21))  
plt.figure('morphology',figsize=(8,8))
plt.subplot(121)
plt.title('origin image')
plt.imshow(img,plt.cm.gray)
plt.axis('off')
plt.subplot(122)
plt.title('morphological image')
plt.imshow(dst,plt.cm.gray)
plt.axis('off')

python之基本形態學濾波實例分析

讀到這里,這篇“python之基本形態學濾波實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

富源县| 沈阳市| 尚志市| 邹城市| 吴桥县| 文昌市| 福清市| 徐闻县| 沐川县| 台北市| 岳普湖县| 东阳市| 大名县| 沁水县| 和硕县| 兰州市| 三亚市| 济宁市| 昌邑市| 江孜县| 霍州市| 莫力| 门头沟区| 铁岭市| 克山县| 图们市| 天台县| 扶余县| 容城县| 延长县| 惠来县| 缙云县| 永靖县| 于都县| 平山县| 建始县| 资溪县| 江口县| 青田县| 惠水县| 任丘市|