數(shù)字圖像處理實(shí)驗(yàn)答案_第1頁
數(shù)字圖像處理實(shí)驗(yàn)答案_第2頁
數(shù)字圖像處理實(shí)驗(yàn)答案_第3頁
數(shù)字圖像處理實(shí)驗(yàn)答案_第4頁
數(shù)字圖像處理實(shí)驗(yàn)答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)名稱:圖像的銳化處理1、 實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)用銳化處理技術(shù)來加強(qiáng)圖像的目標(biāo)邊界和圖像細(xì)節(jié)。對(duì)圖像進(jìn)行梯度算子、Roberts算子、Sobel算子邊緣檢測(cè)處理和Laplace算子邊緣增強(qiáng)處理,使圖像的某些特征(如邊緣、輪廓等)得以進(jìn)一步的增強(qiáng)和突出。2、 實(shí)驗(yàn)內(nèi)容(1) 編寫梯度算子和Roberts算子濾波函數(shù)。(2) 編寫Sobel算子濾波函數(shù)。(3) 編寫Laplace算子邊緣增強(qiáng)濾波函數(shù)。(4) 觀察頻域中用高低通濾波技術(shù)對(duì)圖像進(jìn)行的平滑和銳化處理。3、 實(shí)驗(yàn)方法及編程用Matlab進(jìn)行編程,主要是對(duì)照著實(shí)驗(yàn)書上面的算法流程圖進(jìn)行代碼的編寫,主要編寫代碼如下所示:function newbu

2、f=RobFilter(oldbuf,M,N);% *% 函數(shù)名稱: % RobFilter() % 說明:% Robert梯度濾波算法。 % *for i=1:M-1for j=1:N-1newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1)+abs(oldbuf(i+1,j)-oldbuf(i,j+1);endend %- function newbuf=SobFilter(oldbuf,M,N);% *% 函數(shù)名稱: % SobFilter() % 說明:% Sobel濾波算法。 % *for i=2:M-1for j=2:N-1 sx=oldbuf(i+

3、1,j-1)+2*oldbuf(i+1,j)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i-1,j)-oldbuf(i-1,j+1); sy=oldbuf(i-1,j+1)+2*oldbuf(i,j+1)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i,j-1)-oldbuf(i+1,j-1);newbuf(i,j)=abs(sx)+abs(sy); endend %-function newbuf=LapFilter(oldbuf,M,N);% *% 函數(shù)名稱: % LapFilter() % 說明:% Lapla

4、ce濾波算法。 % * for i=2:M-1for j=2:N-1 newbuf(i,j)=5*oldbuf(i,j)-oldbuf(i-1,j)-oldbuf(i+1,j)-oldbuf(i,j-1)-oldbuf(i,j+1); endend 4、 實(shí)驗(yàn)結(jié)果及分析(原圖像和處理后的圖像比較及分析)如上圖所示即為實(shí)驗(yàn)結(jié)果。如上圖所示Robert算子能夠檢測(cè)出原圖像的邊緣,并且顯示出來;Sobel在Robert算子的基礎(chǔ)上增強(qiáng)了邊緣,所以圖像上結(jié)果會(huì)顯示比原圖像邊緣要更加粗一些;Laplace算子與其他邊緣增強(qiáng)方法不同,即其邊緣的增強(qiáng)程度和邊緣的方向無關(guān),所以圖像的細(xì)節(jié)明顯比原來更加突出。實(shí)

5、驗(yàn)名稱:圖像方塊編碼3、 實(shí)驗(yàn)?zāi)康耐ㄟ^編程實(shí)驗(yàn),掌握方塊編碼的基本方法及壓縮性能。4、 實(shí)驗(yàn)內(nèi)容編程實(shí)現(xiàn)子塊為nxn的方塊編碼基本算法,分別取n=2,4,8方塊尺寸進(jìn)行編解碼實(shí)驗(yàn),計(jì)算編碼后的均方誤差和壓縮比。實(shí)驗(yàn)圖像可為任意圖像。5、 實(shí)驗(yàn)方法及編程用Matlab進(jìn)行編程,主要是對(duì)照著實(shí)驗(yàn)書上面的算法流程圖進(jìn)行代碼的編寫,下面是主要的實(shí)驗(yàn)代碼:function newbuf=BtcCode(oldbuf,M,N,n)% *% 函數(shù)名稱:% BtcCode() 方塊編碼函數(shù)% 參數(shù):% oldbuf 原圖像數(shù)組% M N 原圖像尺寸% n 方塊尺寸% 說明:% 調(diào)用方塊編碼算法函數(shù),輸出編碼后

