課件12形態(tài)學圖像處理_第1頁
課件12形態(tài)學圖像處理_第2頁
課件12形態(tài)學圖像處理_第3頁
課件12形態(tài)學圖像處理_第4頁
課件12形態(tài)學圖像處理_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、形態(tài)學圖像處理形態(tài)學圖像處理n形態(tài)學即數學形態(tài)學(Mathematical Morphology)主要用于從圖像中提取對表達和描繪區(qū)域形狀有意義的圖像分量。n基本思想:用具有一定形態(tài)的結構元素去度量和提取圖像中的對應形狀以達到對圖像分析和識別的目的n 形態(tài)學圖像處理的數學基礎和所用語言是集合論n形態(tài)學圖像處理表現為一種鄰域運算形式;n一種特殊定義的鄰域稱之為“結構元素”(Structure Element),在每個像素位置上它與二值圖像對應的區(qū)域進行特定的邏輯運算,邏輯運算的結果為輸出圖像的相應像素。n形態(tài)學運算的效果取決于結構元素的大小、內容以及邏輯運算的性質。 1. 基礎知識基礎知識n在形

2、態(tài)學運算中,把一幅圖像或者感興趣的區(qū)域稱為集合,用大寫字母A,B,C表示;元素通常指一個單個的像素,該像素坐標位置用z=(z1, z2)表示。n1、集合與元素n屬于:對于某一集合(圖像區(qū)域)A,若點 a 在A內,則稱 a 為A的元素,a 屬于 A,記為aA;反之,若點 b 不屬于A,記為b A。n2、集合與集合n并集:C=z|zA or zB,記為C = AB,即A與B的并集C包含集合A與集合B的所有元素。n交集:C=z|zA and zB,記為C = AB,即A與B的交集C包含同時屬于集合A與集合B的所有元素。n補集: =z|z A,即A的補集是不包含A的所有元素組成的集合。n差集:A-B=

