国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第九章 形態(tài)學圖像處理

這篇具有很好參考價值的文章主要介紹了第九章 形態(tài)學圖像處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

9形態(tài)學圖像處理

9.1預(yù)備知識

圖像形態(tài)學也叫數(shù)學形態(tài)學,是指一系列處理圖像形狀特征的圖像處理技術(shù),是一門建立在格倫和拓撲學基礎(chǔ)上的圖像分析學科,是數(shù)學形態(tài)學圖像處理的基本理論。其基本思想是利用一種特殊的結(jié)構(gòu)元來測量或提取輸入圖像中相應(yīng)的形狀或特征,以便進一步進行圖像分析和目標識別。形態(tài)學方法的基礎(chǔ)是集合論。
常見圖像形態(tài)學運算:腐蝕、膨脹、開運算、閉運算、骨架抽取、極線腐蝕、擊中擊不中變換、Top-hat變換、顆粒分析、流域變換、形態(tài)學梯度等。其中最基本的形態(tài)學操作是:膨脹(dilation)和腐蝕(erosion)兩種操作,腐蝕和膨脹的主要作用有:消除噪聲;分割出獨立的圖像元素,在圖像中連接相鄰的元素;尋找圖像中明顯的極大值或極小值區(qū);求出圖像的梯度等

不做特殊說明,輸入圖像為二值圖像。圖像中1是前景,0是背景。

構(gòu)元(Structuring Elements,SE)可以是任意形狀,SE中的的值可以是0或1。常見的結(jié)構(gòu)元有矩形和十字形。結(jié)構(gòu)元有一個錨點O,O一般定義為結(jié)構(gòu)元的中心(也可以自由定義位置)。如下圖所示是幾個不同形狀的結(jié)構(gòu)元,紫紅色區(qū)域為錨點O。
第九章 形態(tài)學圖像處理

整個結(jié)構(gòu)元我們可以使用一個 正方形的模板矩陣來表示,窗口大小wnd_size表示矩陣的寬高,模板數(shù)據(jù)元素值為0或者1,1表示結(jié)構(gòu)元中對應(yīng)元素要起作用。通過標記不同的元素值,我們可以使用模板矩陣來表示任意形狀的結(jié)構(gòu)元。

9.2腐蝕與膨脹

9.2.1腐蝕

表示為 A ? B A\ominus B A?B的B對A的腐蝕定義為: A ? B = { z ∣ ( B ) z ? A } A\ominus B=\left\{z\mid\left(B\right)_{z}\subseteq A\right\} A?B={z(B)z??A}
表面上,該式指出B對A的腐蝕是一個用z平移的B包含在A中的所有的點z的集合。假定集合B是一個結(jié)構(gòu)元,因為B必須包含在A中這一陳述等價于B不與背景共享任何公共元素,故我們可以將腐蝕表達為如下的等價形式: A ? B = { z ∣ ( B ) z ∩ A c = ? } A\ominus B=\left\{z\mid\left(B\right)_z\cap A^c=\varnothing\right\} A?B={z(B)z?Ac=?}

import cv2
import numpy as np
import matplotlib.pyplot as plt
import random
import math
def cv2_show(*args):
    for ttt in range(len(args)):
        img=args[ttt]
        cv2.imshow('img', img)
        cv2.waitKey(0)    
        cv2.destroyAllWindows() 

def plt_show(*args):
    plt.figure(figsize=(12, 6)) 
    for ttt in range(len(args)):
        img = args[ttt]
        if (len(img.shape) == 3):
            img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
        elif (len(img.shape) == 2):
            img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
        plt.subplot(231+ttt), plt.imshow(img)

img=cv2.imread('dige.png',0)
kernel = np.ones((3,3),np.uint8) 
num=[[]]*6
for i in range(6):
    num[i] = cv2.erode(img,kernel,iterations = i)
plt_show(num[0],num[1],num[2],num[3],num[4],num[5])

