數(shù)字圖像處理基本操作_第1頁
數(shù)字圖像處理基本操作_第2頁
數(shù)字圖像處理基本操作_第3頁
數(shù)字圖像處理基本操作_第4頁
數(shù)字圖像處理基本操作_第5頁
免費預(yù)覽已結(jié)束,剩余14頁可下載查看

付費下載

下載本文檔

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

文檔簡介

1、Matlab圖像的讀取和存儲圖像的讀取I=imread(pout.tif);imread是讀取圖像的函數(shù)。pout.tif是matlab內(nèi)置的圖像,不管在什么程序內(nèi)都可以直接讀取。這里我們來說幾種常見的情形注:Matlab文件夾內(nèi)有test.m,1.jpg,image文件夾,同時image文件夾內(nèi)有2.jpg讀取1.jpgI=imread(,1.jpg,);讀取2.jpgI=imread(imagepg)t%寸路徑的讀取讀取D:1023251.jpgI=imread(D:1.jpg)%寸路徑的讀取讀取D:102325內(nèi)20個圖像。fori=1:20I=imread(D:,num2str(i),

2、.jpg);end圖像的顯示關(guān)于這三個函數(shù)用法的區(qū)別,主要的意思是:imshow顯示按照原來的比例,而image會改變原來圖像的比例。imtool,很少用到。一般用imshow就足夠了。那么什么時候用figure呢?當(dāng)程序中只顯示一幅圖像時,直接imshow就可以。然后當(dāng)圖像多的時候,就需要用到figuure;imshow(I1);figure;imshow(I2);figure;imshow(I3)如果想要在一張圖片內(nèi),顯示好幾個圖怎么辦呢?title顯示在圖像的上方,起到提示的作用。I=imread(pout.tif);subplot(221);imshow(I);title(1);sub

3、plot(222);imshow(I);title(2);subplot(223);imshow(I);title(3);subplot(224);imshow(I);title(4);其中前面的22代表是2*2的分布,也可以是2*3,3*4等。按照行來排列,從第一行開始分別為1234。如圖所示。如果沒有要求的話,直接用figure。此時希望圖2來顯示某個圖像,那么figure(2),就指定來顯示某個圖像。當(dāng)然了,如果僅有一個圖像顯示這樣做,那么可能會被覆蓋掉,因此,一個程序中的用法一定要統(tǒng)一,并且保證后面的,不要把前面的覆蓋掉。圖像的存儲imwrite(I,pout1.jpg);同樣,imw

4、rite也有相對路徑和絕對路徑的存儲,以及連續(xù)的存儲方法。同imreadimwrite(I,pout1.jpg);imwrite(I,imagepout1.jpg);imwrite(I,D:pout1.jpg);imwrite(I,image,num2str(i),.jpg);%1是變量,需要定義這里的.jpg可以改成.bmp等,想要的格式。需要注明的是,存儲所選擇的文件夾,需要已經(jīng)建立好。自動建立文件夾需要用mkdir函數(shù)。mkdir(D:1)%絕對路徑的建立。mkdir(1);%絕對路徑文件夾的建立。創(chuàng)建之后,在Matlab文件夾內(nèi)。這樣就能夠節(jié)省很多的人力。當(dāng)文件比較多的情況下,人工去建

5、立的話,還容易出錯。代碼:I=imread(pout.tif);figure;subplot(221);imshow(I);title(1);subplot(222);imshow(I);title(2);subplot(223);imshow(I);title(3);subplot(224);imshow(I);title(4);whos;mkdir(image)imwrite(I,imagepout2.jpg);Matlab圖像的疊加將兩幅圖像比率疊加源函數(shù)functionimout=ImageAdd(ima,imb,x,y,rate)%UNTITLED此處顯示有關(guān)此函數(shù)的摘要%此處顯示詳

6、細(xì)說明m,n,g=size(ima);a,b,g1=size(imb);ima=im2double(ima);imb=im2double(imb);imout=zeros(m,n,g);fori=1:mforj=1:nif(i=x&j=y&jg)=2*pi-H(bg);H=H/(2*pi);num=min(min(r,g),b);den=r+g+b;den(den=0)=eps;S=1-3.*num./den;H(S=0)=0;I=(r+g+b)/3;hsi=cat(3,H,S,I);imshow(hsi);CMY:functionhsi=rgb2CMY(rgb)rgb=im2double(r

7、gb);r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);C=1-r;M=1-g;Y=1-b;CMY=cat(3,C,M,Y);imshow(CMY);實驗內(nèi)容:讀入彩色圖像,提取其中的R、G、B顏色分量,并展示出來。我們學(xué)習(xí)了多種表示圖像的顏色空間,請編寫程序?qū)D像轉(zhuǎn)換到Y(jié)UV、YIQ、YCrCb、HIS、CMY等顏色空間,并展示出來。顏色空間的轉(zhuǎn)化關(guān)系參考以下公式:原始圖片三個色調(diào)分量I=0.596RQ=0.212RYUVWRGB間的轉(zhuǎn)換Y=0.229R+0.587G+0.114BU=0.147R0.289G+0.436BV=0.615R0.515G-0.100

