版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、電子(dinz)科技(kj)大學(xué)(dxu)數(shù)字圖像處理課程設(shè)計(jì) 課題名稱 數(shù)字圖像處理 院(系) 通信與信息工程學(xué)院 專 業(yè) 通信工程 姓 名 學(xué) 號(hào) 起訖日期 指導(dǎo)教師 2015年12月15日目 錄摘要(zhiyo): 03課題(kt)一:圖像(t xin)的灰度級(jí)分辨率調(diào)整04課題二:噪聲的疊加與頻域低通濾波器應(yīng)用06課題三:頂帽變換在圖像陰影校正方面的應(yīng)用13課題四:利用Hough變換檢測(cè)圖像中的直線15課題五:圖像的閾值分割操作及區(qū)域?qū)傩?0課題六:基于MATLAB的GUI程序設(shè)計(jì)23結(jié)束語(yǔ): 36參考文獻(xiàn): 37基于(jy)MATLAB的數(shù)字(shz)圖像處理(t xin ch l)
2、課題設(shè)計(jì)摘 要本文首先對(duì)數(shù)字圖像處理的相關(guān)定義、概念、算法與常用變換進(jìn)行了介紹;并通過(guò)七個(gè)課題實(shí)例,借助MATLAB的圖像處理工具箱(Computer Vision System Toolbox)對(duì)這些案例逐一實(shí)現(xiàn),包括圖像的灰度值調(diào)整、圖像噪聲的疊加、頻域低通濾波器、閾值分割、Hough變換等,常用的圖像變化與處理;然后通過(guò)MATLAB的GUI程序設(shè)計(jì),對(duì)部分功能進(jìn)行模塊化整合,設(shè)計(jì)出了數(shù)字圖像處理的簡(jiǎn)易軟件;最后給出了軟件的幫助文件以及該簡(jiǎn)易程序的系統(tǒng)結(jié)構(gòu)和m代碼。關(guān)鍵詞:灰度值調(diào)整 噪聲 圖像變換 MATLAB GUI設(shè)計(jì)課題一:圖像的灰度級(jí)分辨率調(diào)整設(shè)計(jì)(shj)要求(yoqi):將圖
3、像(t xin)的灰度級(jí)分辨率調(diào)整至,并在同一個(gè)figure窗口上將它們顯示出來(lái)。設(shè)計(jì)思路:灰度級(jí)分辨率又稱色階,是指圖像中可分辨的灰度級(jí)的數(shù)目,它與存儲(chǔ)灰度級(jí)別所使用的數(shù)據(jù)類型有關(guān)。由于灰度級(jí)度量的是投射到傳感器上的光輻射值的強(qiáng)度,所以灰度級(jí)分辨率又稱為輻射計(jì)量分辨率。隨著圖像灰度級(jí)分辨率的的逐漸降低,圖像中所包含的顏色數(shù)目將變得越來(lái)越少,從而在顏色維度造成圖像信息量的退化。MATLAB提供了histeq函數(shù)用于圖像灰度值的改變,調(diào)用格式如下:J = histeq(I,n)其中J為變換后的圖像,I為輸入圖像,n為變換的灰度值。依次改變n的值為 128、64、32、16、8、4、2 就可以得到
4、灰度值分辨率為128、64、32、16、8、4、2的輸出圖像。利用MATLAB的subplot命令可以將不同灰度的圖像放在同一個(gè)figure中方便對(duì)比。課題實(shí)現(xiàn):該思路的MATLAB源代碼如下:in_photo=imread(lena.bmp);%讀入圖片“l(fā)ena.bmp”,位置在matlab當(dāng)前工作區(qū)路徑下D:TempProjectMatlabWorksfor i = 128,64,32,16,8,4,2 syms(out_photo,num2str(i); %利用for循環(huán)定義7個(gè)變量,作為不同灰度值分辨率的輸出變量 eval(out_photo,num2str(i), =histeq(
5、in_photo,i),;); %histeq函數(shù)(hnsh)用于改變圖像灰度值,用eval函數(shù)(hnsh)給變量循環(huán)賦值end figure();set(figure(1),NumberTitle,off,Name,圖像(t xin)的灰度級(jí)調(diào)整) ;%設(shè)置figure名稱subplot(2, 4, 1); imshow(in_photo,); title(Orginal);subplot(2, 4, 2); imshow(out_photo128,); title(Gray value 128);subplot(2, 4, 3);imshow(out_photo64,);title(Gra
6、y value 64);subplot(2, 4, 4);imshow(out_photo32,);title(Gray value 32);subplot(2, 4, 5);imshow(out_photo16,);title(Gray value 16);subplot(2, 4, 6);imshow(out_photo8,);title(Gray value 8);subplot(2, 4, 7);imshow(out_photo4,);title(Gray value 4);subplot(2, 4, 8);imshow(out_photo2,);title(Gray value 2)
7、;%輸出所有圖形程序運(yùn)行結(jié)果如下圖:可以看出原圖lena.bmp被轉(zhuǎn)化為灰度值分辨率不同的7個(gè)圖像。課題(kt)二:噪聲(zoshng)的疊加與頻域低通濾波器應(yīng)用(yngyng)設(shè)計(jì)要求:往圖像中疊加不同類型的噪聲,并設(shè)計(jì)一個(gè)頻域低通濾波器來(lái)去除之。設(shè)計(jì)思路:噪聲疊加:首先需要在輸入圖片中疊加不同類型的噪聲。MATLAB提供了imnoise函數(shù)用于在圖像中加入噪聲,調(diào)用格式如下:J = imnoise(I,type)J為疊加噪聲后的圖像,I為輸入圖像,type分為:gaussian(Gaussian white noise with constant mean and variance);lo
8、calvar(Zero-mean Gaussian white noise with an intensity-dependent variance);poisson(Poisson noise);salt & pepper(On and off pixels);speckle(Multiplicative noise).二、低通頻域?yàn)V波器算法原理空間域?yàn)V波和頻率域?yàn)V波的基礎(chǔ)都是卷積定理,這說(shuō)明兩個(gè)空間函數(shù)的卷積可通過(guò)計(jì)算兩個(gè)傅里葉變換函數(shù)的乘積的逆變換得到;相反地,兩個(gè)空間函數(shù)的卷積的傅里葉變換恰好等于兩個(gè)函數(shù)傅里葉變換的乘積。然而對(duì)于數(shù)字圖像僅當(dāng)f(x,y) 和h(x,y) 正確經(jīng)過(guò)零填充
9、后, 表達(dá)式才嚴(yán)格有效。故在進(jìn)行傅里葉變換前需先進(jìn)行填零操作。經(jīng)過(guò)上述分析, 可得到傅里葉變換的基本步驟:(1) 計(jì)算填充參數(shù)(2) 利用填充參數(shù)進(jìn)行傅里葉變換(3) 根據(jù)type 生成傳遞函數(shù)H(x,y)(4) 傳遞函數(shù)與傅里葉變換(binhun)相乘(5) 取G 的傅里葉逆變換實(shí)部常見(jiàn)(chn jin)的低通頻域?yàn)V波器有三種(sn zhn),分別為:理想低通濾波器,n階巴特沃茨低通濾波器和高斯低通濾波器。三、低通頻域?yàn)V波器在 Matlab中的實(shí)現(xiàn)結(jié)合傅里葉變換基本步驟和函數(shù) dftuv(M,N),在 Matlab中實(shí)現(xiàn)低通頻域?yàn)V波器的代碼如下:function g,F = lpfilter
10、(f,type)%函數(shù)參數(shù):彩色圖像 f,低通濾波類型 type課題實(shí)現(xiàn):代碼分為三部分:1. 用來(lái)實(shí)現(xiàn)二維數(shù)組的meshgrid 表示的函數(shù)dftuv.m ;2.低通濾波器lpfilter.m ;3.主函數(shù)/codebeginfunction U,Y = dftuv( X,N )%dftuv (M,N) 來(lái)實(shí)現(xiàn)二維數(shù)組的meshgrid 表示u=0:(X-1);w=0:(N-1);idx=find(uX/2);u(idx)=u(idx)-X;idy=find(wN/2);w(idy)=w(idy)-N;Y,U=meshgrid(w,u);endfunction g,F = lpfilter(
11、f,type)%函數(shù)參數(shù):彩色圖像f,低通濾波類型type%函數(shù)返回值:低通模糊圖像g,低通頻率圖像F%D0 取填充后圖像寬度的5%當(dāng)type 為ideal 時(shí),表理想低通濾波器%當(dāng)type 為 btw 時(shí),表n 階巴特低通沃茲濾波器%當(dāng)type 為 gaussian 時(shí),表高斯低通濾波器f=im2double(f);PQ=2*(size(f);%DFT 之前補(bǔ)零F=fft2(f,PQ(1),PQ(2);%U,V=dftuv(PQ(1),PQ(2);D=sqrt(U.2+V.2); %采用(ciyng)歐氏距離D0=0.05*PQ(2);% 設(shè)定(sh dn)距離初值n=5;switch(ty
12、pe)case idealH=double(D max_len)max_len = lenxy_long = xyendend % highlight the longest line segmentplot(xy_long(:,1),xy_long(:,2),LineWidth,2,Color,blue); L1 Index1=max(Len(:)Len(Index1)=0L2 Index2=max(Len(:) x1=lines(Index1).point1(1) lines(Index1).point2(1)y1=lines(Index1).point1(2) lines(Index1)
13、.point2(2)x2=lines(Index2).point1(1) lines(Index2).point2(1)y2=lines(Index2).point1(2) lines(Index2).point2(2) K1=(lines(Index1).point1(2)-lines(Index1).point2(2)/(lines(Index1).point1(1)-lines(Index1).point2(1)K2=(lines(Index2).point1(2)-lines(Index2).point2(2)/(lines(Index2).point1(1)-lines(Index2
14、).point2(1) hold onm,n = size(BW); % 尺寸(ch cun)BW1=zeros(m,n);b1=y1(1)-K1*x1(1)b2=y2(1)-K2*x2(1)for x=1:nfor y=1:mif y=round(K1*x+b1)|y=round(K2*x+b2)BW1(y,x)=1; end endendfor x=1:nfor y=1:m if ceil(K1*x+b1)=ceil(K2*x+b2)y1=round(K1*x+b1)BW1(1:y1-1,:)=0;endendendfigure,imshow(BW1)/code end運(yùn)行(ynxng)結(jié)
15、果(ji gu):課題(kt)五:圖像(t xin)的閾值分割操作(cozu)及區(qū)域?qū)傩栽O(shè)計(jì)要求:對(duì)圖像執(zhí)行閾值分割操作并統(tǒng)計(jì)出每一個(gè)區(qū)域塊的屬性,然后,將每個(gè)區(qū)域的中心和外接矩形給標(biāo)注出來(lái)。(提示:如果分割后的區(qū)域塊數(shù)太多,建議采用Matlab下的bwareaopen函數(shù)來(lái)篩選掉一部分區(qū)域塊)。設(shè)計(jì)思路:在對(duì)圖像的研究和應(yīng)用中,人們往往僅對(duì)圖像中的某些部分感興趣,這些部分一般稱為目標(biāo)或者前景;為了辨識(shí)和分析目標(biāo),需要將有關(guān)區(qū)域分離并提取出來(lái),在此基礎(chǔ)上方可對(duì)目標(biāo)做進(jìn)一步利用,如特征提取和參數(shù)測(cè)量等;圖像分割就是指把圖像分解成若干個(gè)特定的、各具特性的區(qū)域并提取出感興趣目標(biāo)的技術(shù)和過(guò)程,其中的特
16、性可以是灰度、顏色、紋理等,目標(biāo)可以對(duì)應(yīng)單個(gè)區(qū)域,也可以對(duì)應(yīng)多個(gè)區(qū)域。圖像分割后提取出的目標(biāo)可以應(yīng)用于圖像語(yǔ)義識(shí)別、圖像搜索等領(lǐng)域?;叶乳撝捣指罘ㄊ且环N最常用的并行區(qū)域技術(shù),它是圖像分割中應(yīng)用數(shù)量最多的一類。閾值分割方法實(shí)際上是輸入圖像f到輸出圖像g的如下變換:gi,j=1 fi,jT0 fi,j 打開(kāi)圖片成功);%將打開(kāi)文件操作記錄與列表框(logs)axes(handles.axes5); imshow(im); % %菜單欄-文件-保存 功能:保存輸出圖片function Untitled_3_Callback(hObject, eventdata, handles)global BW;
17、 %定義變量作為輸出圖像time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);filename,pathname,filterindex=uiputfile(*.bmp;*.tif;*.png,保存輸出圖片);if filterindex=0return %如果取消操作,返回elsestr=pathname filename; %合成路徑+文件名axes(handles.axes6); %使用axes6輸出圖像imwrite(BW,str); %寫(xiě)入圖片信息,即保存圖片set(handles.listbox3,string,strvcat
18、(get(handles.listbox3,string),time_string, 圖片已保存);%將文件保存成功的信息記錄與(log)end % %菜單欄-文件(wnjin)-退出(tuch) 功能(gngnng):退出GUIfunction Untitled_5_Callback(hObject, eventdata, handles) clc;clear all;close(gcf); % Executes on selection change in popupmenu3.%下拉式菜單 功能:內(nèi)置圖片選擇function popupmenu3_Callback(hObject, ev
19、entdata, handles)contents = cellstr(get(hObject,string);time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);item_index = get(hObject,value);set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, ,contentsitem_index);%實(shí)時(shí)的記錄當(dāng)前選擇的圖片global im;val=get(hObject,Value);switch conte
20、ntsval case lena.bmp im=imread(D:lena.bmp); %內(nèi)置圖片放在D盤根目錄下 axes(handles.axes5); imshow(im); casebank.bmp im=imread(D:bank.bmp); axes(handles.axes5); imshow(im); casejet.bmp im=imread(D:jet.bmp); axes(handles.axes5); imshow(im); caserice.bmp im=imread(D:rice.bmp); axes(handles.axes5); imshow(im); case
21、camera.bmp im=imread(D:camera.bmp); axes(handles.axes5); imshow(im);end %操作面板-確定 功能:在輸出圖像坐標(biāo)系(axes6)中顯示圖像function pushbutton3_Callback(hObject, eventdata, handles) global BW;axes(handles.axes6);imshow(BW); % %菜單欄-幫助(bngzh)-關(guān)于(guny) 功能(gngnng):作者信息function Untitled_8_Callback(hObject, eventdata, handl
22、es) hObject = msgbox(電子科技大學(xué);通信與信息工程學(xué)院;王;201401,關(guān)于作者,none,non-modal);ht = findobj(hObject, Type, text);set(ht, FontSize, 12, Unit, normal);set(hObject, Position, 200 200 150 150);%固定窗口位置 % %菜單欄-處理-灰度調(diào)整 功能:調(diào)整輸入圖像的灰度f(wàn)unction Untitled_9_Callback(hObject, eventdata, handles) global BW;global im;global x;
23、%im = rgb2gray(im);%若輸入圖像可能為彩色圖像 加入 im=rgb2gray(im);BW = histeq(im,x); %參數(shù)面板-灰度選擇 功能:選擇所需灰度值function uibuttongroup4_SelectionChangedFcn(hObject, eventdata, handles) global x;%定義全局變量作為灰度值參數(shù)xx=2;%默認(rèn)調(diào)整至二值圖像time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);switch get(eventdata.NewValue,Tag) case ra
24、diobutton11 x=256; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇(xunz)256); %實(shí)時(shí)(sh sh)記錄下灰度值選擇 case radiobutton12 x=128; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇(xunz)128); case radiobutton13 x=64; set(handles.listbox3,st
25、ring,strvcat(get(handles.listbox3,string),time_string, 灰度選擇64); case radiobutton14 x=32; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇32); case radiobutton15 x=16; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇16); case radiobu
26、tton16 x=8; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇8); case radiobutton17 x=4; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 灰度選擇4); case radiobutton18 x=2; set(handles.listbox3,string,strvcat(get(handles.listbox3,string),tim
27、e_string, 灰度選擇2);end % %菜單欄-處理(chl)-gaussian噪聲(zoshng)疊加 功能:疊加高斯(o s)噪聲function Untitled_12_Callback(hObject, eventdata, handles) global BW;global im;global M;global V;%M,V為gaussian函數(shù)的參數(shù)time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);M=str2num(get(handles.edit18,String);V=str2num(get(handles.
28、edit19,String);%從編輯框傳遞參數(shù)M,V;BW = imnoise(im,gaussian,M,V);set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, gaussian噪聲);%實(shí)時(shí)記錄下處理類型 % %菜單欄-處理-椒鹽噪聲疊加 功能:疊加椒鹽噪聲function Untitled_13_Callback(hObject, eventdata, handles) global im;global BW;global d; %d為椒鹽噪聲參數(shù)time_string = num
29、2str(datestr(now,yyyy-mm-dd-HH:MM:SS);d=str2num(get(handles.edit20,String);%從參數(shù)編輯框傳遞參數(shù)BW = imnoise(im,salt & pepper,d);set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, salt&pepper噪聲); % %菜單欄-處理-speckle噪聲疊加 功能:疊加speckle噪聲function Untitled_14_Callback(hObject, eventdata, h
30、andles) global im;global BW;global v;time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);v=str2num(get(handles.edit21,String);BW = imnoise(im,speckle,v);set(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, speckle噪聲); %參數(shù)(cnsh)編輯框 功能(gngnng):傳遞speckle噪聲(zoshng)參數(shù)vfunction
31、 edit21_Callback(hObject, eventdata, handles) global v;v=str2num(get(hObject,String);if(isempty(v)%輸入被嚴(yán)格限制,只能是數(shù)字 set(hObject,String,0.04);%v默認(rèn)值0.04end %參數(shù)編輯框 功能:傳遞椒鹽噪聲參數(shù)dfunction edit20_Callback(hObject, eventdata, handles) global d;d=str2num(get(hObject,String);if(isempty(d) set(hObject,String,0.05
32、);%d默認(rèn)值0.05end %參數(shù)編輯框 功能:傳遞高斯噪聲參數(shù)Vfunction edit19_Callback(hObject, eventdata, handles) global V;V = str2num(get(hObject,String);if(isempty(V) set(hObject,String,0.01);%V默認(rèn)值0.01end %參數(shù)編輯框 功能:傳遞高斯噪聲參數(shù)Mfunction edit18_Callback(hObject, eventdata, handles) global M;M=str2num(get(hObject,String);if(isem
33、pty(M) set(hObject,String,0);%M默認(rèn)值0end % %工具欄-打開(kāi)文件圖標(biāo) 功能:打開(kāi)圖片文件function uipushtool1_ClickedCallback(hObject, eventdata, handles) global im;time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);filename,pathname = uigetfile(*.*;*.bmp;*.tif;*.png,選擇(xunz)圖片); str=pathname filename; im=imread(str); set
34、(handles.listbox3,string,strvcat(get(handles.listbox3,string),time_string, 圖片打開(kāi)(d ki)成功);axes(handles.axes5); imshow(im); % %工具欄-保存(bocn)文件圖標(biāo) 功能:保存輸出圖像function uipushtool2_ClickedCallback(hObject, eventdata, handles) global BW;time_string = num2str(datestr(now,yyyy-mm-dd-HH:MM:SS);filename,pathname,filterindex=uiputfile(*.bmp;*.tif;*.png,save picture);if filterindex=0retur
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《倉(cāng)庫(kù)現(xiàn)場(chǎng)管理》課件
- 《倉(cāng)庫(kù)庫(kù)存管理系統(tǒng)》課件
- 《小學(xué)細(xì)節(jié)描寫(xiě)》課件
- 單位管理制度集粹選集員工管理篇
- 單位管理制度合并匯編【職員管理】
- 四川省南充市重點(diǎn)高中2024-2025學(xué)年高三上學(xué)期12月月考地理試卷含答案
- 單位管理制度分享合集職員管理篇十篇
- 單位管理制度范文大合集【人事管理】十篇
- 單位管理制度呈現(xiàn)大全職工管理篇十篇
- 《運(yùn)算律》教案(20篇)
- 產(chǎn)品經(jīng)理必備BP模板(中文版)
- 維西縣城市生活垃圾熱解處理工程環(huán)評(píng)報(bào)告
- GB/T 9128.2-2023鋼制管法蘭用金屬環(huán)墊第2部分:Class系列
- 網(wǎng)絡(luò)經(jīng)濟(jì)學(xué)PPT完整全套教學(xué)課件
- 2023年主治醫(yī)師(中級(jí))-臨床醫(yī)學(xué)檢驗(yàn)學(xué)(中級(jí))代碼:352考試參考題庫(kù)附帶答案
- 機(jī)械原理課程設(shè)計(jì)鎖梁自動(dòng)成型機(jī)床切削機(jī)構(gòu)
- 順產(chǎn)臨床路徑
- 人教版培智一年級(jí)上生活適應(yīng)教案
- 推動(dòng)架機(jī)械加工工序卡片
- RoHS檢測(cè)報(bào)告完整版
- 中國(guó)近現(xiàn)代史綱要(上海建橋?qū)W院)智慧樹(shù)知到答案章節(jié)測(cè)試2023年
評(píng)論
0/150
提交評(píng)論