第九章 形態(tài)學圖像處理

可看出腐蝕操作使得線條變細直至消失

9.2.2膨脹

表示為 A ⊕ B A\oplus B AB的B對A的膨脹定義為 A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ? } A\oplus B=\left\{z\mid(\hat{B})_{z}\cap A\neq\emptyset\right\} AB={z(B^)z?A=?}
這個公式是以B關(guān)于它的原點的映像,并且以z對映像進行平移為基礎(chǔ)的。B對A的膨脹是所有位移z的集合,這樣,B和A至少有一個元素是重疊的。根據(jù)這種解釋,式子可以等價地寫為 A ⊕ B = { z ∣ [ ( B ^ ) z ∩ A ] ? A } A\oplus B=\left\{z\mid[(\hat{B})_z\cap A]\subseteq A\right\} AB={z[(B^)z?A]?A}

img=cv2.imread('dige.png',0)
kernel = np.ones((3,3),np.uint8) 
num=[[]]*6
for i in range(6):
    num[i] = cv2.dilate(img,kernel,iterations = i)
plt_show(num[0],num[1],num[2],num[3],num[4],num[5])

第九章 形態(tài)學圖像處理

可看出線條不斷變粗

9.2.3對偶性

膨脹和腐蝕彼此關(guān)于集合求補運算和反射運算是對偶的,即 ( A ? B ) c = A c ⊕ B ^ (A\ominus B)^c=A^c\oplus\hat{B} (A?B)c=AcB^ ( A ⊕ B ) c = A c ? B ^ \left(A\oplus B\right)^{c}= A^{c}\ominus \hat{B} (AB)c=Ac?B^

9.3開操作和閉操作

  • 開運算:先腐蝕,后膨脹
  • 閉運算:先膨脹,后腐蝕

結(jié)構(gòu)元B對集合A的開操作,表示為 A ° B A\circ B A°B,其定義如下: A ° B = ( A ? B ) ⊕ B A\circ B=(A\ominus B)\oplus B A°B=(A?B)B
結(jié)構(gòu)元B對集合A的閉操作,表示為 A ? B A\bullet B A?B,其定義如下: A ? B = ( A ⊕ B ) ? B A \bullet B=(A\oplus B)\ominus B A?B=(AB)?B

kernel = np.ones((5,5),np.uint8) 
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
plt_show(img,opening,closing)

第九章 形態(tài)學圖像處理

圖一為原圖,圖二和圖三分別為開操作和閉操作后的結(jié)果

9.4擊中或擊不中變換

  • 作用:在二值圖像中找到匹配
  • 公式: A ? ? B = ( A ? B 1 ) ∩ ( A c ? B 2 ) A\textcircled{*} B=(A\ominus B_1)\cap(A^c\ominus B_2) A??B=(A?B1?)(Ac?B2?)

9.5一些基本形態(tài)學方法

9.5.1邊界提取

原圖-腐蝕: β ( A ) = A ? ( A ? B ) \beta\left(A\right) =A-\left(A\ominus B\right) β(A)=A?(A?B)

a=cv2.imread('am.png',0)
kernel = np.ones((3,3),np.uint8) 
a2=cv2.erode(a,kernel,iterations = 1)
plt_show(a,a2,a-a2)

第九章 形態(tài)學圖像處理

如圖3所示,提取了邊界

9.5.2空洞填充

填充公式: X k = ( X k ? 1 ⊕ B ) ∩ A c k = 1 , 2 , 3 , ? X_{k}=(X_{k-1}\oplus B)\cap A^c\quad k=1,2,3,\cdots Xk?=(Xk?1?B)Ack=1,2,3,?

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt

img = cv.imread("dong.png")

# 二值化
imgray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
imgray[imgray < 100] = 0
imgray[imgray >= 100] = 255

# 原圖取補得到MASK圖像
mask = 255 - imgray