8、BYIQ與RGB之間的轉(zhuǎn)換Y=0.299R+0.587G+0.114B-0.275G-0.321B-0.523G+0.311BYCrCb與RGB之間的轉(zhuǎn)換Y=0.2990R+0.5870G+0.1140BCr=0.5000R-0.4187G-0.0813B+128Cb=-0.1687R-0.3313G+0.5000B+128HSI與RGB之間的轉(zhuǎn)換I=(R+G+B)/3H=arccos0.5*(R-G)+(R-B)/(R-G)A2+(R-B)(G-B)A0.5)S=1-min(R,G,B)/I圖像DCT變換(包含三種濾波器的平滑和銳化效果比較)代碼globalgmainData;fname,p

9、name=uigetfile(*.jpg,打開文件);iffname=0return;endData,map=imread(fname);%讀取圖像數(shù)據(jù)%new=rgb2gray(Data);%imwrite(new,new.bmp,bmp)%Data=im2bw(Data,map,0.6);%im2bw轉(zhuǎn)為二進(jìn)制閾值0.6%Data=+Data;%邏輯格式轉(zhuǎn)為浮點格式Data=rgb2gray(Data);subplot(1,2,1);%準(zhǔn)備顯示兩幅圖像imshow(Data);functionDCTcode;globalData;%全局變量,用于共享圖像數(shù)據(jù)m,n=size(Data);f

10、id=fopen(dct.bin,w+);%創(chuàng)建dct.bin用存儲DCT和BTC混合編碼后的二進(jìn)制文件。補(bǔ)0使尺寸為4的整數(shù)倍以便分塊m1=4*ceil(m/4);n1=4*ceil(n/4);Datatemp=zeros(m1,n1);Datatemp(1:m,1:n)=Data;%fwrite(fid,m1,long);fwrite(fid,n1,long);%在文件中記錄圖像大小block=zeros(4,4);%4X4大小的子帶forj=1:4:nfori=1:4:mfort=0:1:3forp=0:1:3block(1+t,1+p)=Datatemp(i+t,j+p);%取出4X4

11、數(shù)據(jù)塊endend%對變換后數(shù)據(jù)進(jìn)編碼后存儲或發(fā)送,只取其中的2X2數(shù)據(jù)DctBlock=dct2(block);%存儲(發(fā)送)編碼文件fwrite(fid,DctBlock(1,1),bit12);%直流分量,用12bit量化fwrite(fid,DctBlock(1,2),bit9);%用9bit量化非直流分量fWrite(fid,DctBlock(2,1),bit9);fWrite(fid,DctBlock(2,2),bit9);endendfclose(fid);functionIDctcode;fid=fopen(dct.bin,r);m=fread(fid,1,long);n=fr

12、ead(fid,1,long);data=zeros(m,n);%用于存放圖像數(shù)據(jù)temp=zeros(4,4);block=zeros(4,4);%讀取方塊數(shù)據(jù)forj=1:4:nfori=1:4:mblock(1,1)=fread(fid,1,bit12);block(1,2)=fread(fid,1,bit9);block(2,1)=fread(fid,1,bit9);block(2,2)=fread(fid,1,bit9);temp=idct2(block);fort=0:1:3forp=0:1:3Data(i+t,j+p)=temp(1+t,1+p);endendendenddata

