彩色圖轉(zhuǎn)灰度圖matlab實(shí)現(xiàn)代碼_第1頁
彩色圖轉(zhuǎn)灰度圖matlab實(shí)現(xiàn)代碼_第2頁
彩色圖轉(zhuǎn)灰度圖matlab實(shí)現(xiàn)代碼_第3頁
彩色圖轉(zhuǎn)灰度圖matlab實(shí)現(xiàn)代碼_第4頁
彩色圖轉(zhuǎn)灰度圖matlab實(shí)現(xiàn)代碼_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1、設(shè)計(jì)任務(wù)讀入彩色和灰度圖像并顯示;對(duì)彩色圖像轉(zhuǎn)化為灰度圖像并顯示;比較兩種方法的效果。2、設(shè)計(jì)目的掌握彩色圖轉(zhuǎn)灰度圖的基本原理與方法;初步掌握MATLAB的使用方法;了解MATLAB在數(shù)字信號(hào)處理,尤其是圖像處理中顯現(xiàn)出來的優(yōu)勢。3、源代碼%把RGB格式的圖片轉(zhuǎn)換為YUV格式。clear;clc;x=imread(lena512.BMP);line,row,dim=size(x);x1=double(x);%數(shù)據(jù)類型轉(zhuǎn)換subplot(1,3,1)%分割當(dāng)前繪圖窗口為(1,3)的區(qū)域,顯示此圖片與1號(hào)區(qū)域imshow(uint8(x)%數(shù)據(jù)類型轉(zhuǎn)換,并且顯示當(dāng)前圖片title(原圖);%矩

2、陣乘,根據(jù)【RGB】轉(zhuǎn)【YUV】關(guān)系轉(zhuǎn)灰度圖Y1=0.299*x(:,:,1)+0.587*x(:,:,2)+0.114*x(:,:,3);y1=round(Y1);%取整subplot(1,3,2)imshow(uint8(y1)title(根據(jù)各分量轉(zhuǎn)換關(guān)系轉(zhuǎn)換后圖片);%求RGB各個(gè)分量均值轉(zhuǎn)灰度圖Y2=(x(:,:,1)+x(:,:,2)+x(:,:,3)/3;y2=round(Y2);subplot(1,3,3)imshow(uint8(y2)title(求均值轉(zhuǎn)換后圖片);圖片無法顯示哈。圖(1)彩色轉(zhuǎn)灰度圖程序運(yùn)行結(jié)果4、結(jié)果分析由運(yùn)行結(jié)果可以看出,根據(jù)RGB到Y(jié)UV各個(gè)分量關(guān)系

3、轉(zhuǎn)換得到的灰度圖比較真實(shí),而用簡單的求RGB各個(gè)分量的均值轉(zhuǎn)弧度圖,其結(jié)果很不理想,圖片基本看不清楚原來的輪廓。(二):對(duì)灰度圖像實(shí)現(xiàn)按比例縮小和放大1、設(shè)計(jì)任務(wù)1)對(duì)灰度圖實(shí)現(xiàn)在行上kl=0.6,列上k2=0.75的按比例縮??;2)對(duì)灰度圖實(shí)現(xiàn)在行上k1=1.2,列上k2=1.5的按比例放大;2、設(shè)計(jì)目的1)掌握圖像的放大和縮小原理;2)用MATLAB實(shí)現(xiàn)圖像的按比例放大和縮??;3)明白圖像的放大和縮小并不是簡單的互為逆過程。3、源代碼(1)圖像按比例縮小源代碼%圖像按比例縮小clear;clc;X=imread(house.BMP);%讀取圖片line,row=size(X);x=doub