# 構(gòu)造Marker圖像
marker = np.zeros_like(imgray)
marker[0, :] = 255
marker[-1, :] = 255
marker[:, 0] = 255
marker[:, -1] = 255
marker_0 = marker.copy()

# 形態(tài)學重建
SE = cv.getStructuringElement(shape=cv.MORPH_CROSS, ksize=(3, 3))
while True:
    marker_pre = marker
    dilation = cv.dilate(marker, kernel=SE)
    marker = np.min((dilation, mask), axis=0)
    if (marker_pre == marker).all():
        break
dst = 255 - marker
filling = dst - imgray

# 顯示
plt.figure(figsize=(12, 6))  # width * height
plt.subplot(2, 3, 1), plt.imshow(imgray, cmap='gray'), plt.title('src'), plt.axis("off")
plt.subplot(2, 3, 2), plt.imshow(mask, cmap='gray'), plt.title('Mask'), plt.axis("off")
plt.subplot(2, 3, 3), plt.imshow(marker_0, cmap='gray'), plt.title('Marker 0'), plt.axis("off")
plt.subplot(2, 3, 4), plt.imshow(marker, cmap='gray'), plt.title('Marker'), plt.axis("off")
plt.subplot(2, 3, 5), plt.imshow(dst, cmap='gray'), plt.title('dst'), plt.axis("off")
plt.subplot(2, 3, 6), plt.imshow(filling, cmap='gray'), plt.title('Holes'), plt.axis("off")
plt.show()

第九章 形態(tài)學圖像處理

圖5為空洞填充效果圖

9.5.3連通分量的提取

從二值圖像中提取連通分量是許多自動圖像分析應(yīng)用中的核心。令A(yù)是包含一個或多個連通分量的集合,并形成一個陣列X。(該陣列的大小與包含A的陣列的大小相同).除了在對應(yīng)于A中每個連通分量中的一個點的已知的每一個位置處我們已置為1(前景值)外,該陣列的所有其他元素均為0(背景值)。如下迭代過程可完成這一目的:$ X k = ( X k ? 1 ⊕ B ) ∩ A k = 1 , 2 , 3 , ? X_k=(X_{k-1}\oplus B)\cap A\quad k=1,2,3,\cdots Xk?=(Xk?1?B)Ak=1,2,3,?

9.5.4凸殼

如果在集合A內(nèi)連接任意兩個點的直線段都在A的內(nèi)部、則稱集合A是凸形的。任意集合S的凸殼H是包含于S的最小凸集。集合差H-S稱為S的凸缺。凸殼和凸缺對于物體描繪是很有用的。這里,我們介紹一種獲得集合A的凸殼C(A)的簡單形態(tài)學算法。
B i , i = 1 , 2 , 3 , 4 B^i,i= 1,2,3,4 Bi,i=1,2,3,4表示下圖中的4個結(jié)構(gòu)元。這個過程可通過執(zhí)行下式實現(xiàn): X k i = ( X k ? 1 ? ? B i ) ∪ A i = 1 , 2 , 3 , 4 和 k = 1 , 2 , 3 , ? X_{k}^{i}=(X_{k-1}{\textcircled{*}}B^{i})\cup A \quad i=1,2,3,4 和 k=1,2,3,\cdots Xki?=(Xk?1???Bi)Ai=1,2,3,4k=1,2,3,?
其中 X 0 i = A X_0^i=A X0i?=A。當該過程收斂時(即當 X k i = X k ? 1 i X_k^i=X_{k-1}^i Xki?=Xk?1i?時),我們令 D i = X k i D^i=X^i_k Di=Xki?。則A 的凸殼為 C ( A ) = ? i = 1 4 D i C({A})=\bigcup_{i=1}^4D^i C(A)=i=1?4?Di
第九章 形態(tài)學圖像處理

9.5.5細化