13、=uint8(Data);subplot(1,2,2);imshow(data);%顯示圖像fclose(fid);圖像的傅立葉變換讀入一幅圖像;對圖像做FFT。使用subplot命令,同時顯示原始圖像其頻譜圖;代碼及圖像I=imread(f:lena.jpg);%讀入圖像F=fft2(im2double(I);%FFTF=fftshift(F);%FFT頻譜平移F=real(F);T=log(F+1);%頻譜對數(shù)變換subplot(1,2,1),imshow(I),title(原始圖像);subplot(1,2,2),imshow(T,),title(原始圖像其頻譜圖,)原始圖愫原始圖像其頻

14、譜圖讀入一幅圖像,分別為圖像添加椒鹽、高斯噪聲,做FFT變換。使用subplot命令,將原始圖像、原始圖像頻譜圖、添加噪聲后的圖像,以及噪聲圖像的頻譜圖同時顯示出來。得到原始圖像的頻譜圖的方法同上,然后對原圖像模擬疊加密度為0.04的椒鹽噪聲,然后添加模擬均值為0方差為0.02的高斯噪聲,然后得到噪聲圖像的頻譜圖,方法同上,最后顯示所有圖像。2.2代碼及圖像I=imread(f:lena.jpg);%讀入圖像F=fft2(im2double(I);%FFTF=fftshift(F);%FFT頻譜平移F=real(F);T=log(F+1);%頻譜對數(shù)變換subplot(3,2,1),imsho

15、w(I),title(原始圖像);subplot(3,2,2),imshow(T,),title(原始圖像其頻譜圖,);S=imnoise(I,salt&pepper,0.04);%模擬疊加密度為0.04的椒鹽噪聲K=fft2(im2double(S);%FFTK=fftshift(K);%FFT頻譜平移K=real(K);T=log(K+1);%頻譜對數(shù)變換subplot(3,2,3),imshow(S),title(添加椒鹽噪聲后的圖像);subplot(3,2,4),imshow(T,),title(椒鹽噪聲頻譜圖);G=imnoise(I,gaussian,0,0.02);%模擬均值為

16、0方差為0.02的高斯噪H=fft2(im2double(G);%FFTH=fftshift(H);%FFT頻譜平移H=real(H);添加高斯噪聲后的圖像,);高斯噪聲頻譜圖,)T=log(H+1);%頻譜對數(shù)變換subplot(3,2,5),imshow(G),title(subplot(3,2,6),imshow(T,),title(原始圖像原始圖像其頻譜圖椒鹽噪聲頻譜圖高新噪聲頻譜圖添加楸鹽噪聲后的圖像添加高斯噪聲后的圖像讀入一幅圖像,對圖像分別進(jìn)行高斯低通、巴特沃茲低通、高斯高通和巴特沃茲高通頻域濾波,比較其銳化和平滑效果;3.1 實驗過程對于高斯低通頻域濾波,首先求原圖像的頻譜圖,

17、然后根據(jù)二維高斯低通濾波器(GLPF)定義,對頻譜圖做高斯低通濾波,使低頻通過而使高頻衰減,最后做快速傅里葉逆變換,結(jié)果發(fā)現(xiàn)濾波后的圖像變模糊,比原始圖像減少尖銳的細(xì)節(jié)部分而突出平滑過渡部分;對于巴特沃茲低通頻域濾波,然后根據(jù)二級巴特沃思低通濾波器(BLPF)定義,對頻譜圖做巴特沃茲低通濾波,使低頻通過而使高頻衰減,最后做快速傅里葉逆變換,結(jié)果發(fā)現(xiàn)濾波后的圖像變經(jīng)對比圖像后發(fā)現(xiàn),經(jīng)過巴特模糊,比原始圖像減少尖銳的細(xì)節(jié)部分而突出平滑過渡部分;沃思低通濾波的圖像比經(jīng)過高斯低通頻域濾波的圖像更平滑。對于高斯高通頻域濾波,首先求原圖像的頻譜圖,然后根據(jù)截頻距原點為D0的高斯高通濾波器(GHPF)定義,

18、對頻譜圖做高斯高通濾波,使高頻通過而使低頻衰減,最后做快速傅里葉逆變換,結(jié)果發(fā)現(xiàn)濾波后的圖像變銳化,比原始圖像減少平滑過渡而突出邊緣等細(xì)節(jié)部分;對于巴特沃茲高通頻域濾波,然后根據(jù)二階且截至頻率距原點的距離為D0的巴特沃思高通濾波器(BHPF)定義,對頻譜圖做巴特沃茲高通濾波,使高頻通過而使低頻衰減,最后做快速傅里葉逆變換,結(jié)果發(fā)現(xiàn)濾波后的圖像變銳化,比原始圖像減少平滑過渡而突出邊緣等細(xì)節(jié)部分;經(jīng)對比圖像后發(fā)現(xiàn),經(jīng)過高斯低通濾波的圖像比經(jīng)過高斯低通巴特沃思低通頻域濾波的圖像更平滑。3.2 代碼及圖像%高斯低通頻域濾波I=imread(f:lena.jpg);subplot(1,2,1),imsh

19、ow(I),title(原始圖像);I=double(I);S=fftshift(fft2(I);M,N=size(S);n=2;d0=30;%GLPF濾波,d0=5,15,30(程序中以d0=30為例)n1=floor(M/2);n2=floor(N/2);fori=1:Mforj=1:Nd=sqrt(i-n1)A2+(j-n2)A2);h=1*exp(-1/2*(cT2/d0A2);S(i,j尸h*S(i,j);endendS=ifftshift(S);S=uint8(real(ifft2(S);subplot(1,2,2),imshow(S),title(高斯低通濾波圖像,);%巴特沃斯

20、低通頻域濾波I=imread(f:lena.jpg);subplot(1,2,1),imshow(I),title(原始圖像);F=double(I);%數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號整型的計算G=fft2(F);%傅立葉變換G=fftshift(G);%轉(zhuǎn)換數(shù)據(jù)矩陣M,N=size(G);nn=2;%二階巴特沃斯(Butterworth)低通濾波器d0=30;%截止頻率為30m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt(i-m)A2+(j-n)A2);h=1/(1+0.414*(d/d0(2*nn);%計算低通濾波器傳遞函數(shù)resul

21、t(i,j)=h*G(i,j);endendresult=ifftshift(result);Y2=ifft2(result);Y3=uint8(real(Y2);subplot(1,2,2),imshow(Y3),title(巴特沃斯低通濾波,)%巴特沃斯高通頻域濾波I=imread(f:test.jpg);subplot(121),imshow(I);title(原始圖像);F=double(I);%數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號整型的計算G=fft2(F);%傅立葉變換G=fftshift(G);%轉(zhuǎn)換數(shù)據(jù)矩陣M,N=size(G);nn=2;%二階巴特沃斯(Butterw

22、orth)高通濾波器d0=30;m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt(i-m)A2+(j-n)A2);if(d=0)h=0;elseh=1/(1+0.414*(d0/d)A(2*nn);%計算傳遞函數(shù)endresult(i,j)=h*G(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2);subplot(122),imshow(J3);title(巴特沃斯高通濾波后圖像,);%濾波后圖像顯示原始圖像巴特沃斯抵迪遽波原始囹像高斯忸通漉波圖像高新高通謔展后回

23、像原始圖像as.a豁搔序始圖像a;疑IIIIIIIIsamuHaaaa巴樣沃斯高通漉激后圖像MATLAB寫的圖像處理,直方圖,灰度拉伸,均衡化代碼%繪制直方圖girl=imread(girl.bmp);figure(1);clearall;subplot(3,3,1);imshow(girl);title(原圖);m,n=size(girl);%測量圖像尺寸參數(shù)GreyHist=zeros(1,256);預(yù)創(chuàng)建存放灰度出現(xiàn)概率的向量繪制直方圖計算每級灰度出現(xiàn)的概率,將其fork=0:255GreyHist(k+1)=length(find(girl=k)/(m*n);存入GreyHist中相應(yīng)

24、位置endsubplot(2,2,2);bar(0:255,GreyHist)title(girl的直方圖)xlabel(灰度值)ylabel(出現(xiàn)概率)%灰度拉伸figure(2);girlgrey=girl;prompt=請輸入系數(shù)a,請輸入系數(shù)b;words=請輸入線性拉伸函數(shù):;answer=inputdlg(prompt,words,1,0.5,2);a=str2double(answer(1);b=str2double(answer(2);fori=1:mforj=1:ngirl(i,j)=a*girl(i,j)+b;endendsubplot(3,3,1);imshow(girl

25、);title(灰度拉伸);GreyHist=zeros(1,256);%預(yù)創(chuàng)建存放灰度出現(xiàn)概率的向量fork=0:255GreyHist(k+1)=length(find(girl=k)/(m*n);%計算每級灰度出現(xiàn)的概率,將其存入GreyHist中相應(yīng)位置endsubplot(2,2,2);bar(0:255,GreyHist)%繪制直方圖title(girl的直方圖)xlabel(灰度值)ylabel(出現(xiàn)概率)%圖像均衡化figure(3);cdf=zeros(1,256);cdf(1)=GreyHist(1);fori=2:256cdf(i)=cdf(i-1)+GreyHist(i);endfori=1:mforj=1:nindex=girlgrey(i,j)+1;girlgrey(i,j)=round(cdf(index)*256);if(girlgrey(i,j)255)girlgrey(i,j)=255;endendendsubplot(3,3,1);imshow(girlgrey);title(均衡化后圖像);GreyHist=zeros(1,256);fork=0:255GreyHist(k+1)=length(find(girlgrey=k)/(m*n);endsubplot(2,2,2);bar(0:2

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論