亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python數(shù)字圖像處理之基本形態(tài)學(xué)濾波

 更新時(shí)間:2022年06月29日 08:48:56   作者:denny402  
這篇文章主要為大家介紹了python數(shù)字圖像處理之基本形態(tài)學(xué)濾波示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

對(duì)圖像進(jìn)行形態(tài)學(xué)變換。變換對(duì)象一般為灰度圖或二值圖,功能函數(shù)放在morphology子模塊內(nèi)。

1、膨脹(dilation)

原理:一般對(duì)二值圖像進(jìn)行操作。找到像素值為1的點(diǎn),將它的鄰近像素點(diǎn)都設(shè)置成這個(gè)值。1值表示白,0值表示黑,因此膨脹操作可以擴(kuò)大白色值范圍,壓縮黑色值范圍。一般用來(lái)擴(kuò)充邊緣或填充小的孔洞。

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

from skimage import data
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=data.checkerboard()
dst1=sm.dilation(img,sm.square(5))  #用邊長(zhǎng)為5的正方形濾波器進(jìn)行膨脹濾波
dst2=sm.dilation(img,sm.square(15))  #用邊長(zhǎng)為15的正方形濾波器進(jìn)行膨脹濾波
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)

分別用邊長(zhǎng)為5或15的正方形濾波器對(duì)棋盤圖片進(jìn)行膨脹操作,結(jié)果如下:

可見(jiàn)濾波器的大小,對(duì)操作結(jié)果的影響非常大。一般設(shè)置為奇數(shù)。

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

morphology.square: 正方形

morphology.disk:  平面圓形

morphology.ball: 球形

morphology.cube: 立方體形

morphology.diamond: 鉆石形

morphology.rectangle: 矩形

morphology.star: 星形

morphology.octagon: 八角形

morphology.octahedron: 八面體

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

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

用此函數(shù)比處理灰度圖像要快。

2、腐蝕(erosion)

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

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

from skimage import data
import skimage.morphology as sm
import matplotlib.pyplot as plt
img=data.checkerboard()
dst1=sm.erosion(img,sm.square(5))  #用邊長(zhǎng)為5的正方形濾波器進(jìn)行膨脹濾波
dst2=sm.erosion(img,sm.square(25))  #用邊長(zhǎng)為25的正方形濾波器進(jìn)行膨脹濾波
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)

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

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

用此函數(shù)比處理灰度圖像要快。

3、開(kāi)運(yùn)算(opening)

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

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

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))  #用邊長(zhǎng)為9的圓形濾波器進(jìn)行膨脹濾波
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')

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

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

用此函數(shù)比處理灰度圖像要快。

4、閉運(yùn)算(closing)

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

先膨脹再腐蝕,可用來(lái)填充孔洞。

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))  #用邊長(zhǎng)為5的圓形濾波器進(jìn)行膨脹濾波
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')

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

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

用此函數(shù)比處理灰度圖像要快。

5、白帽(white-tophat)

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

將原圖像減去它的開(kāi)運(yùn)算值,返回比結(jié)構(gòu)化元素小的白點(diǎn)

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

6、黑帽(black-tophat)

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

selem表示結(jié)構(gòu)元素,用于設(shè)定局部區(qū)域的形狀和大小。

將原圖像減去它的閉運(yùn)算值,返回比結(jié)構(gòu)化元素小的黑點(diǎn),且將這些黑點(diǎn)反色。

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數(shù)字圖像處理之基本形態(tài)學(xué)濾波的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)字圖像形態(tài)學(xué)濾波的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Matlab常見(jiàn)最優(yōu)化方法的原理和深度分析

    Matlab常見(jiàn)最優(yōu)化方法的原理和深度分析

    這篇文章主要介紹了Matlab常見(jiàn)最優(yōu)化方法的原理和深度分析,matlab只是個(gè)軟件,用來(lái)完成機(jī)械的計(jì)算,而如何安排這些計(jì)算,需要用戶掌握最基本的數(shù)學(xué)概念,需要的朋友可以參考下
    2023-07-07
  • 淺談anaconda python 版本對(duì)應(yīng)關(guān)系

    淺談anaconda python 版本對(duì)應(yīng)關(guān)系

    這篇文章主要介紹了淺談anaconda python 版本對(duì)應(yīng)關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python中的編碼知識(shí)整理匯總

    python中的編碼知識(shí)整理匯總

    這篇文章主要介紹了python中的編碼知識(shí)整理匯總的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • python 如何引入?yún)f(xié)程和原理分析

    python 如何引入?yún)f(xié)程和原理分析

    這篇文章主要介紹了python 如何引入?yún)f(xié)程和原理分析,幫助大家更好得理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • 在Python中操作字符串之startswith()方法的使用

    在Python中操作字符串之startswith()方法的使用

    這篇文章主要介紹了在Python中操作字符串之startswith()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 談?wù)刾ython垃圾回收機(jī)制

    談?wù)刾ython垃圾回收機(jī)制

    這篇文章主要介紹了python垃圾回收機(jī)制的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • Django的HttpRequest和HttpResponse對(duì)象詳解

    Django的HttpRequest和HttpResponse對(duì)象詳解

    這篇文章主要介紹了Django的HttpRequest和HttpResponse對(duì)象,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 11月編程語(yǔ)言排行榜 Python逆襲C#上升到第4

    11月編程語(yǔ)言排行榜 Python逆襲C#上升到第4

    11月編程語(yǔ)言排行榜 Python逆襲C#上升到第4,無(wú)論在哪個(gè)榜單中 Python 都是保持著非同尋常的增長(zhǎng)速度,為什么Python增長(zhǎng)的這么快
    2017-11-11
  • 詳解Django中的form庫(kù)的使用

    詳解Django中的form庫(kù)的使用

    這篇文章主要介紹了詳解Django中的form庫(kù)的使用,Django是最為著名的Python編程框架,需要的朋友可以參考下
    2015-07-07
  • Python一行代碼可直接使用最全盤點(diǎn)

    Python一行代碼可直接使用最全盤點(diǎn)

    本文盤點(diǎn)一些Python中常用的一行(不限于一行)代碼,可直接用在日常編碼實(shí)踐中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論