3、z|zA, z B,即A與B的差由屬于A 而不屬于B的元素構成。n包含:集合A的每一個元素都是集合B的元素,則稱A為B的子集,記為A BcA二值形態(tài)學二值形態(tài)學n3、反射和平移n反射:又名對稱,定義為 即關于原集合原點對稱n平移:將集合B移到點z=(z1, z2),定義為n4、結構元素n設有兩幅圖A,S。若A是被處理對象,而S是用來處理A的,則稱S為結構元素。Bb,| bzzBBb ,|)(zbxxBz集合的反射顯示 ,( ),zBw wb bBAc caz aA n對一個給定的目標圖像X和一個結構元素 S,將S在圖像上移動。在每一個當前位置x,S+x只有三種可能的狀態(tài)n第一種情形說明S+x與

4、X相關最大,n第二種情形說明S+x與X不相關,n而第三種情形說明S+x與X只是部分相關n1、腐蝕及其實現n對于集合A和S,使用S對A進行腐蝕,記為A S,定義為:n如果當S的原點移到z點時S能夠完全包含于A中,則所有這樣的z點構成的集合即為S對A的腐蝕圖像。n腐蝕運算的結果不僅與結構元素的形狀(矩形、圓形、菱形等)選取有關,而且還與原點位置的選取有關。 2. 二值圖像中形態(tài)學運算二值圖像中形態(tài)學運算)( |ASzSAz腐蝕運算的示例腐蝕運算的示例n圖(a)中的陰影部分為集合X,圖(b)中的中的陰影部分為結構元素S,而圖(c)中黑色部分給出了腐蝕結果。n由圖可見,腐蝕將圖像(區(qū)域)收縮小了。n把

5、B的中心點與X上的點一一對應,如果B上的所有點都包含在X的范圍內,則該點保留,否則刪除。nmatlab中與腐蝕相關的兩個函數為n(1) imeroden I2=imerode(I, SE)nI為原始圖像,對應為二值圖像nSE為由strel函數返回的自定義或預設的結構元素對象n(2) strelnstrel函數為形態(tài)學運算生成結構元素SE,當生成供二值形態(tài)使用的結構元素時,調用形式為:n SE= strel(shape, parameters)n常用平坦結構元素的shape參數nI=imread(circles.png);nse=strel(square,3); % 33的正方形結構元素nIb=

6、imerode(I,se); % 腐蝕nse1=strel(0 1 0;1 1 1;0 1 0); % 33的十字結構元素nIc=imerode(I,se1);nse2=strel(square,5); % 55的正方形結構元素nId=imerode(I,se2);nse3=strel(disk,3); % 33的圓形結構元素nIe=imerode(I,se3);nse4=strel(disk,5); % 55的圓形結構元素nIf=imerode(I,se4);nsubplot(2,3,1),imshow(I),title(原圖像);nsubplot(2,3,2),imshow(Ib);nti

7、tle(33的正方形結構元素腐蝕);nsubplot(2,3,3),imshow(Ic);ntitle(33的十字結構元素腐蝕);nsubplot(2,3,4),imshow(Id);ntitle(55的正方形結構元素腐蝕);nsubplot(2,3,5),imshow(Ie);ntitle(33的圓形結構元素腐蝕);nsubplot(2,3,6),imshow(If);ntitle(55的圓形結構元素腐蝕);不同的結構元素對腐蝕產生的影響n腐蝕的作用能夠消融物體的邊界,而具體的腐蝕結果與圖像本身和結構元素的形狀有關。n如果物體整體上大于結構元素,腐蝕的結果使物體變“瘦”一圈,而這一圈的大小是

8、由結構元素決定的;n如果物體本身小于結構元素,則腐蝕后的圖像中物體將完全消失;n如果物體僅有部分區(qū)域小于結構元素,則腐蝕后物體會在細連通處斷裂,分離為兩部分。n2、膨脹及其實現n對于集合A和S,使用S對A進行膨脹,記為A S,定義為:n設原有圖像S,當其自身原點平移至z點時S相對于自身的原點的映像和A有公共的交集,即映像和A至少有一個點是重疊的,則所有這樣的z點構成的集合為S對A的膨脹圖像。 |( )zASzSAn算法過程如下:將結構元素B的原點移至集合A的某一點,將結構元素中點的坐標與集合A中該點坐標相加,得到對集合中一點的膨脹運算結果.對集合對集合中所有元素重復該過程 1 1 1 1 1

9、1 1 1 1 1 2 1 2 1 1 2 1 2 1 1 2 1 1 2 2 1 1 1 1 1 1 (a)目標圖像A (b)結構元素B (c)結構元素 B(d)膨脹運算結果圖像 nimdilate函數用于圖像膨脹n I2 = imdilate(I, SE)nI為輸入原始圖像nSE為由strel函數返回的自定義或預設的結構元素對象nI2為膨脹后的輸出圖像n膨脹的作用與腐蝕相反,膨脹能使物體邊界擴大,具體的膨脹結果與圖像本身和結構元素的形狀有關。n膨脹通常用于將圖像中原本斷裂的同一物體橋接起來。bw=imread(text.png);se=strel(line,11,90); % 生成線性結構

10、元素bw2=imdilate(bw,se); % 膨脹subplot(1,2,1),imshow(bw);title(原始圖像);subplot(1,2,2),imshow(bw2);title(膨脹后的圖像);二值圖像的膨脹SE=3*3方形結構單元 原圖 SE膨脹后圖像 SE腐蝕后圖像不同結構單元對腐蝕和膨脹的影響不同結構單元對腐蝕和膨脹的影響 原圖 SE膨脹后圖像 SE腐蝕后圖像SE=5*5方形結構單元不同結構單元對腐蝕和膨脹的影響不同結構單元對腐蝕和膨脹的影響B(tài)ABAcc)(BABAcc)( 膨脹和腐蝕運算的對偶性可分別表示為:膨脹和腐蝕運算的對偶性可分別表示為: 對目標圖像的膨脹運算,

11、相當于對圖像背景的腐蝕運算操作;對目標圖像的腐蝕運算,相當于對圖像背景的膨脹運算操作。 n3、開運算及其實現n開運算和閉運算都由膨脹和腐蝕復合而成,開運算是先腐蝕后膨脹,而閉運算是先膨脹后腐蝕。n使用結構元素S對A進行開運算,記為A S,可表示為:()A SA SSo一般來說,開運算可以使圖像輪廓變得光滑,還能使狹窄的連接斷開和消除細毛刺。on以相同的結構元素先后調用imerode和imdilate即可實現開運算。Matlab也直接提供了開運算函數imopen:n I2 = imopen(I, SE)nI為原始圖像nSE是由strel函數返回的自定義或預設的結構元素I=imread(circl

12、es.png);se=strel(square,6);Id=imerode(I,se);IO=imopen(I,se);subplot(1,3,1),imshow(I);title(原圖像);subplot(1,3,2),imshow(Id);title(66的正方形結構元素腐蝕);subplot(1,3,3),imshow(IO);title(66的正方形結構元素開運算);相同結構元素的腐蝕與開運算比較圖I=imread(circuit.tif);thresh=graythresh(I); % 求最優(yōu)閾值bw1=im2bw(I,thresh); % 灰度圖像變?yōu)槎祱D像se=strel(re

13、ctangle,20,10); % 定義矩形結構元素Id=imerode(bw1,se); % 腐蝕運算IO=imopen(bw1,se); % 開運算subplot(1,3,1),imshow(bw1); title(原圖像);subplot(1,3,2),imshow(Id); title(矩形結構元素腐蝕);subplot(1,3,3),imshow(IO); title(矩形結構元素開運算);矩形結構元素腐蝕與開運算n4、閉運算及其實現n使用結構S對A進行閉運算,記為AS,表示為:n含義:先用結構元素S對A進行膨脹,然后用S對膨脹結果進行腐蝕n閉運算同樣可以使輪廓變得平滑,但與開運算相

