




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)字圖像處理實(shí)驗(yàn)報(bào)告姓名 學(xué)號 專業(yè) 電子科學(xué)與工程學(xué)院實(shí)驗(yàn) 5一、 實(shí)驗(yàn)?zāi)康谋敬螌?shí)驗(yàn)的處理對象是二值圖像,關(guān)于二值圖像的處理運(yùn)算主要包括腐蝕和膨脹。它們是其他處理過程的主要運(yùn)算環(huán)節(jié)。開閉操作通過腐蝕和膨脹的不同順序組合,能夠使圖像平滑,開閉操作再組合能夠成噪聲濾波器。形態(tài)學(xué)中的擊中擊不中變換也應(yīng)用了腐蝕的運(yùn)算,用于判斷圖像中能否找到目標(biāo)結(jié)構(gòu),這在圖像細(xì)化中也得到了應(yīng)用。本次實(shí)驗(yàn)主要實(shí)現(xiàn):1 圖像的邊緣提取;2 在邊緣提取的基礎(chǔ)上實(shí)現(xiàn)區(qū)域填充;3 在區(qū)域填充的基礎(chǔ)上實(shí)現(xiàn)圖像細(xì)化;4 在圖像細(xì)化的基礎(chǔ)上實(shí)現(xiàn)圖像粗化。在Matlab軟件的自帶函數(shù)庫中其實(shí)本身就包含有以上處理過程的函數(shù),為了深入理解
2、每種處理過程的原理,本次實(shí)驗(yàn)所有運(yùn)算都自行編寫實(shí)現(xiàn)。二、 核心代碼及運(yùn)行后截圖主函數(shù):% 讀取圖像clear;clc;I = imread('onepiece.jpg');I = im2bw(I);% 轉(zhuǎn)換為二值圖像m,n = size(I); % 邊界提取f = im2bw(0,1,0;1,1,1;0,1,0);% 腐蝕用的結(jié)構(gòu)元素F = fs(I,f);BW = im2bw(I-F);% 用原圖減去腐蝕獲得邊緣figure;imshow(I);title('原圖');figure;imshow(F);title('腐蝕圖像');figure;
3、imshow(BW);title('邊界'); 在上面的運(yùn)行效果圖上看來,由于原圖選擇的原因,周圍一圈白線有一定寬度但不足夠粗,大概只有23個(gè)像素寬度而腐蝕用元素大小為3×3,這導(dǎo)致腐蝕后圖像留下的白線看起來殘缺不全,用原圖減去腐蝕后得到的邊緣圖像也在白線處有“粘在一塊”的現(xiàn)象。只要使用更高一些分辨率的圖片即可避免這樣的情況。但出于后續(xù)試驗(yàn)的運(yùn)行速度考慮,本實(shí)驗(yàn)就使用此圖(300×300)。觀察圖像其他地方,有足夠的像素寬度被腐蝕,由此提取的邊緣也很清晰。% 區(qū)域填充I1 = fillbw(BW,40,40);% fillbw函數(shù)實(shí)現(xiàn)指定坐標(biāo)填充邊緣內(nèi)部,詳
4、見主函數(shù)后的各子函數(shù)I1 = I1 | fillbw(BW,40,260);% 為避免不必要的計(jì)算量,每次填充迭代次數(shù)為70I1 = I1 | fillbw(BW,100,150);% 逐次在圖像中選擇需填充區(qū)域中的起始點(diǎn)以完成填充I1 = I1 | fillbw(BW,100,160);I1 = I1 | fillbw(BW,136,86);I1 = I1 | fillbw(BW,132,212);I1 = I1 | fillbw(BW,147,120);I1 = I1 | fillbw(BW,157,214);I1 = I1 | fillbw(BW,210,171);I1 = I1 | f
5、illbw(BW,206,109);I1 = I1 | fillbw(BW,233,129);I1 = I1 | fillbw(BW,234,140);I1 = I1 | fillbw(BW,237,153);I1 = I1 | fillbw(BW,234,167);I1 = I1 | fillbw(BW,231,178);I1 = I1 | fillbw(BW,248,125);I1 = I1 | fillbw(BW,252,142);I1 = I1 | fillbw(BW,252,162);I1 = I1 | fillbw(BW,247,182);I1 = I1 | fillbw(BW,2
6、72,149);I1 = I1 | fillbw(BW,256,50);I1 = I1 | fillbw(BW,253,248);I2 = I1 | F;% 因外圍白線邊緣之間沒有足夠空間,很難逐個(gè)填充空洞figure;% 故此處直接疊加腐蝕圖像,把外圍白線加上subplot(1,3,1);imshow(I);title('原圖');subplot(1,3,2);imshow(I1);title('區(qū)域填充');subplot(1,3,3);imshow(I2);title('區(qū)域填充+腐蝕'); 實(shí)際上邊緣圖像是由原圖像減去腐蝕圖像得到的,而區(qū)
7、域填充是在邊緣圖像的區(qū)域內(nèi)填滿的結(jié)果,故理論上來說最后區(qū)域填充的結(jié)果其實(shí)就是原來的腐蝕圖像。從上圖比較就可以看出,除了區(qū)域填充中未填的外圍白線外,疊加了腐蝕圖像的結(jié)果與區(qū)域填充是一樣的,也與腐蝕圖像一樣(具體可以查看附件中的”區(qū)域填充.jpg”、”腐蝕.jpg”和”區(qū)域填充+腐蝕.jpg”)。% 細(xì)化A1 = fs(I2,20);figure;imshow(A1); 實(shí)驗(yàn)效果圖顯示細(xì)化結(jié)果良好,表征了原圖像的主要骨架特征。在實(shí)現(xiàn)細(xì)化算法過程中,一開始在判定是否滿足結(jié)構(gòu)元素時(shí)采用的方法是實(shí)現(xiàn)寫好一個(gè)元胞數(shù)組Bk,然后在程序中調(diào)用數(shù)組進(jìn)行比較。后來發(fā)現(xiàn)這樣的運(yùn)算速度大大降低,改為在程序中現(xiàn)寫結(jié)構(gòu)元
8、素矩陣。% 粗化A2 = fs(A1,2);figure;imshow(A2);從上圖看出在細(xì)化得到的骨架基礎(chǔ)上,粗化得到的結(jié)果已經(jīng)失去了原圖像骨架之外的信息了,只能夠把骨架大致的等寬度變粗而已。雖然粗化與細(xì)化在運(yùn)算上是對偶的,但不同于加減法、乘除法的對偶,由于細(xì)化過程中圖像逐個(gè)減去判定擊中點(diǎn),余留圖像的信息量實(shí)際在減少,作為骨架的剩余信息已不足夠做恢復(fù)原狀的逆運(yùn)算。圖像中粗化線條中摻雜了很多間斷,這是由于間斷處兩邊在判定擊中而粗化后,中間點(diǎn)的形狀不能滿足判定結(jié)構(gòu)元素中的任何一個(gè),故不作為擊中點(diǎn)而沒有填白。子函數(shù):function Y = fs( A,f )% fs函數(shù)實(shí)現(xiàn)用結(jié)構(gòu)元素模板f將圖
9、像A腐蝕% 輸入:A被腐蝕圖像% f結(jié)構(gòu)元素,此函數(shù)只編寫了方形情% 況,大小可自定義m,n = size(A);% 獲取圖像大小 l = (size(f)-1)/2;Y = im2bw(zeros(m,n);% 初始化輸出為0矩陣for i = 1+l:m-l% 遍歷圖像中3×3區(qū)域,若能放下結(jié)構(gòu)元素f,則該點(diǎn)填白 for j = 1+l:n-l if (sum(sum(A(i-l:i+l,j-l:j+l) & f) = sum(f(:) Y(i,j) = 1; end endend endfunction Y = fillbw( A,x,y)%fillbw函數(shù)實(shí)現(xiàn)在圖像A
10、的第x行、第y列處開始,在邊緣區(qū)域內(nèi)填充白色% 輸入:A需填充圖像% x起始點(diǎn)行數(shù)% y起始點(diǎn)列數(shù)% 避免小塊區(qū)域填充時(shí)間過久,迭代次數(shù)不宜取過大,為方便調(diào)用,本函數(shù)在函數(shù)內(nèi)部固定為70次m,n = size(A);YY(:,:,1) = zeros(m,n);% 起始圖像為0矩陣YY(x,y,1) = 1;% 從指定位置開始填充f = 0,1,0;1,1,1;0,1,0;for k = 2:70% 填充迭代70次 YY(:,:,k) = zeros(m,n); for i = 2:m-1% YY(k)為YY(k-1)的膨脹圖像 for j = 2:n-1 if YY(i,j,k-1) = 1
11、 YY(i-1:i+1,j-1:j+1,k) = YY(i-1:i+1,j-1:j+1,k) | f; end end end YY(:,:,k) = YY(:,:,k) & not(A);% 膨脹后與邊界的取反圖像相與,保證不溢出邊界endY = YY(:,:,70);% 輸出為第70次填充結(jié)果end function Y = fs( A,count )%fs函數(shù)將圖像A細(xì)化count次% 輸入:A細(xì)化圖像% count細(xì)化迭代次數(shù)m,n = size(A);Y = A;for k = 1:count% 設(shè)定迭代次數(shù)YY = ones(m,n);% 初始化中間變量for i = 2:
12、n-1 for j = 2:m-1% 在圖像中尋找8個(gè)結(jié)構(gòu)對元素位置并涂黑(即細(xì)化) if Y(j-1,i-1) = 0 && Y(j,i-1) = 0 && Y(j+1,i-1) = 0 && Y(j,i) = 1 && Y(j-1,i+1) = 1 && Y(j,i+1) = 1 && Y(j+1,i+1) = 1 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j,i-1
13、) = 0 && Y(j+1,i-1) = 0 && Y(j+1,i) = 0 && Y(j,i) = 1 && Y(j-1,i) = 1 && Y(j-1,i+1) = 1 && Y(j,i+1) = 1 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j+1,i-1) = 0 && Y(j+1,i) = 0 && Y(j+1,i+1) = 0
14、 && Y(j,i) = 1 && Y(j-1,i) = 1 && Y(j-1,i+1) = 1 && Y(j-1,i-1) = 1 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j+1,i) = 0 && Y(j+1,i+1) = 0 && Y(j,i+1) = 0 && Y(j,i) = 1 && Y(j,i-1) = 1 &&am
15、p; Y(j-1,i) = 1 && Y(j-1,i-1) = 1 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j-1,i-1) = 1 && Y(j,i-1) = 1 && Y(j+1,i-1) = 1 && Y(j,i) = 1 && Y(j-1,i+1) = 0 && Y(j,i+1) = 0 && Y(j+1,i+1) = 0 YY(j,i) = 0
16、; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j,i-1) = 1 && Y(j,i) = 1 && Y(j+1,i-1) = 1 && Y(j+1,i) = 1 && Y(j-1,i) = 0 && Y(j-1,i+1) = 0 && Y(j,i+1) = 0 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 f
17、or j = 2:m-1 if Y(j+1,i-1) = 1 && Y(j+1,i) = 1 && Y(j+1,i+1) = 1 && Y(j,i) = 1 && Y(j-1,i) = 0 && Y(j-1,i+1) = 0 && Y(j-1,i-1) = 0 YY(j,i) = 0; end endendY = Y & YY;YY = ones(m,n);for i = 2:n-1 for j = 2:m-1 if Y(j+1,i+1) = 1 && Y(j+1,i) =
18、1 && Y(j,i+1) = 1 && Y(j,i) = 1 && Y(j-1,i) = 0 && Y(j,i-1) = 0 && Y(j-1,i-1) = 0 YY(j,i) = 0; end endendY = Y & YY;endend三、 實(shí)驗(yàn)分析本次實(shí)驗(yàn)主要程序全部自行編寫完成,主要是在實(shí)現(xiàn)算法的過程中理解每種處理方法的原理。二值圖像的處理主要是通過矩陣加減法、邏輯值的與或非運(yùn)算以及集合的運(yùn)算。腐蝕運(yùn)算的形象定義是用一個(gè)小元素在原圖像內(nèi),保證不超出邊界的移動,其中心移動的位置集合就是腐蝕結(jié)果。按照這個(gè)定義,在圖像內(nèi)遍歷每個(gè)與結(jié)構(gòu)元素同大小的分塊矩陣,與結(jié)構(gòu)元素做與運(yùn)算后(保留結(jié)構(gòu)元素非零位置的值)與結(jié)構(gòu)元素比較,若相同則表示結(jié)構(gòu)元素在該位置沒有超出邊界,此處填白。不過處理的圖像區(qū)域如果太小,就很難能使結(jié)構(gòu)元素不超出邊界,就會造成實(shí)驗(yàn)圖像外圍白線處理效果不明顯的現(xiàn)象。經(jīng)過一次腐蝕運(yùn)算后,大部分情況是圖像的外圍被消除了一圈像素,因此此時(shí)用原圖減去腐蝕圖像的話得到的結(jié)果就很接近原圖像的邊緣,這是本次實(shí)驗(yàn)中提取邊緣的原理。不過因?yàn)橥鈬拙€的腐蝕效果不好,所以其邊緣提取的效果也會不好,看起來是兩條邊緣黏在一起。圖像細(xì)化一定程度上算是對圖像的一種特殊的腐蝕過程。用常見的邊緣結(jié)構(gòu)作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司每月生日會策劃方案
- 2025年職業(yè)教育與成人繼續(xù)教育專業(yè)能力考核試題及答案
- 2025年醫(yī)學(xué)影像技術(shù)考試試卷及答案
- 2025年社會保障與就業(yè)考試題及答案
- 畜禽糞污資源化技術(shù)-洞察及研究
- 2025年教育信息化與學(xué)習(xí)平臺構(gòu)建考試試卷及答案
- 2025年環(huán)境工程師資格考試試卷及答案
- 2025年廣告與傳播專業(yè)考試試題及答案
- 2024年度浙江省二級造價(jià)工程師之建設(shè)工程造價(jià)管理基礎(chǔ)知識提升訓(xùn)練試卷B卷附答案
- 2024年度浙江省二級注冊建筑師之法律法規(guī)經(jīng)濟(jì)與施工題庫附答案(基礎(chǔ)題)
- (完整版)傳熱學(xué)期末考試試題
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹脂耐腐蝕立式貯罐
- Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第6、7章 Pandas基礎(chǔ)與應(yīng)用、Matplotlib
- 玻璃體手術(shù)并發(fā)癥的預(yù)防及處理
- 2023年醫(yī)學(xué)高級職稱-中醫(yī)肛腸(醫(yī)學(xué)高級)考試歷年高頻考點(diǎn)試題含答案
- 爬架拆除技術(shù)交底
- pergeos軟件教程評價(jià)許可介紹
- 密封條范文模板(A4打印版)
- 出租車 專業(yè)部分考核試題 城市客運(yùn)企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核基礎(chǔ)題庫
- GB/T 9634.3-2002鐵氧體磁心表面缺陷極限導(dǎo)則第3部分:ETD和E形磁心
- GB/T 8478-2008鋁合金門窗
評論
0/150
提交評論