定義: A ? B = A ? ( A ? ? B ) = A ∩ ( A ? ? B ) C A\otimes B=A-(A\textcircled{*} B)=A\cap(A\textcircled{*} B)^{C} A?B=A?(A??B)=A(A??B)C

9.5.6粗化

定義: A ? B = A ∪ ( A ? ? B ) A\bullet B=A\cup(A\textcircled{*} B) A?B=A(A??B)

9.6灰度級形態(tài)學

9.6.3一些基本的形態(tài)學算法

形態(tài)學梯度:膨脹-腐蝕

img=cv2.imread('am.png',0)
kernel = np.ones((3,3),np.uint8) 
dilate = cv2.dilate(img,kernel,iterations = 1)
erosion = cv2.erode(img,kernel,iterations = 1)
img2=dilate-erosion
plt_show(img,dilate,erosion,img2)

第九章 形態(tài)學圖像處理

上圖中,(膨脹-腐蝕)可得出梯度(最后一幅圖)

禮帽與黑帽

  • 禮帽 = 原始輸入-開運算結(jié)果(取’刺’)
  • 黑帽 = 閉運算-原始輸入(取’整體’)
img = cv2.imread('dige.png')
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, np.ones((7,7),np.uint8) )
blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, np.ones((15,15),np.uint8) )
plt_show(img,tophat,blackhat)

第九章 形態(tài)學圖像處理文章來源地址http://www.zghlxwxcb.cn/news/detail-488337.html