14、反,它通常能夠彌合狹窄的間斷,填充小的洞孔。()A SASSn以相同的結構元素先后調用imdilate和imerode即可實現閉操作,也可直接調用閉運算函數imclosen對于多次應用開運算和閉運算和只進行一次運算的效果相同BABB)(A ,)(BABBAnI=imread(circles.png);nse=strel(disk,5); % 55的圓形結構元素nId=imdilate(I,se); % 膨脹nIC=imclose(I,se); % 閉運算nsubplot(1,3,1),imshow(I),title(原圖像);nsubplot(1,3,2),imshow(Id);ntitle(

15、55的圓形結構元素膨脹);nsubplot(1,3,3),imshow(IC);ntitle(55的圓形結構元素閉操作);相同結構元素的膨脹與閉操作的比較開閉運算的代數性質開閉運算的代數性質n對偶性 n擴展性(收縮性) n即開運算使原圖像縮小,而閉運算使原圖像擴大 3 . 二值圖像中形態(tài)學的應用二值圖像中形態(tài)學的應用n設有兩幅圖像A和B,如果AB ,那么稱B擊中A,其中 是空集合的符號;否則,如果AB= ,那么稱B擊不中A(a)B擊中A; (b)B擊不中A擊中或擊不中變換擊中或擊不中變換n擊中與擊不中變換用于某種形狀的精確定位,是一種形狀檢測的基本工具。n記為A S,可表示為:n其中, 且 ,

16、實際上S1代表S中感興趣的物體(要檢測的形狀)對應的集合,而S2對應S中背景部分對應的集合。(1)(2)cASA SAS12SSSS1S2n對二值圖像進行擊中擊不中操作的函數是bwhitmiss,調用方法是:n bw2=bwhitmiss(bw1, SE1,SE2)n bw1是輸入圖像n SE1是一個結構元素,它的值規(guī)定了保留像素值的鄰域;n SE2是一個結構元素,它的值規(guī)定了舍棄像素值的鄰域。bw2=bwhitmiss(bw1,SE1,SE2)等同于imerode(bw1, SE1) & imerode(bw1,SE2)4. 邊界提取與跟蹤邊界提取與跟蹤n1、邊界提取n對于二值圖像來

17、說,如果它的像素值為1,而鄰域中至少有一個像素值為0,則稱為邊界像素。n要在二值圖像中提取物體的邊界,可以將所有物體內部的點刪除(置為背景)。n具體是逐行掃描圖像,如果發(fā)現一個亮點(前景點)的8個鄰域都是亮點,則該點為內部點,在目標圖像中將其刪除。n邊界提取定義:n (A)= A(AB)n上式表示:先用B對A腐蝕,然后用A減去腐蝕得到的結果,B是結構元素。n實際上相當于采用一個33的結構元素對原圖像進行腐蝕,使得只有那些8個鄰域都有亮點的內部點被保留,再用原圖像減去腐蝕后的圖像,恰好刪除了內部點,保留了邊界像素。 物體A (b) 結構元素B (c) 用結構元素B腐蝕A (d) 物體A的邊界I=

18、imread(circles.png);se=strel(disk,3); % 33的圓形結構元素Id=imerode(I,se); % 腐蝕留下內部點Iout=I-Id; % 減去內部點留下邊界點subplot(1,2,1),imshow(I),title(原圖像);subplot(1,2,2),imshow(Iout);title(邊界圖像);用腐蝕的方法提取邊界nMatlab提供的邊界檢測函數:bwperimn bw2=bwperim(bw1)n bw2=bwperim(bw1,conn)nbw1輸入的二值圖像nconn規(guī)定了連通性,對于二值圖像來說,conn可以是4或者8,默認值為4。

19、nbw=imread(circles.png);nbw2=bwperim(bw,8);nsubplot(1,2,1),imshow(bw);title(原始圖像);nsubplot(1,2,2),imshow(bw2);title(邊界圖像);應用實例:人形上半身圖像側面輪廓提取n2、邊界跟蹤n為了依次紀錄下邊界上的各個像素,邊界跟蹤首先按照某種掃描規(guī)則找到目標物體邊界上的一個像素,而后以該像素為起點,根據某種順序(順時針或逆時針)依次找出物體邊界上的其余像素,直到又回到起點,完成整條邊界的跟蹤。n邊界跟蹤一般采用8鄰域,從最左邊開始按照順時針順序掃描。P0P1P2P3P4P5P6P7P8P9

20、P10P11P12P13P14p15P16P0掃描順序示意圖邊界跟蹤示意圖nP0點的確定:n(1) 按照行從上到下從左到右(或者按列從左到右從上到下)的順序,第一個不為0的點為P0,見圖(a)、圖(b)。n(2) 從任意一點開始,如果該像素的8-鄰域存在為0的點,則該像素為邊界像素,定義為P0,否則考察該像素左邊的像素,見圖(c)。圖(a) 水平掃描圖(b) 垂直掃描圖(c) 依次向左掃描5. 骨架提取骨架提取n為了把圖像目標縮小為直線而不改變圖像的主要結構,可以使用bwmorph函數來提取圖像中目標的骨架。調用方法如下:n bw2=bwmorph(bw,skel)n bw2=bwmorph(

21、bw,skel,n)n bw是輸入的二值圖像n skel是專門的形態(tài)學操作nn 是指該形態(tài)學操作執(zhí)行的次數,可以為無限次,直到圖像不發(fā)生變化為止。bw=imread(circles.png);bw1=bwperim(bw,8); % 邊界圖像bw2=bwmorph(bw,skel,inf); % 骨架圖像subplot(1,3,1),imshow(bw);title(原圖像);subplot(1,3,2),imshow(bw1);title(邊界圖像);subplot(1,3,3),imshow(bw2);title(骨架圖像);邊界與骨架的對比圖6. 區(qū)域填充區(qū)域填充n區(qū)域填充可視為邊界提取

22、的反過程,它是在已知邊界的情況下得到邊界包圍的整個區(qū)域的形態(tài)學技術。n已知某一8-連通邊界和邊界內的某個點,要求從該點開始填充整個邊界包圍的區(qū)域,這一過程稱為“種子”填充,填充的開始點稱為“種子”。n算法描述如下:n初始化:B0=種子點,A為要填充的邊界,S為填充結構元素n求出A的補集:n循環(huán):nUntil1()ciiBBSAiiBB 1cAnMatlab工具箱中使用imfill函數對二值圖像或者灰度圖像進行填充,調用方法如下:n bw2=imfill (bw, locations)n bw2=imfill (bw, holes)n I2 = imfill (I)n bw2=imfill (bw, locations, conn)nbw是二值圖像;nlocations規(guī)定了填充操作的起始點;nholes規(guī)定了填充二值圖像中的孔洞;nI指灰度圖像,即此函數可以填充灰度圖像;nconn規(guī)定了連通性,對于二值圖像來說可以為4或者8I=imread(coins.png);bw=im2bw(I); % 灰度圖像轉化為二值圖像bw1=imfill(bw,holes); % 填充subplot(1,2,1),imshow(bw); title(原始二值圖像);subplot(1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論