6、的圖像% * newbuf=oldbuf; rowblocks=M/n; colblocks=N/n; for i=1:rowblocks-1 row=i*n; for j=1:colblocks-1 col=j*n; for i=1:n for j=1:n inbuf(i,j)=oldbuf(i+row,j+col); end end outbuf=BtcBlock(inbuf,n); for i=1:n for j=1:n newbuf(i+row,j+col)=outbuf(i,j); end end end end%- function outbuf=BtcBlock(inbuf,n)

7、% *% 函數(shù)名稱:% btcblock() 方塊編碼算法函數(shù)% 參數(shù):% inbuf 方塊數(shù)組% n 方塊尺寸% outbuf 存放處理后的方塊圖像% 說明:% 把原圖像分成n*n子塊,對(duì)每個(gè)方塊的圖像數(shù)據(jù)分別計(jì)算xt,a0,a1值,再用分辨率分% 量(a0,a1)替代方塊原來的數(shù)據(jù) 最后放入方塊圖像數(shù)組中并返回該數(shù)組。% * temp=0; temp0=0; temp1=0; q=0;m=n*n; inbuf=double(inbuf);for i=1:n for j=1:n temp=temp+inbuf(i,j); endendxt=temp/m;for i=1:n for j=1:n

8、 if (inbuf(i,j)=xt) q=q+1; temp1=temp1+inbuf(i,j); else temp0=temp0+inbuf(i,j); end endendif q=m a0=round(temp0/(m-q);endif q=0 a1=round(temp1/q);endfor i=1:n for j=1:n if (inbuf(i,j)1% 2_D DPCM: xi,j=128 if i=1,j=1% x i,j-1 if i=1,j1% xi-1,j if i1,j=1 or N% 1/2x i,j-1 if i1,j1% 1/8xi-1,j-1 (Pirschs

9、 predictor)% 1/4xi-1,j % 1/8xi-1,j+1% Dim : Dimension of prediction% Row : vertical coordinate of current pixel to be predicted% COL : horizontal coordinate of current pixel to be predicted% *global newbuf; switch dim %預(yù)測(cè)算法編程 case 1 if col=1 Pvalue=128; else Pvalue=newbuf(row,col-1); end case 2 if (

10、row=1&col=1) Pvalue=128; end if (row=1&col1) Pvalue=newbuf(row,col-1); end if (row1&col=1)|(row1&col=N) Pvalue=newbuf(row-1,col); end if (row1&col1&colN) Pvalue=(1/2)*newbuf(row,col-1)+(1/4)*newbuf(row-1,col-1)+. (1/4)*newbuf(row-1,col+1); endend%-function Qvalue=Quant_Value(err);% * % This function

11、 is used as linear quantizer.The quantizer has totally% 13 quantization level :% 0,-+7,-+16,-+27,-+38,-+51,-+66% * if (abs(err)=3) lev=0; else if(abs(err)=11) lev=7; else if(abs(err)=21) lev=16; else if(abs(err)=32) lev=27; else if(abs(err)=44) lev=38; else if(abs(err)=58) lev=51; else lev=66; end;

12、end; end; end; end; end; Qvalue = lev; if (err = 0) Qvalue = lev*(err / abs(err); end%-function Rvalue=Restor_Value(quan_err,pre_val)% *% This function is used to get restored value of DPCM% x=x+Quant_Error% * Rvalue=quan_err + pre_val; %-function Cvalue=Clip_Value(res_val)% *% This function is used

13、 to clip to restored value to 8_bit value% 0 if x255% x otherwise% * if (res_val255) Cvalue=255; else Cvalue=res_val; end;end;4、 實(shí)驗(yàn)結(jié)果及分析(原圖像和處理后的圖像比較及分析)如上圖所示,即為實(shí)驗(yàn)所得的結(jié)果圖像。由實(shí)驗(yàn)結(jié)果可以看出,一維和二維預(yù)測(cè)編碼圖像非常接近原圖像;從誤碼圖像中可以看出,一維預(yù)測(cè)編碼會(huì)將誤差延續(xù)到行末端,而二維預(yù)測(cè)編碼其將誤碼延續(xù)至其后的斜后方,所以二維預(yù)測(cè)編碼的誤差會(huì)偏小。實(shí)驗(yàn)名稱:JPEG壓縮編碼9、 實(shí)驗(yàn)?zāi)康模?) 掌握nxn子塊的DCT圖

14、像變換及頻譜特點(diǎn)。(2) 熟悉JPEG基本系統(tǒng)的圖像編解碼方法。2、 實(shí)驗(yàn)內(nèi)容(1) 編程實(shí)現(xiàn)nxn子塊DCT變換的圖像頻譜顯示,8x8子塊DCT變換系數(shù)按“Z”掃描圖像重建,計(jì)算圖像的均方根誤差RMSE,顯示誤差圖像和誤差直方圖。(2) 編程實(shí)現(xiàn)JPEG壓縮編碼,進(jìn)行8x8子塊的DCT圖像變換,JPEG量化矩陣的量化與反量化,8x8子塊DCT的圖像重建,計(jì)算圖像的均方根誤差RMSE,顯示誤差圖像和誤差直方圖。 3、 實(shí)驗(yàn)方法及編程用Matlab進(jìn)行編程,主要是對(duì)照著實(shí)驗(yàn)書上面的算法流程圖進(jìn)行代碼的編寫,主要的代碼如下所示:function newbuf=DctBlock(oldbuf,Blo

15、ck)% *% 函數(shù)名稱: % DctBlock() DCT n*n 塊頻譜函數(shù)% % 參數(shù):% oldbuf 原圖像數(shù)組% Block DCT n*n 當(dāng)前塊選擇值% newbuf 存放處理后的圖像二維數(shù)組% % 說明:% 根據(jù)Block塊的當(dāng)前選擇值,計(jì)算原圖像的n*n塊DCT變換,并轉(zhuǎn)換為可視頻譜圖,% 有利于頻譜的觀察。 % * oldbuf=double(oldbuf);% 添加程序H=dctmtx(Block);newbuf=blkproc(oldbuf,Block Block,P1*x*P2,H,H);newbuf=log(abs(newbuf);subplot(2,2,2);i

16、mshow(newbuf,); %- function newbuf=DctCode(oldbuf,DCTch)% *% 函數(shù)名稱: % DctCode() DCT 8*8 塊系數(shù)“Z”字掃描圖像壓縮函數(shù)% % 參數(shù):% oldbuf 原圖像數(shù)組% DCTch DCT 8*8 塊“Z”掃描當(dāng)前系數(shù)選擇值% newbuf 存放處理后的圖像二維數(shù)組% % 說明:% 計(jì)算圖像的88子塊DCT變換,按“Z”字掃描順序,根據(jù)DCTch參數(shù),只保留64個(gè)% DCT系數(shù)中的前DCTch個(gè)系數(shù),對(duì)修改后的DCT系數(shù)用逆DCT變換重建圖像,得到DCT變% 換的壓縮圖像。計(jì)算重建圖像的均方根誤差RMSE ;顯示誤

17、差圖像和誤差直方圖。 % * zigzag=1 2 6 7 15 16 28 29 %設(shè)置z掃描順序 3 5 8 14 17 27 30 43 4 9 13 18 26 31 42 44 10 12 19 25 32 41 45 54 11 20 24 33 40 46 53 55 21 23 34 39 47 52 56 61 22 35 38 48 51 57 60 62 36 37 49 50 58 59 63 64; tbuf=ones(8); %定義8*8全1數(shù)組 maskbuf=tbuf .* zigzag= 1 %如果有數(shù)據(jù) s=max(h(:); subplot(2,2,3); %imshow(hist); bar(x,h/s,k); %顯示圖像差值直方圖 RMSE = num2str(RMSE); %把數(shù)值轉(zhuǎn)換為字符串 strRMSE = strcat(圖像差值直方圖 均方根誤差RMSE= ,RMSE); %把多個(gè)串連接成長串 title(strRMSE); e = mat2gray(e,-emax,emax); %顯示差值圖像 subplot(2,2,4

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論