到了這里,關(guān)于第九章 形態(tài)學圖像處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 《數(shù)字圖像處理-OpenCV/Python》連載:形態(tài)學圖像處理

    《數(shù)字圖像處理-OpenCV/Python》連載:形態(tài)學圖像處理

    本書京東 優(yōu)惠購書鏈接 https://item.jd.com/14098452.html 本書CSDN 獨家連載專欄 https://blog.csdn.net/youcans/category_12418787.html 形態(tài)學圖像處理是基于形狀的圖像處理,基本思想是利用各種形狀的結(jié)構(gòu)元進行形態(tài)學運算,從圖像中提取表達和描繪區(qū)域形狀的結(jié)構(gòu)信息。形態(tài)學運算的數(shù)學原

    2024年02月19日
    瀏覽(113)
  • python數(shù)字圖像處理基礎(chǔ)(四)——圖像平滑處理、形態(tài)學操作、圖像梯度

    python數(shù)字圖像處理基礎(chǔ)(四)——圖像平滑處理、形態(tài)學操作、圖像梯度

    讓有噪音點(圖像上顯得突兀的像素點)的圖像變得更加自然順眼 1.均值濾波 blur() 根據(jù)核的大小(rowcol),每個像素值就等于以此像素為中心的周圍rowcol個像素的平均值。 核大一點,顯然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框濾波 boxFilter() normalize=true的時候,效果同

    2024年01月18日
    瀏覽(56)
  • 圖像處理技巧形態(tài)學濾波之腐蝕操作

    圖像處理技巧形態(tài)學濾波之腐蝕操作

    歡迎回來,我的圖像處理愛好者們!今天,讓我們深入研究圖像處理領(lǐng)域中的形態(tài)學計算。這些非線性的圖像處理技術(shù)允許我們操縱圖像中對象的形狀和結(jié)構(gòu)。在本系列中,我們將依次介紹四種基本的形態(tài)學操作:腐蝕、膨脹、開操作和閉操作。 閑話少說,我們直接開始吧!

    2024年02月13日
    瀏覽(30)
  • OpenCV圖像處理學習十,圖像的形態(tài)學操作——膨脹腐蝕

    OpenCV圖像處理學習十,圖像的形態(tài)學操作——膨脹腐蝕

    一.形態(tài)學操作概念 圖像形態(tài)學操作是指基于形狀的一系列圖像處理操作的合集,主要是基于集合論基礎(chǔ)上的形態(tài)學數(shù)學對圖像進行處理。 形態(tài)學有四個基本操作:腐蝕、膨脹、開操作、閉操作,膨脹與腐蝕是圖像處理中最常用的形態(tài)學操作手段。 二.形態(tài)學操作-膨脹 跟卷積

    2024年02月05日
    瀏覽(24)
  • 簡要介紹 | 基于Python的圖像形態(tài)學處理概述

    簡要介紹 | 基于Python的圖像形態(tài)學處理概述

    注1:本文系“簡要介紹”系列之一,僅從概念上對基于Python的圖像形態(tài)學處理進行非常簡要的介紹,不適合用于深入和詳細的了解。 Digital terrain models from airborne laser scanning for the automatic extraction of natural and anthropogenic linear structures In: Geomorphological Mapping: a professional handbook of

    2024年02月10日
    瀏覽(19)
  • 【計算機視覺】圖像處理算法(形態(tài)學濾波篇)

    【計算機視覺】圖像處理算法(形態(tài)學濾波篇)

    來源:《OpenCV3編程入門》,懷念毛星云大佬??? 說明: 本系列重點關(guān)注各種圖像處理算法的原理、作用和對比 數(shù)學形態(tài)學的概念: 數(shù)學形態(tài)學(Mathematical morphology)是立在格論和拓撲學基礎(chǔ)之上的圖像分析學科,足數(shù)學形態(tài)學閣像處現(xiàn)的基本理論。其基本的運算包括:二值腐

    2024年03月10日
    瀏覽(29)
  • OpenCV基本圖像處理操作(一)——圖像基本操作與形態(tài)學操作

    OpenCV基本圖像處理操作(一)——圖像基本操作與形態(tài)學操作

    圖像顯示 轉(zhuǎn)hsv圖像 顏色表示為三個組成部分:色調(diào)(Hue)、飽和度(Saturation)和亮度(Value)。常用于圖像處理中,因為它允許調(diào)整顏色的感知特性,如色彩和亮度,這些在RGB顏色模型中不那么直觀。 HSV模型特別適用于任務(wù)如圖像分割和對象追蹤,因為它可以更好地處理光

    2024年04月22日
    瀏覽(165)
  • 圖像處理基礎(chǔ)篇-形態(tài)學處理-邊緣檢測(matlab仿真與圖像處理系列第4期)

    圖像處理方面的老師,第一天學習以下內(nèi)容和代碼: 圖像讀取和顯示:在Matlab中,可以使用imread函數(shù)讀取圖像,并使用imshow函數(shù)顯示圖像。以下是一個簡單的示例代碼: 圖像濾波:濾波是圖像處理中常用的一種技術(shù),可以用來去除噪聲、平滑圖像等。以下是一些常見的濾波

    2024年02月11日
    瀏覽(17)
  • Python-OpenCV中的圖像處理-形態(tài)學轉(zhuǎn)換

    Python-OpenCV中的圖像處理-形態(tài)學轉(zhuǎn)換

    形態(tài)學操作:腐蝕,膨脹,開運算,閉運算,形態(tài)學梯度,禮帽,黑帽等 主要涉及函數(shù):cv2.erode(), cv2.dilate(), cv2.morphologyEx() 原理:形態(tài)學操作是根據(jù)圖像形狀進行的簡單操作。一般情況下對二值化圖像進行的操作。需要輸入兩個參數(shù),一個是原始圖像,第二個被稱為結(jié)構(gòu)化

    2024年02月13日
    瀏覽(24)
  • 基于圖像形態(tài)學處理的目標幾何形狀檢測算法matlab仿真

    基于圖像形態(tài)學處理的目標幾何形狀檢測算法matlab仿真

    目錄 1.算法運行效果圖預(yù)覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 ? ? matlab2022a ? ? ? ?目標幾何形狀檢測是計算機視覺領(lǐng)域中的重要任務(wù)之一,旨在從圖像中自動識別和定位不同的幾何形狀,例如矩形、圓形、三角形等。這些形狀檢測在許

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包