數(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頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、熟悉并掌握MATLAB工具得使用;MATLAB6。5以上版本、WINXP或WIN2000計(jì)算機(jī)1imreadimread函數(shù)用于讀入各種圖像文件,如:a=imread('e:\w01。tif')2imwriteimwrite函數(shù)用于寫入圖像文件,如:imwrite(a,’e:\w02。tif’,’tif')3imfinfoimfinfo函數(shù)用于讀取圖像文件得有關(guān)信息,如:imfinfo('e:\w01imageimage函數(shù)就是MATLAB提供得最原始得圖像顯示函數(shù),如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2imshowimshow函數(shù)用于圖像文件得顯示,如:i=imread('e:\w01、tif');imshow(i);title(3colorbarcolorbar函數(shù)用顯示圖像得顏色條,如:i=imread(’e:\w01。tif');imshow(i);colorbar;4figurefigure函數(shù)用于設(shè)定圖像顯示窗口,如:figure(1);/figure(2);5subplotSubplot(m,n,p)分成m*n個(gè)小窗口,在第p個(gè)窗口中創(chuàng)建坐標(biāo)軸為6plotplot(y)Plot(x,y)xy可以就是向量、矩陣。1rgb2gray把真彩圖像轉(zhuǎn)換為灰度圖像i=rgb2gray(j)2im2bw通過閾值化方法把圖像轉(zhuǎn)換為二值圖像I=im2bw(j,level)Level表示灰度閾值,取值范圍0~1(即0.n),表示閾值取自原圖像灰I=imresize(j,[mn])將圖像j大小調(diào)整為m行n列兩幅圖像相加,要求同樣大小,同種數(shù)據(jù)類型Z=imadd(x,y)表示圖像x+y2imsubstract兩幅圖像相減,要求同樣大小,同種數(shù)據(jù)類型Z=imsubtract(x,y)表示圖像x-y3immultiplyZ=immultiply(x,y)表示圖像x*y4imdivideZ=imdivide(x,y)表示圖像x/y四、實(shí)驗(yàn)內(nèi)容(請(qǐng)將實(shí)驗(yàn)程序填寫在下方合適得位置,實(shí)驗(yàn)圖像結(jié)果拷屏粘貼)1、讀入一幅RGB圖像,變換為灰度圖像與二值圖像,并在同一個(gè)窗口內(nèi)分成三個(gè)子窗口來分別顯示RGB圖像與灰度圖像,注上文字標(biāo)題。a=imread(’f:\1。jpg’)i=rgb2gray(a)subplot(3,1,2);imshow(i);title('灰度圖像')subplot(3,1,3);imshow(I);title('二值圖像’)2、對(duì)兩幅不同圖像執(zhí)行加、減、乘、除操作,在同一個(gè)窗口內(nèi)分成五個(gè)子a=imread(’f:\1。jpg')A=imresize(a,[800800])b=imread('f:\2.jpg')B=imresize(b,[800800])Z1=imadd(A,B)Z2=imsubtract(A,B)Z3=immultiply(A,B)Z4=imdivide(A,B)ow(Asubplot(3,2,2);imshow(B);title('原圖像B')subplot(3,2,3);imshowsubplot(3,2,4);imshow(Z2);title('減法圖像’)how(Z2);title('除法圖像’)madjust(a,[,],[0、5;1]);%圖像變亮n=imadjust(a,[,],[0;0。5]);%圖像變暗subplot(2,2,1);imshow(a);title(’原圖像')subplot(2,2,2);imshow(m);title('圖像變亮')subplot(2,2,3);imshow(n);title(’圖像變暗’)subplot(2,2,4);imshow(g);title('負(fù)片效果')方法:選擇函數(shù)(函數(shù)所在區(qū)變暗),點(diǎn)右鍵彈出菜單,選擇“HelponSelect分析圖像得代數(shù)運(yùn)算結(jié)果,分別陳述圖像得加、減、乘、除運(yùn)算可能得應(yīng)用1、熟悉并掌握MATLAB圖像處理工具箱得使用;MATLAB6、5以上版本、WINXP或WIN2000計(jì)算機(jī)1imnoiseimnoise函數(shù)用于對(duì)圖像生成模擬噪聲,如:i=imread('e:\w01。tif’);j=imnoise(i,'gaussian’,0,0、02);模擬均值為0方差為0。02得高斯噪聲,j=imnoise(i,'salt&pepper',0.04)模擬疊加密度為0.04得椒鹽2fspecialfspecial函數(shù)用于產(chǎn)生預(yù)定義濾波器,如:h=fspecial('gaussian');%高斯低通濾波器h=fspecial(’laplacian’);%拉普拉斯濾波器h=fspecial(’log');%高斯拉普拉斯(LoG)濾波器h=fspecial('average');%均值濾波器imfilter函數(shù),filter2函數(shù),二維卷積conv2濾波,都可用于圖像濾i=imread('e:\w01、tif’);h=[1,2,1;0,0,0;—1,-2,—1];%產(chǎn)生Sobel算子得水平方向模板j=filter2(h,i);或者:h=fspecial(‘prewitt’)I=imread('cameraman、tif');imshow(I);H=fspecial('prewitt‘);%預(yù)定義濾波器M=imfilter(I,H);imshow(M)或者:i=imread(’e:\w01。tif');h=[1,1,1;1,1,1;1,1,1];j=conv2(i,h);medfilt2函數(shù)用于圖像得中值濾波,如:i=imread(’e:\w01、tif');j=medfilt2(i,[MN]);對(duì)矩陣i進(jìn)行二維中值濾波,領(lǐng)域?yàn)镸*N,缺省值為3*3i=imread('e:\w01、tif');j=double(i);h=[0,1,0;1,-4,0;0,1,0];%拉氏算子k=conv2(j,h,’same’);1、采用二維中值濾波函數(shù)medfilt2對(duì)受椒鹽噪聲干擾得圖像濾波,窗口分別采用3*3,5*5,7*7I=imread('f:\lena。png');J=imnoise(I,’salt&pepper',0.04);K1=medfilt2(J,[33]);%對(duì)矩陣i進(jìn)行二維中值濾波,領(lǐng)域?yàn)?*3K2=medfilt2(J,[55]);K3=medfilt2(J,[77]);subplot(2,2,1);imshow(J);title('椒鹽噪聲干擾圖像')subplot(2,2,2);imshow(K1);title('領(lǐng)域?yàn)?*3二維中值濾波')subplot(2,2,3);imshow(K2);title(’領(lǐng)域?yàn)?*5二維中值濾波’)subplot(2,2,4);imshow(K3);title('領(lǐng)域?yàn)?*7二維中值濾波')LABI=imread('f:\lena.png');j=imnoise(i,’gaussian',0,0、02);%模擬均值為0方差為0.02得高斯噪聲,M=filter2(fspecial('average',9),J)/255;%模板尺寸為9subplot(2,1,1);imshow(j);title('噪聲干擾圖像’)subplot(2,1,2);imshow(M);title(’改進(jìn)后得圖像’)i=imread('f:\1.jpg')I=rgb2gray(s)H=fspecial('sobel’)%應(yīng)用Sobel算子銳化圖像I1=filter2(H,I)%Sobel算子濾波銳化H=fspecial('prewitt')%應(yīng)用prewitt算子銳化圖像I2=filter2(H,I)%prewittH=fspecial('log’)%應(yīng)用log算子銳化圖像I3=filter2(H,I)%log算子濾波銳化subplot(2,2,1);imshow(i);title('原圖像’)subplot(2,2,2);imshow(I1);title('Sobel算子銳化圖像’)subplot(2,2,3);imshow(I2);title(’prewitt算子銳化圖像’)subplot(2,2,4);imshow(I3);title(’log算子銳化圖像’)1、比較不同平滑濾波器得處理效果,分析其優(yōu)缺點(diǎn)2、比較不同銳化濾波器得處理效果,分析其優(yōu)缺點(diǎn)1、熟悉并掌握MATLAB圖像處理工具箱得使用;MATLAB6、5以上版本、WINXP或WIN2000計(jì)算機(jī)1deconvwnr維納濾波,用法:J=deconvwnr(I,PSF,NSR)用維納濾波算法對(duì)圖片I進(jìn)行圖像恢復(fù)后返回圖像J。I就是一個(gè)N維數(shù)I=im2double(imread(’cameraman。tif'));imshow(I);title('OriginalImage');%模擬運(yùn)動(dòng)模糊LEN=21;?THETA=11;?PSF=fspecial('motion',LEN,THETA);blurred=imfilter(I,PSF,'conv’,’circular');figure,imshow(blurred)%恢復(fù)圖像wnr2=deconvwnr(blurred_noisy,PSF);?figure,imshow(wnr2)?title('RestorationofBlurred')2edge用法:BW=edge(I,’sobel',thresh,direction),I為檢測對(duì)象;邊緣檢測算子可用sobel,roberts,prewithresh指定閾值,檢測時(shí)忽略所有小于閾值得邊緣,默認(rèn)自動(dòng)選擇閾值;direction方向,在所指定得方向direction上,用算子進(jìn)行邊緣檢測horizontal(水平方向)、vertical(垂直方向)或both(兩個(gè)方向)。如:I=imread('circuit.tif’);BW1=edge(I,'prewitt');imshow(BW1);SE=STREL(’arbitrary’,NHOOD,HEIGHT)創(chuàng)建一個(gè)指定領(lǐng)域得非平面結(jié)構(gòu)化元素。HEIGHT就是一個(gè)矩陣,大小與NHOOD相同,她指定了NHOOD中任何非零元素得高度值、SE=STREL(’ball',R,H,N)創(chuàng)建一個(gè)空間橢球狀得結(jié)構(gòu)元素,其X-Y平面半徑為R,高度為H、R必須為非負(fù)整數(shù),H就是一個(gè)實(shí)數(shù)。N必須為一個(gè)非負(fù)偶數(shù)。當(dāng)N>0時(shí)此球形結(jié)構(gòu)元素由一系列空間線段結(jié)構(gòu)元素來近似。SE=STREL('diamond’,R)創(chuàng)建一個(gè)指定大小R平面鉆石形狀得結(jié)構(gòu)SE=STREL(’disk’,R,N)創(chuàng)建一個(gè)指定半徑R得平面圓盤形得結(jié)構(gòu)。當(dāng)N大于0時(shí),圓盤se1=strel(’square',11)%11乘以11得正方形4imerode用法:IM2=imerode(IM,SE)1);erodedBW=imerode(originalBW,se);?lBW),figure,imshow(erodedBW)5imdilate用法:IM2=imdilate(IM,SE)?者打包得二值圖像IM,返回膨脹圖像M2。變量SE就是一個(gè)結(jié)構(gòu)元素或者一個(gè)結(jié)構(gòu)元素得數(shù)組,其就是通過strel函數(shù)返回得。I=imread('cameraman、tif’);se=strel('ball',5,5);imshow(I),title('Original')figure,imshow(I2),title(’Dilated')1、產(chǎn)生運(yùn)動(dòng)模糊圖像,運(yùn)用維納濾波進(jìn)行圖像恢復(fù),顯示結(jié)果。I=rgb2gray(s)I=im2double(I);LEN=21;THETA=11;PSF=fspecial(’motion’,LEN,THETA);blurred=imfilter(I,PSF,'conv’,'circular’);%恢復(fù)圖像wnr2=deconvwnr(blurred,PSF);subplot(1,2,1);imshow(blurred);title(’運(yùn)動(dòng)模糊圖像’)subplot(1,2,2);imshow(wnr2);title(’i=imread(’f:\1、jpg’)BW1=edge(I,'prewitt');BW2=edge(I,'zerocross');BW3=edge(I,’canny’);subplot(2,2,1);imshow(i);title(’原圖像’)subplot(2,2,2);imshow(BW1);title('prewitt邊緣圖')subplot(2,2,3);imshow(BW2);title('zerocross邊緣圖’)subplot(2,2,4);imshow(BW3);title('canny邊緣圖')a=imread('f:\1、jpg’)I=im2bw(a,0.5)se3=strel('disk',3);erodedBW1=imerode(I,se3);se4=strel(’disk’,5);erodedBW2=imerode(I,se4);se1=strel(’ball',3,3);I1=imdilate(a,se1);se2=strel('ball’,5,5);I2=imdilate(a,se2);subplot(2,2,1);imshow(I1);title('3*3膨脹圖像')subplot(2,2,2);imshow(I2);title(’5*5膨脹圖像')subplot(2,2,3);imshow(erodedBW1);title('3*3腐蝕圖像')subplot(2,2,4);imshow(erodedBW2);title('5*5腐蝕圖像’)1、熟悉并掌握MATLAB圖像處理工具箱得使用;MATLAB6、5以上版本、WINXP或WIN2000計(jì)算機(jī)I=imread('Car、jpg’);[y,x,z]=size(I);myI=double(I);%%%%%%%%%RGBtic%%%%%%%%Y方向Blue_y=zeros(y,1);toHSI%%%%%%%%%%%%%%%%%%fori=1:yif((myI(i,j,1)〈=30)((myI(i,j,2)〈=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)〉=119)))%藍(lán)色RGB得灰度范圍Blue_y(i,1)=Blue_y(i,1)+1;endendend[tempMaxY]=max(Blue_y);%Y方向車牌區(qū)域確定PY1=MaxY;while((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while((Blue_y(PY2,1)>=5)&&(PY2〈y))PY2=PY2+1;IY=I(PY1:PY2,:,:);%%%%%%Blue__x=zeros(1,x);forj=1:xfori=PY1:PY2if((myI(i,j,1)〈=30)&&((myI(i,j,2)〈=62)&&(myI(i,j,2)〉=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)119)))Blue_x(1,j)=Blue_x(1,j)+1;PX1=1;while((Blue_x(1,PX1)<3)(PX1<x))PX1=PX1+1;PX2=x;while((Blue_x(1,PX2)<3)&&(PX2〉PX1))PX2=PX2-1;endPX1=PX1—2;%對(duì)車牌區(qū)域得修正PX2=PX2+2;Plate=I(PY1:PY2,PX1-2:PX2,:);%%%%%%%%%%%%%%%%%%%%figure,imshow(I);figure,plot(Blue_y);gridfigure,plot(Blue_x);gridfigure,imshow(IY);添加注釋與改正后得程序:I=imread(’f:\Car、jpg’)%讀取圖片[y,x,z]=size(I);%給定圖片大小myI=double(I);%返回雙精度值%%%%%RGBtoHSI%%%%%%%%Y方向%%%%%%%%Blue_y=zeros(y,1);%一列全零矩陣forj=1:x%給定j得范圍if((myI(i,j,1)<=30)&&((myI(i,j,2)〈=62)&&(myI(i,j,2)〉=51))&&((myI(i,j,3)<=142)(myI(i,j,3)>=119)))%藍(lán)色RGB得灰度范圍Blue_y(i,1)=Blue_y(i,1)+1;%y矩陣加一endend[tempMaxY]=max(Blue_y);%Y方向車牌區(qū)域確定PY1=MaxY;%y矩陣得最大元素while((Blue_y(PY1,1)〉=5)&&(PY1〉1))%確定藍(lán)色RGBBlue_y所在位置PY1=PY1—1;%對(duì)車牌區(qū)域得修正,向上調(diào)整PY2=MaxY;%y矩陣得最大元素while((Blue_y(PY2,1)〉=5)&&(PY2<y))%確定藍(lán)色RGBBlue_y所在位置PY2=PY2+1;%對(duì)車牌區(qū)域得修正向下調(diào)整IY=I(PY1:PY2,:,:);%行得范圍%%%X方向%%%Blue_x=zeros(1,x);%一行全一矩陣forj=1:x%給定j得取值范圍fori=PY1:PY2%給定i得取值范圍if((myI(i,j,1)<=30)((myI(i,j,2)〈=62)&&(myI(i,j,2)〉=51))&&((myI(i,j,3)〈=142)&&(myI(i,j,3)>=119)))%調(diào)整I中得范圍Blue_x(1,j)=BluendPX1=1;%當(dāng)PX1等于1時(shí)while((Blue_x(1,PX1)<3)&&(PX1<x))%確定藍(lán)色RGBBlue_x得位置PX1=PX1+1;%對(duì)車牌區(qū)域得修正向下調(diào)整endPX2=x;%當(dāng)PX2等于x時(shí)while((Blue_x(1,PX2)<3)&&(PX2>PX1))%確定藍(lán)色RGBBlue_x得位置PX2=PX2-1;%對(duì)車牌區(qū)域得修正向下調(diào)整PX1=PX1—2;%對(duì)車牌區(qū)域得修正PX2=PX2+2;%對(duì)車牌區(qū)域得修正Plate=I(PY1:PY2,PX1-2:PX2,:);%矩陣行列得范圍%%figure,imshow(I);%創(chuàng)建圖像窗口,顯示圖像Ifigure,plot(Blue_y);grid%創(chuàng)建圖像窗口,繪制Blue_y圖像,畫出網(wǎng)格線figure,plot(Blue_x);grid%創(chuàng)建圖像窗口,繪制Blue_x圖像,畫出網(wǎng)格線figure,imshow(Plate);%創(chuàng)建MATLAB6。5以上版本、WINXP或WIN2000計(jì)算機(jī)imhist函數(shù)用于數(shù)字圖像得直方圖計(jì)算或顯示,imhist(I,n)計(jì)算與顯示圖像I得直方圖,n為指定得灰度級(jí)數(shù)目,默認(rèn)為[counts,x]=imhist(。、、)返回直方圖數(shù)據(jù)向量counts,相應(yīng)得色i=imread(’e:\w01。tif');imhist(i);histeqJ=histeq(I,n)均衡化后得級(jí)數(shù)n,缺省值為64。J=histeq(I,hgram)”直方圖規(guī)定化",即將原就是圖象I得直方圖變換成用戶指定得向量hgram(即指定另一幅圖像得直方圖數(shù)據(jù)向量)。i=imread('e:\w01。tif');j=histeq(i,N);對(duì)圖像i執(zhí)行均衡化,得到具有N個(gè)灰度級(jí)得灰度圖像djustJ=imadjust(I,[low_in;high_in],[low_out;high_out])?將圖像I中得亮度值映射到J中得新值,即將low_in至high_in之間得值映射到low_out至high_out之間得值。low_in以下與high_in以上得值被剪切掉了,也就就是說,low_in以下得值映射到low_out,high_in以上得值映射到high_out。它們都可以使用空得矩陣[],默認(rèn)值就是[01]。i=imread(’e:\w01。tif');j=imadjust(i,[0。3,0、7],[]);將圖像i轉(zhuǎn)換為j,使灰度值從0。3~0。7與缺省值0~1相匹配1、Zeros生成全0數(shù)組或矩陣如B=zeros(m,n)orB=zeros([mn])返回一個(gè)m*n2、取整函數(shù)floor最小取整函數(shù)I=round(a)a=imread('f:/1.jpg’);b=rgb2gray(a);form=1:4figure[width,height]=size(b);quartimage=zeros(floor(width/(m)),floor(height/(2*m)));k=1;n=1;2*m):heightquartimage(k,n)=b(i,j);k=k+1;endimshow(uint8(quartimage));Enda=imread('f:\lena_color。png')c=rgb2gray(a)b=c—46subplot(2,1,1);imhist(c);title(’原圖像')subplot(2,1,2);imhist(b);title(b=imread(’f:\lena_color。png’)c=rgb2gray(b)j=histeq(c)subplot(2,2,1),imshow(c)subplot(2,2,2),imshow(j)subplot(2,2,3),imhist(c)subplot(2,2,4),imhist(j)4、讀入圖像c,執(zhí)行直方圖規(guī)定化,使圖像a得灰度分布與c大致相同,顯I=imread(’f:\lena。png');〉〉J=histeq(I,64);%均衡化成32個(gè)灰度級(jí)得直方圖>〉[counts,x]=imhist(J);%返回直方圖圖像向量countsb=imread(’f:\1、jpg’)Q=rgb2gray(b)〉>M=histeq(Q,counts);向量counts>〉figure,>>subplot(3,2,1),imshow(I);>〉subplot(3,2,2),imshow(Q);>>subplot(3,2,3),imhist(I);>>subplot(3,2,4),imhist(Q)%將原始圖像Q得直方圖變成指定〉〉subplot(3,2,5),imhist(J);〉>subplot(3,2,6),imhist(M);MATLAB6、5以上版本、WINXP或WIN2000計(jì)算機(jī)1fft2fft2函數(shù)用于數(shù)字圖像得二維傅立葉變換,如:i=imread('e:\w01.tif’);j=fft2(i);由于MATLAB無法顯示復(fù)數(shù)圖像,因此變換后得結(jié)果還需進(jìn)行求模運(yùn)算,即之后常常還進(jìn)行對(duì)數(shù)變換,即調(diào)用log函數(shù),以減緩ifft2函數(shù)用于數(shù)字圖像得二維傅立葉反變換,如:i=imread(’e:\w01、tif');j=fft2(i);k=ifft2(j);3fftshift用于將變換后圖像頻譜中心從矩陣得原點(diǎn)移動(dòng)到矩陣得中心B=fftshift(i)4利用fft2計(jì)算二維卷積利用fft2函數(shù)可以計(jì)算二維卷積,如:a=[8,1,6;3,5,7;4,9,2];b=[1,1,1;1,1,1;1,1,1];a(8,8)=0;b(8,8)=0;c=ifft2(fft2(a)。*fft2(b));利用conv2(二維卷積函數(shù))校驗(yàn),如:a=[8,1,6;3,5,7;4,9,2];b=[1,1,1;1,1,1;1,1,1];c=conv2(a,b);s=imread(’f:\1。jpg');%讀入原圖像i=rgb2gray(s)ouble(i)j=fft2(i);%傅里葉變換k=fftshift(j);%直流分量移到頻譜中心l=log(abs(k));%對(duì)數(shù)變換m=fftshift(j);%直流分量移到頻譜中心RR=real(m);

溫馨提示

  • 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)論