4、le(X);subplot(1,2,1)imshow(uint8(x)title(原圖);%圖片縮小k1=0.6;k2=0.75;%k1,k2分別表示在行和列上縮小的倍數(shù)l_f=1:line;r_f=1:row;m=round(line*k1);n=round(row*k2);%(m,n)表示縮小后的圖片的大小G=zeros(m,n);%初始化縮小后圖像矩陣forl_n=1:m;forr_n=1:n;l_f=round(l_n./k1);r_f=round(r_n./k2);ifl_f=256;G(l_n,r_n)=x(256,r_f);%當(dāng)l_n=154時(shí),l_f256,越界處理,%而當(dāng)r_

5、n=192時(shí),r_f=256,恰好為邊界值,不產(chǎn)生越界。elseG(l_n,r_n)=x(l_f,r_f);%縮小后圖片賦值endendendsubplot(1,2,2)imshow(uint8(G)title(縮小后的圖片);圖(2)圖片縮小程序運(yùn)行結(jié)果(2)圖片按比例放大源代碼%圖像按比例放大clearclcX=imread(splash.BMP);line,row=size(X);x=double(X);figure(1)%繪圖窗口1imshow(uint8(x)title(原圖);%圖片放大k1=1.2;k2=1.5;%k1,k2分別表示在行和列上放大的倍數(shù)l_f=1:line;r_f

6、=1:row;m=round(line*k1);n=round(row*k2);%(m,n)表示放大后的圖片的大小G=zeros(m,n);%初始化放大后圖像矩陣forl_n=1:m;forr_n=1:n;l_f=round(l_n./k1);r_f=round(r_n./k2);G(l_n,r_n)=x(l_f,r_f);%放大后圖片賦值endendfigure(2)%繪圖窗口2imshow(uint8(G)title(放大后的圖片);圖(31)圖片放大程序運(yùn)行結(jié)果圖(32)圖片放大程序運(yùn)行結(jié)果4、結(jié)果分析圖片縮小后,由于在行和列上分別用了不同的縮小比例,所以縮小后的圖片在行列上的像素個(gè)數(shù)與

7、原圖片不同,原圖片house.BMP大小為256*256,而縮小后的圖片大小為154*192。在縮小過程中,圖片像素點(diǎn)下標(biāo)出現(xiàn)了越界現(xiàn)象,處理方法是,將離它最近的像素點(diǎn)賦值給相應(yīng)位置;圖(31)為原圖片,圖(32)為放大后的圖片。因?yàn)樵谛泻土猩嫌辛瞬煌姆糯蟊稊?shù),原圖片splash.BMP大小為512*512,放大后的圖片大小為614*768。三):對(duì)灰度圖像進(jìn)行直方圖均衡化處理1、設(shè)計(jì)任務(wù)1)對(duì)弧度圖像進(jìn)行直方圖均衡化處理;明白灰度均衡的原理和方法。2、設(shè)計(jì)目的1)掌握直方圖均衡原理;2)自己編寫程序,實(shí)現(xiàn)灰度圖的直方圖均衡3、源代碼%直方圖灰度均衡clear;clc;X=imread(pa

8、ttern.BMP);%讀圖x=double(X);%改變數(shù)據(jù)類型figure(1)%第一個(gè)圖形窗口subplot(2,2,1)%分割圖形窗口imshow(uint8(x)%顯示圖片title(原圖);%給圖片標(biāo)題subplot(2,2,2)imhist(uint8(x)%原圖的灰度圖title(原圖的灰度直方圖);%灰度均衡程序段line,row=size(X);%計(jì)算圖像大小Nf=line*row;%計(jì)算圖片像素總數(shù)pf=0:255;%灰度級(jí)分布范圍l=length(pf);%灰度級(jí)長度%求各個(gè)灰度級(jí)的概率分布hf=zeros(1,l);%hf為原圖的各灰度級(jí)概率hp=zeros(1,l)

9、;%hp為計(jì)算出的新的各灰度級(jí)概率pn=zeros(1,l);%pn為新的灰度級(jí)范圍fora=(1:l);%灰度級(jí)個(gè)數(shù)x(find(x=pf(a);%找出灰度級(jí)為pf(a)的像素點(diǎn)N(a)=length(x(find(x=pf(a);%找出各個(gè)灰度值的總數(shù)hf(a)=N(a)./Nf;%計(jì)算第i個(gè)灰度值的概率end%計(jì)算新的各個(gè)灰度值的概率分布%計(jì)算新的灰度值fora=(1:l);ifa=1;hp(a)=hf(a);%當(dāng)a=1時(shí),即第一個(gè)灰度級(jí)的概率%均衡后的圖和原圖的該灰度級(jí)概率相同elsehp(a)=hf(a)+hp(a-1);%當(dāng)a1時(shí),從第二個(gè)灰度級(jí)起%均衡后圖片當(dāng)前灰度級(jí)的概率為原圖

10、當(dāng)前灰度級(jí)與之前概率之和pn=round(hp*255);%pn為均衡后的新圖片的灰度值(round舍入取整)endend%圖像恢復(fù)g=zeros(line,row);%新圖像矩陣初始化form=1:line;forn=l:row;%(m,n)為圖像的大小fora=1:l;ifx(m,n)=pf(a);%掃描原圖,(m,n)點(diǎn)的灰度值等于灰度級(jí)表中的pf(a)值,%取出a值g(m,n)=pn(a);%把對(duì)應(yīng)在新的灰度級(jí)表中的a位置的值賦值給新的圖像endendendendsubplot(2,2,3)imshow(uint8(g)title(灰度均衡后的圖片);subplot(2,2,4)imh

11、ist(uint8(g)title(均衡后的灰度直方圖)圖(41)灰度均衡程序運(yùn)行結(jié)果圖(42)灰度均衡程序運(yùn)行結(jié)果4、結(jié)果分析直方圖均衡的目的就是把原圖中,比較集中的灰度級(jí)分布到整個(gè)灰度級(jí)范圍內(nèi),使得圖片的黑白分明,顯示出更多的細(xì)節(jié)來。由圖(42)后面的灰度直方圖可以看出,原來比較集中的灰度級(jí),現(xiàn)在比較寬,比較均勻的分布在了整個(gè)灰度范圍內(nèi)?;叶染夂蟮膱D片給人的感覺比原來的圖片更清晰,更多的顯示出了其細(xì)節(jié)。(四)對(duì)灰度圖像進(jìn)行濾波處理1、設(shè)計(jì)任務(wù)對(duì)灰度圖像完成均值濾波;對(duì)灰度圖像完成中值濾波;要求濾波器魔波尺寸分別取3*3和5*5.2、設(shè)計(jì)目的掌握圖像濾波原理;用MATLAB編程實(shí)現(xiàn)對(duì)圖像的

12、均值濾波和中值濾波;分析濾波器模板尺寸不同對(duì)濾波效果的影響。3、源代碼(1)均值濾波源代碼%均值濾波程序clear;clc;X=imread(lena256noisegau.BMP);line,row=size(X);x=double(X);subplot(1,2,1)imshow(uint8(x)title(未濾波前圖片);%濾波器主程序段s=input(pleaseinputthesizeoftemplets=);H=(l/s2)*ones(s);G=zeros(line,row);%濾波后圖片矩陣初始化l_x=l:line;r_x=l:row;%圖片行列下標(biāo)范圍x_s=zeros(s);

13、%原圖片中像素點(diǎn)取樣矩陣初始化forp=l:(line-s+l);forq=l:(row-s+l);%p,q為行列下標(biāo)變量foru=l:s;forv=l:s;x_s(u,v)=x(p+u-l,q+v-l);%從原圖片中提取濾波塊endendI=H.*x_s;%與濾波器模塊相乘foru=l:s;forv=l:s;G(p+(s-l)/2,q+(s-l)/2)=round(G(p+(s-l)/2,q+(s-l)/2)+I(u,v);%給濾波后的圖像矩陣賦值endendendend%邊界特殊點(diǎn)取值,一般把原圖像的點(diǎn)復(fù)制過來,不影響視覺效果forl_x=l:(s-l)/2;G(l_x,:)=x(l_x,

14、:);endforl_x=(line-(s-3)/2):line;G(l_x,:)=x(l_x,:);endforr_x=1:(s-1)/2;G(:,r_x)=x(:,r_x);endforr_x=(row-(s-3)/2):row;G(:,r_x)=x(:,r_x);end%圖片顯示subplot(1,2,2)imshow(uint8(G)title(濾波后的圖片);圖(51)均值濾波程序運(yùn)行結(jié)果(s=3)圖(52)均值濾波程序運(yùn)行結(jié)果(s=5)4.1、結(jié)果分析均值濾波的基本原理就是把跟濾波器模塊大小相等的像素模塊與濾波器模塊相乘,將結(jié)果的各個(gè)像素點(diǎn)的均值賦值給模塊中間的或者確定好的像素點(diǎn);

15、濾波器模塊滑動(dòng)掃邊整個(gè)圖像,就達(dá)到了濾波的目的。邊界值不能進(jìn)行濾波處理,可直接從原圖像中復(fù)制過來,并不影響濾波的視覺效果。圖(51)是濾波器模塊大小為3*3的時(shí)候的濾波結(jié)果,感覺比較清晰,但是濾波效果不怎么好,噪聲點(diǎn)還能明顯的看到;圖(52)是濾波器模塊大小為5*5的時(shí)候的濾波結(jié)果,感覺圖像沒有原來的清晰,但是噪聲點(diǎn)卻不那么明顯了。(2)中值濾波源代碼%中值濾波器clear;clc;X=imread(lena256noisesalt.BMP);line,row=size(X);x=double(X);subplot(1,2,1)imshow(uint8(x)title(未濾波前圖片);%濾波器

16、主程序段s=input(pleaseinputthesizeoftemplets=);G=zeros(line,row);%濾波后圖片矩陣初始化l_x=1:line;r_x=1:row;%圖片行列下標(biāo)范圍x_s=zeros(s);%原圖片中像素點(diǎn)取樣矩陣初始化b=zeros(1,sA2);%初始化行向量c=zeros(1,sA2);%中間變量向量forp=1:(line-s+1);forq=1:(row-s+1);%p,q為行列下標(biāo)變量foru=1:s;forv=1:s;x_s(u,v)=x(p+u-1,q+v-1);%從原圖片中提取濾波塊endend%把提取出的像素值排成一行k=1;foru

17、=1:s;forv=1:s;b(k)=x_s(u,v);%把像素值賦值給行向量k=k+1;endend%把行向量b中的值按從小到大的順序排列Nf=sA2;forn=1:NfA2;form=1:(Nf-1);ifb(m)b(m+1);c(m)=b(m+1);b(m+1)=b(m);b(m)=c(m);elseb(m)=b(m);b(m+1)=b(m+1);endendend%給濾波后圖像矩陣賦值foru=1:s;forv=1:s;G(p+(s-1)/2,q+(s-1)/2)=b(Nf-1)/2);%給濾波后的圖像矩陣賦值endendendend%邊界特殊點(diǎn)取值,一般把原圖像的點(diǎn)復(fù)制過來,不影響視覺效果forl_x=1:(s-1)/2;G(l_x,:)=x(l_x,:);endforl_x=(line-(s-3)/2):line;G(l_x,:)=x(l_x,:);endforr_x=1:(s-1)/2;G(:,r_x)=x(:,r_x);endforr_x=(row-(s-3)/2):row;G(:,r_x)=x(:,r_x);end%圖片顯示subplot(1,2,2)imshow(uint8(G)titl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論