版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE19目錄課程設(shè)計(jì)目的…..….…………3課程設(shè)計(jì)要求….………….….3課程設(shè)計(jì)的內(nèi)容………………..……….……3題目分析…………….………..3總體設(shè)計(jì)……………….…………….……….4具體設(shè)計(jì)……………..…….…51、文件……………….………………….……….51.1、打開………..…….…………51.2、保存…………..….…………51.3、退出……..……………….…52、編輯…………..…………………56.2.1、灰度………..….……………56.2.2、亮度………..….……………66.2.3、截圖…………..……………….……………76.2.4、縮放…………..…………….………………73、旋轉(zhuǎn)…………………..…………96.3.1、上下翻轉(zhuǎn)…….…………….………………96.3.2、左右翻轉(zhuǎn)….…………….…96.3.3任意角度翻轉(zhuǎn)…………….…96.4、噪聲………………..…………..………………106.5、濾波……..………..……………106.6、直方圖統(tǒng)計(jì)……………………116.7、頻譜分析………..…..…………126.7.1、頻譜圖…………….……126.7.2、通過高通濾波器……….……………….126.7.3、通過低通濾波器………………..……….136.8、灰度圖像處理………….…….146.8.1、二值圖像………………...146.8.2、創(chuàng)建索引圖像……….…..146.9、顏色模型轉(zhuǎn)換……………..…..……………146.10、操作界面設(shè)計(jì)……..…………15程序調(diào)試及結(jié)果分析….……15心得體會(huì)…………….………16參考文獻(xiàn)…………….………17附錄………….………………18基于MATLAB的圖像處理的課程設(shè)計(jì)摘要:數(shù)字圖像處理技術(shù)是20世紀(jì)60年代發(fā)展起來的一門新興學(xué)科,隨著圖像處理理論和方法的進(jìn)一步完善,使得數(shù)字圖像處理技術(shù)在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,并顯示出廣闊的應(yīng)用前景。MATLAB既是一種直觀、高效的計(jì)算機(jī)語言,同時(shí)又是一個(gè)科學(xué)計(jì)算平臺(tái)。它為數(shù)據(jù)分析和數(shù)據(jù)可視化、算法和應(yīng)用程序開發(fā)提供了最核心的數(shù)學(xué)和高級(jí)圖形工具。根據(jù)它提供的500多個(gè)數(shù)學(xué)和工程函數(shù),工程技術(shù)人員和科學(xué)工作者可以在它的集成環(huán)境中交互或編程以完成各自的計(jì)算。
MATLAB中集成了功能強(qiáng)大的圖像處理工具箱。由于MATLAB語言的語法特征與C語言極為相似,而且更加簡單,更加符合科技人員對(duì)數(shù)學(xué)表達(dá)式的書寫格式,而且這種語言可移植性好、可擴(kuò)展性強(qiáng),再加上其中有豐富的圖像處理函數(shù),所以MATLAB在圖像處理的應(yīng)用中具有很大的優(yōu)勢。本文從預(yù)處理、邊緣檢測、車牌定位、字符分割、字符識(shí)別五個(gè)方面,具體介紹了車牌自動(dòng)識(shí)別的原理。并用MATLAB軟件編程來實(shí)現(xiàn)每一個(gè)部分,最后識(shí)別出汽車牌照。關(guān)鍵詞:MATLAB,數(shù)字圖像處理,車牌識(shí)別系統(tǒng)一、課程設(shè)計(jì)目的Matlab技術(shù)課程設(shè)計(jì)是利用Matlab應(yīng)用軟件的基礎(chǔ)知識(shí)和基本程序設(shè)計(jì)方法,解決選修專業(yè)課程中數(shù)字信號(hào)處理的實(shí)際應(yīng)用問題,從而加深對(duì)理論知識(shí)的掌握,并把所學(xué)的知識(shí)系統(tǒng)、高效的貫穿到實(shí)踐中來,避免理論與實(shí)踐的脫離。同時(shí)提高獨(dú)立編程水平,并在實(shí)踐中不斷完善理論基礎(chǔ),有助于培養(yǎng)綜合能力。二、課程設(shè)計(jì)的內(nèi)容學(xué)習(xí)MATLAB程序設(shè)計(jì),利用MATLAB圖像處理工具箱,設(shè)計(jì)和實(shí)現(xiàn)通過設(shè)計(jì)一個(gè)車牌識(shí)別系統(tǒng)三、課程設(shè)計(jì)的要求:按照軟件工程方法,根據(jù)需求進(jìn)行程序的功能分析和界面設(shè)計(jì),給出設(shè)計(jì)詳細(xì)說明。然后按照自己擬定的功能要求進(jìn)行程序設(shè)計(jì)和調(diào)試。以下幾點(diǎn)是程序必須實(shí)現(xiàn)的功能。1)設(shè)計(jì)圖像用戶界面,讓用戶能夠?qū)D像進(jìn)行調(diào)整,顯示和對(duì)比變換前后的圖像。2)圖像直方圖統(tǒng)計(jì)和直方圖均衡,要求顯示直方圖統(tǒng)計(jì),比較直方圖均衡后的效果。3)顯示識(shí)別結(jié)果四、題目分析(一)研究背景:隨著我國經(jīng)濟(jì)的發(fā)展,綜合實(shí)力的增強(qiáng)和城市化進(jìn)程的加快,國內(nèi)各大城市交通管理能力將面臨重大考驗(yàn)。近年來,各主要城市都將城市智能交通系統(tǒng)(ITS)的建設(shè)作為改善城市交通狀況的重點(diǎn),以緩解城市交通管理的壓力,車牌識(shí)別系統(tǒng)作為智能交通系統(tǒng)的主要技術(shù)之一也得到了很大的發(fā)展。
(二)現(xiàn)狀目前,國內(nèi)的ITS產(chǎn)業(yè)仍然處于起步階段,在產(chǎn)業(yè)鏈中,電子地圖商、導(dǎo)航終端商、嵌入式操作系統(tǒng)均已經(jīng)具備產(chǎn)業(yè)規(guī)模,而所欠缺的環(huán)節(jié)則是對(duì)實(shí)時(shí)交\o"通信"通信息的采集和處理系統(tǒng)。車牌識(shí)別系統(tǒng)是城市智能交通管理系統(tǒng)的一個(gè)重要組成部分,廣泛用于是針對(duì)公路行駛的機(jī)動(dòng)車輛進(jìn)行實(shí)時(shí)監(jiān)控的智能化交通系統(tǒng),電子收費(fèi),交通違規(guī)管理,安全停車管理等重要領(lǐng)域。五、總體設(shè)計(jì)車牌識(shí)是一輛汽車獨(dú)一無二的信息,因此,對(duì)車輛牌照的識(shí)別技術(shù)可以作為辨識(shí)一樣車最為有效地方法。車牌識(shí)別系統(tǒng)包括攝取的汽車圖像,車牌號(hào)碼的識(shí)別,車牌圖像的采集和預(yù)處理,牌照區(qū)域的定位和提取,牌照字符的分割和識(shí)別等幾個(gè)部分組成,如下圖所示。字符分割歸一化輸出結(jié)果字符識(shí)別車牌定位預(yù)處理輸入圖像字符分割歸一化輸出結(jié)果字符識(shí)別車牌定位預(yù)處理輸入圖像圖1車牌識(shí)別系統(tǒng)流程圖六、具體設(shè)計(jì)界面效果圖(1)灰度校正由于牌照?qǐng)D象在拍攝時(shí)受到種種條件的限制和干擾,圖象的灰度值往往與實(shí)際景物不完全匹配,這將直接影響到圖象的后續(xù)處理。如果造成這種影響的原因主要是由于被攝物體的遠(yuǎn)近不同,使得圖象中央?yún)^(qū)域和邊緣區(qū)域的灰度失衡,或是由于攝像頭在掃描時(shí)各點(diǎn)的靈敏度有較大的差異而產(chǎn)生圖象灰度失真,或是由于曝光不足而使得圖像的灰度變化范圍很窄。這時(shí)就可以采用灰度校正的方法來處理,增強(qiáng)灰度的變化范圍、豐富灰度層次,以達(dá)到增強(qiáng)圖象的對(duì)比度和分辨率。我們發(fā)現(xiàn)車輛牌照?qǐng)D象的灰度取值范圍大多局限在r=(50,200)間,而且總體上灰度偏低,圖象較暗圖6灰度增強(qiáng)后的圖像(2)平滑處理對(duì)于受噪聲干擾嚴(yán)重的圖象,由于噪聲點(diǎn)多在頻域中映射為高頻分量,因此可以在通過低通濾波器來濾除噪聲,但實(shí)際中為了簡化算法,也可以直接在空域中用求鄰域平均值的方法來削弱噪聲的影響,這種方法稱為圖象平滑處理。例如,某一象素點(diǎn)的鄰域S有兩種表示方法:8鄰域和4鄰域分別對(duì)應(yīng)的鄰域平均值為,。其中,M為鄰域中除中心象素點(diǎn)f(i,j)之外包括的其它象素總數(shù),對(duì)于4鄰M=4,8鄰域M=8。然而,鄰域平均值的平滑處理會(huì)使得圖象灰度急劇變化的地方,尤其是物體邊緣區(qū)域和字符輪廓等部分產(chǎn)生模糊作用。為了克服這種平均化引起的圖象模糊現(xiàn)象,我們給中心點(diǎn)象素值與其鄰域平均值的差值設(shè)置一固定的閾值,只有大于該閾值的點(diǎn)才能替換為鄰域平均值,而差值不大于閾值時(shí),仍保留原來的值,從而減少由于平均化引起的圖象模糊。邊緣提取是較經(jīng)典的算法,此處邊緣的提取采用的是Roberts算子。綜上所述,結(jié)合MATLAB實(shí)驗(yàn)過程,得出不是每一種圖像處理之初都適合濾波和邊界增強(qiáng)。本次汽車車牌的識(shí)別,為了保存更多的有用信息,經(jīng)過多次比較,選擇圖9作為后期處理的依據(jù)。(6)操作界面設(shè)計(jì)為了使整個(gè)操作界面更加的美觀,對(duì)背景顏色和字體顏色進(jìn)行設(shè)置。二、程序調(diào)試及結(jié)果分析在程序設(shè)計(jì)過程中,碰到很多的問題。一個(gè)函數(shù)只能對(duì)灰度圖像處理,不能對(duì)RGB圖像處理,那么如何才能對(duì)RGB圖像處理呢?這主要是對(duì)MATLAB函數(shù)的不夠清楚,用到的很多函數(shù)是針對(duì)二維數(shù)據(jù)的,而RGB圖像的數(shù)據(jù)是一個(gè)三維矩陣,所以處理要與灰度圖像不同,在開始的時(shí)候,我認(rèn)為應(yīng)該找一個(gè)能夠應(yīng)用于三維矩陣的函數(shù),結(jié)果卻沒找到,后來想到可以把三維數(shù)據(jù)進(jìn)行降維處理,同樣使用二維的函數(shù),只要是同樣處理三次。比如,彩色圖像的濾波處理,直方圖均衡等。同一個(gè)操作對(duì)灰度圖像可以使用,當(dāng)用戶選擇的是彩色圖像時(shí),該操作就會(huì)出錯(cuò)?這是由于設(shè)計(jì)程序時(shí),本身程序是有針對(duì)性的,有些程序只能對(duì)灰度圖像有效,有些對(duì)彩色圖像有效,但是用戶并不清楚這些,所以在設(shè)計(jì)的過程中就要考慮全面,要分開設(shè)計(jì)。在本次課程設(shè)計(jì)中,我均對(duì)每個(gè)程序的開始時(shí),用ifisrgb(x)進(jìn)行判斷。在沒有加入噪聲的情況下,點(diǎn)擊“中值濾波”或是其它濾波,會(huì)提示錯(cuò)誤?這是由于在濾波程序設(shè)計(jì)的過程中,開始用到的變量是handles.noise_img,而這個(gè)變量是在加入噪聲時(shí)候才定義的,所以在沒有加入噪聲的情況下,點(diǎn)擊各個(gè)濾波就會(huì)彈出變量沒有定義的錯(cuò)誤,解決方法就是在文件打開的時(shí)候就給定義handles.noise_img=x。本次設(shè)計(jì)存在一個(gè)比較大的問題,就是每次操作都是獨(dú)立的,比如:要對(duì)圖像加入噪聲,然后在此基礎(chǔ)上進(jìn)行亮度調(diào)整,截圖,頻譜分析等等就不行。我認(rèn)為應(yīng)該是整個(gè)程序設(shè)計(jì)過程中對(duì)變量的設(shè)置沒有做好,應(yīng)該每次操作后,把處理后的數(shù)據(jù)保存在一個(gè)全局變量,這樣還要對(duì)處理后的數(shù)據(jù)進(jìn)行在處理時(shí),只要把這個(gè)全局變量作為原始數(shù)據(jù)帶入就可。心得體會(huì)1、在這次課程設(shè)計(jì)過程中,感觸很深,由于對(duì)MATLAB圖像處理的函數(shù)不熟悉,導(dǎo)致自己走了很多的彎路,比如在設(shè)計(jì)圖像左轉(zhuǎn)90度和右轉(zhuǎn)90度時(shí),由于開始并不知道imrotate函數(shù),只知道上下翻轉(zhuǎn)flipud和左右翻轉(zhuǎn)fliplr函數(shù),想著要怎么用這兩個(gè)函數(shù)來實(shí)現(xiàn)左轉(zhuǎn)和右轉(zhuǎn)呢,如果當(dāng)當(dāng)只用矩陣轉(zhuǎn)置的話,并不能達(dá)到要求,后來想可以結(jié)合flipud和fliplr函數(shù)來實(shí)現(xiàn),下面程序是實(shí)現(xiàn)左轉(zhuǎn)90度:axes(handles.axes2);x=(handles.img);ifisrgb(handles.img)a=x(:,:,1);b=x(:,:,2);c=x(:,:,3);e=a';g=b';f=c';y(:,:,1)=e;y(:,:,2)=g;y(:,:,3)=f;axes(handles.axes2);fork=1:3f(:,:,k)=flipud(y(:,:,k));endimshow(f);elsem=x';y=flipud(m);imshow(y);end同理,也可以通過轉(zhuǎn)置和fliplr函數(shù)實(shí)現(xiàn)右轉(zhuǎn)90度。但是后來發(fā)現(xiàn)其實(shí)只要用imrotate函數(shù)就可以解決問題。通過這次經(jīng)歷后,后來在設(shè)計(jì)其它程序時(shí),盡量找MATLAB自帶的現(xiàn)成函數(shù),而不是一碰到問題就自己想算法,這樣可以節(jié)省較多的時(shí)間。2、在理工科的專業(yè)應(yīng)用背景下,用matlab進(jìn)行相關(guān)計(jì)算與仿真編程的優(yōu)勢非常突出。特定的問題處理算法,我們通常都以M文件的文本形式給定最終的解決方案,自己設(shè)計(jì)的程序是在MATLAB環(huán)境下,用MATLAB語言編寫的,這對(duì)于有安裝MATLAB軟件的計(jì)算機(jī)上運(yùn)行并不存在什么問題,關(guān)鍵是一般的計(jì)算機(jī)很少有去安裝MATLAB軟件的,那么要在這些機(jī)子上運(yùn)行該程序要怎么辦呢,難道要先安裝MATLAB軟件,這顯然太麻煩了,對(duì)于一個(gè)通用的,比較成熟的解決方案,我們當(dāng)然期望它能應(yīng)用到更多的場合,而.exe(可執(zhí)行)文件可運(yùn)行于所有的通用WINDOWS操作系統(tǒng),為此,將M文件轉(zhuǎn)換成.exe文件倒是個(gè)不錯(cuò)的想法。通過查找資料,了解到在生成可執(zhí)行性文件之前,需要進(jìn)行一系列編譯環(huán)境方面的配置:要將用Matlab語言編寫的函數(shù)文件編譯成可獨(dú)立執(zhí)行的*.exe文件(即可脫離Matalab環(huán)境的執(zhí)行程序),首先要安裝和配置好MatlabCompiler,一般來說,在安裝Matlab時(shí)就已經(jīng)安裝了相應(yīng)版本的MatlabCompiler。只是不同版本的Matlab,其編譯器的使用方法有一定的差異,這一點(diǎn)要引起一定的注意。在確定安裝好MatlabCompiler后,還需要對(duì)Compiler進(jìn)行適當(dāng)?shù)呐渲茫椒ㄊ窃贛atlab命令窗口輸入:Mbuild–setup然后根據(jù)提示執(zhí)行相應(yīng)的操作,使用者可根據(jù)自己計(jì)算機(jī)中現(xiàn)有編譯器的情況選擇合適的編譯器,如VC++6.0、VC++7.0、BlandC的編譯器等,目前Matlab好象還不支持VC++8.0(我計(jì)算機(jī)安裝的就是VC++2005,Matlab就無法識(shí)別)。當(dāng)然,如果你的計(jì)算機(jī)里根本就沒有安裝其他任何語言的編譯器,也可選擇Matlab自帶的Lcc編譯器,其實(shí)這個(gè)編譯器對(duì)大多數(shù)用戶已經(jīng)夠用了(我就是選擇的Matlab自帶的Lcc編譯器)。配置好編譯器后,自然就是對(duì)自己編寫的M文件進(jìn)行編譯了。將M文件編譯為獨(dú)立可執(zhí)行文件的語法是:>>mcc–mfun1.mfun2.m…..其中fun1就是最后的可執(zhí)行文件的名稱。3、通過本次課程設(shè)計(jì),使自己對(duì)MATLABGUI設(shè)計(jì)流程有了比較深刻的體會(huì),同時(shí)也了解了一般軟件設(shè)計(jì)的過程。在設(shè)計(jì)過程中碰到了很多的問題,通過這些問題,使自己分析問題,解決問題的能力得到了較大的提高。參考文獻(xiàn)鄭阿奇,曹戈,趙陽.MATLAB實(shí)用教程[M].北京:電子工業(yè)出版社程衛(wèi)國,馮峰,姚東,徐聽.MATLAB5.3應(yīng)用指南[M].北京:人民郵電出版社陳楊.MATLAB6.X圖像編程與圖像處理[M].西安:西安電子科技大學(xué)出版社附錄functionvarargout=two(varargin)%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@two_OpeningFcn,...'gui_OutputFcn',@two_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%Executesjustbeforeerzhiismadevisible.functiontwo_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%接下來是菜單的程序functionfile_Callback(hObject,eventdata,handles)%文件打開程序functionopen_Callback(hObject,eventdata,handles)[name,path]=uigetfile({'*.bmp'},'載入圖像');ifisequal(name,0)|isequal(path,0)errordlg('沒有選中文件','出錯(cuò)');return;elsex=imread([path,name]);axes(handles.axes1);imshow(x);handles.img=x;handles.noise_img=x;guidata(hObject,handles)endfunctionsave_Callback(hObject,eventdata,handles)%文件保存[filename,pathname]=uiputfile('*.bmp','圖片保存為');ifisequal([filename,pathname],[0,0])errordlg('沒有保存','出錯(cuò)');return;elsefile=strcat(pathname,filename);(handles.axes2);i=getimage(gca);imwrite(i,file);endfunctionexit_Callback(hObject,eventdata,handles)clc;closeall;close(gcf);%編輯菜單的程序functionedit_Callback(hObject,eventdata,handles)functionhuidu_Callback(hObject,eventdata,handles)%灰度處理axes(handles.axes2);ifisrgb(handles.img)y=rgb2gray(handles.img);%RGBimshow(y);elsemsgbox('這已經(jīng)是灰度圖像','轉(zhuǎn)換失敗');endfunctionliangdu_Callback(hObject,eventdata,handles)%亮度處理prompt={'輸入?yún)?shù)1','輸入?yún)?shù)2','輸入gamma'};defans={'[00.7]','[01]','1'};p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);p1=str2num(p{1});p2=str2num(p{2});p3=str2num(p{3});gamma=p3;x=(handles.img);y=imadjust(x,p1,p2,gamma);axes(handles.axes2);imshow(y);functionjietu_Callback(hObject,eventdata,handles)%截圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);y=imcrop(handles.img);imshow(y);handles.Timage=y;functionfangda_Callback(hObject,eventdata,handles)functionlingjz_Callback(hObject,eventdata,handles)%鄰近插值放大axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'nearest');%最近鄰插值法放大imshow(y);functionshuangxianfa_Callback(hObject,eventdata,handles)%雙線放大axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bilinear');%最近鄰插值法放大imshow(y);functionshuangsanci_Callback(hObject,eventdata,handles)%雙三次放大axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bicubic');imshow(y);functionsuoxiao_Callback(hObject,eventdata,handles)%鄰近插值縮小axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'0.2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'nearest');%最近鄰插值法縮小imshow(y);functionshuangxian_Callback(hObject,eventdata,handles)%雙線性縮小axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'0.2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bilinear');%最近鄰插值法縮小imshow(y);functionshuangsancisuox_Callback(hObject,eventdata,handles)%雙三次縮小axes(handles.axes2);prompt={'輸入放大倍數(shù):'};defans={'0.2'};p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p{1});y=imresize(handles.img,p1,'bicubic');imshow(y);functionxuanzhuan_Callback(hObject,eventdata,handles)functionupdown_Callback(hObject,eventdata,handles)%上下翻轉(zhuǎn)axes(handles.axes2);x=(handles.img);ifisrgb(handles.img)fork=1:3y(:,:,k)=flipud(x(:,:,k));%上下翻轉(zhuǎn)函數(shù)endimshow(y);elsex=(handles.img);y=flipud(x);imshow(y);endfunctionleftright_Callback(hObject,eventdata,handles)%左右翻轉(zhuǎn)axes(handles.axes2);ifisrgb(handles.img)x=(handles.img);fork=1:3y(:,:,k)=fliplr(x(:,:,k));%左右翻轉(zhuǎn)函數(shù)endimshow(y);elsex=(handles.img);y=fliplr(x);imshow(y);endfunctionzeft90_Callback(hObject,eventdata,handles)%左轉(zhuǎn)90度axes(handles.axes2);x=(handles.img);y=imrotate(x,90);imshow(y);functionright90_Callback(hObject,eventdata,handles)%右轉(zhuǎn)90度axes(handles.axes2);x=(handles.img);y=imrotate(x,-90);imshow(y);functionother_Callback(hObject,eventdata,handles)%任意角度旋轉(zhuǎn)axes(handles.axes2);prompt={'輸入?yún)?shù)1:'};defans={'30'};p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);p1=str2num(p{1});y=imrotate(handles.img,p1);imshow(y);functiongs_Callback(hObject,eventdata,handles)%加入高斯噪聲axes(handles.axes2);prompt={'輸入?yún)?shù)1:','輸入?yún)?shù)2'};defans={'0','0.02'};p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);p1=str2num(p{1});p2=str2num(p{2});y=imnoise(handles.img,'gaussian',p1,p2);imshow(y);handles.noise_img=y;guidata(hObject,handles);functionjy_Callback(hObject,eventdata,handles)%加入椒鹽噪聲prompt={'輸入?yún)?shù)1:'};%對(duì)話框的設(shè)置,用戶輸入的是字符串defans={'0.02'};%缺省值p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);p1=str2num(p{1});%字符串轉(zhuǎn)化為數(shù)值axes(handles.axes2);x=(handles.img);y=imnoise(x,'salt&pepper',p1);imshow(y);handles.noise_img=y;guidata(hObject,handles);functioncx_Callback(hObject,eventdata,handles)%加入乘性噪聲axes(handles.axes2);prompt={'輸入?yún)?shù)1:'};defans={'0.02'};p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);p1=str2num(p{1});y=imnoise(handles.img,'speckle',p1);imshow(y);handles.noise_img=y;guidata(hObject,handles);functionzhifangtutongji_Callback(hObject,eventdata,handles)functionred_Callback(hObject,eventdata,handles)%R直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);x=imhist(handles.img(:,:,1));%直方圖統(tǒng)計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);functiongray_Callback(hObject,eventdata,handles)%G直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);ifisrgb(handles.img)x=imhist(handles.img(:,:,2));%直方圖統(tǒng)計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);elsemsgbox('這是灰度圖像','旋轉(zhuǎn)失敗');endfunctionblue_Callback(hObject,eventdata,handles)%B直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);ifisrgb(handles.img)x=imhist(handles.img(:,:,3));%直方圖統(tǒng)計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis([02550150000]);set(handles.axes2,'xtick',0:50:255);%set(handles.axes2,'ytick',0:2000:15000);elsemsgbox('這是灰度圖像','旋轉(zhuǎn)失敗');endfunctionjunheng_Callback(hObject,eventdata,handles)%直方圖均衡set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);ifisrgb(handles.img)a=histeq(handles.img(:,:,1));b=histeq(handles.img(:,:,2));c=histeq(handles.img(:,:,3));k(:,:,1)=a;k(:,:,2)=b;k(:,:,3)=c;imshow(k);elseh=histeq(handles.img);%直方圖均衡imshow(h);end%頻譜分析functionpinpu_Callback(hObject,eventdata,handles)functionpinputu_Callback(hObject,eventdata,handles)%顯示頻譜圖axes(handles.axes2);x=(handles.img);ifisrgb(x)m=fft2(x(:,:,1));y=fftshift(m);imshow(log(abs(y)),[]);elsem=fft2(x);y=fftshift(m);imshow(log(abs(y)),[]);endfunctionfrequency_Callback(hObject,eventdata,handles)%低通濾波器axes(handles.axes2);x=(handles.img);ifisrgb(x)msgbox('這是彩色圖像,不能通過低通濾波器','失敗');elsey1=imnoise(x,'salt&pepper');%疊加椒鹽噪聲f=double(y1);%數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號(hào)整型的計(jì)算g=fft2(f);%傅立葉變換g=fftshift(g);%轉(zhuǎn)換數(shù)據(jù)矩陣[M,N]=size(g);nn=2;%二階巴特沃斯(Butterworth)低通濾波器d0=10;%截止頻率為10m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%計(jì)算低通濾波器傳遞函數(shù)result(i,j)=h*g(i,j);endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2));imshow(y3);%顯示濾波處理后的圖像endfunctiongaotong_Callback(hObject,eventdata,handles)%高通濾波器axes(handles.axes2);x=(handles.img);ifisrgb(x)msgbox('這是彩色圖像,不能通過高通濾波器','失敗');elsey1=imnoise(x,'gaussian');%加高斯噪聲f=double(y1);%數(shù)據(jù)類型轉(zhuǎn)換k=fft2(f);%傅立葉變換g=fftshift(k);%轉(zhuǎn)換數(shù)據(jù)矩陣[M,N]=size(g);nn=2;d0=3;%截止頻率為3m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);%計(jì)算高通濾波器傳遞函數(shù)ifd<=d0h=0;elseh=1;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2));imshow(y3);end%接下來這段程序是灰度圖像處理程序functionhuiduchuli_Callback(hObject,eventdata,handles)functionerzhituxiang_Callback(hObject,eventdata,handles)%二值圖像axes(handles.axes2);x=(handles.img);ifisrgb(x)msgbox('這是彩色圖像,不能轉(zhuǎn)換為二值圖像','轉(zhuǎn)換失敗');elsej=im2bw(x);imshow(j);endfunctiontuxiangfushi_Callback(hObject,eventdata,handles)%圖像腐蝕axes(handles.axes2);x=(handles.img);ifisrgb(x)msgbox('這是彩色圖像,不能進(jìn)行圖像腐蝕','失敗');elsej=im2bw(x);se=eye(5);bw=bwmorph(j,'erode');imshow(bw);endfunctionsuoyintuxiang_Callback(hObject,eventdata,handles)%創(chuàng)建索引圖像axes(handles.axes2);x=(handles.img);ifisrgb(x)msgbox('這是彩色圖像,不能創(chuàng)建索引圖像','創(chuàng)建失敗');elsey=grayslice(x,16);axes(handles.axes2);imshow(y,jet(16));end%這段是顏色模型的轉(zhuǎn)換functionysmx_Callback(hObject,eventdata,handles)functionhsv_Callback(hObject,eventdata,handles)%RGB圖像轉(zhuǎn)HSVaxes(handles.axes2);x=(handles.img);ifisrgb(x)HSV=rgb2hsv(x);imshow(HSV);elsemsgbox('這是灰度圖像,不能轉(zhuǎn)換','轉(zhuǎn)換失敗');endfunctionntsc_Callback(hObject,eventdata,handles)%RGB轉(zhuǎn)NTSCaxes(handles.axes2);x=(handles.img);ifisrgb(x)ntsc=rgb2ntsc(x);imshow(ntsc);elsemsgbox('這是灰度圖像,不能轉(zhuǎn)換','轉(zhuǎn)換失敗');endfunctionycbcr_Callback(hObject,eventdata,handles)%RGB轉(zhuǎn)YCBCRaxes(handles.axes2);x=(handles.img);ifisrgb(x)ycbcr=rgb2ycbcr(x);imshow(ycbcr);elsemsgbox('這是灰度圖像,不能轉(zhuǎn)換','轉(zhuǎn)換失敗');end%這是濾波程序functionlvbo_SelectionChangeFcn(hObject,eventdata,handles)str=get(hObject,'string');set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);i=handles.noise_img;ifisrgb(i)a=handles.noise_img(:,:,1);b=handles.noise_img(:,:,2);c=handles.noise_img(:,:,3);switchstrcase'中值濾波'k(:,:,1)=medfilt2(a);k(:,:,2)=medfilt2(b);k(:,:,3)=medfilt2(c);im
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年陜西省高二下學(xué)期期末教學(xué)質(zhì)量檢測歷史試題(解析版)
- 2024-2025學(xué)年山東省威海市高一下學(xué)期期末考試歷史試題(解析版)
- 松下新風(fēng)產(chǎn)品培訓(xùn)
- 2026年?duì)I銷策略分析試題企業(yè)市場推廣與銷售策略題
- 2026年飲食健康指導(dǎo)營養(yǎng)師考試題庫及答案詳解
- 2026年文學(xué)知識(shí)全面測試模擬題
- 2026年人力資源管理實(shí)務(wù)與人才選拔技巧試題
- 2026年人工智能核心知識(shí)AI安全認(rèn)證考試題
- 2026年物流與供應(yīng)鏈管理崗位面試題及答案詳解
- 2026年經(jīng)濟(jì)學(xué)者宏觀經(jīng)濟(jì)分析政策解讀專業(yè)試題集
- 醫(yī)院網(wǎng)絡(luò)安全保障方案與實(shí)施步驟
- 綠色化學(xué)綠色溶劑課件
- 弱電智能化系統(tǒng)設(shè)計(jì)方案匯報(bào)
- 我們一起迎戰(zhàn)中考初三家長會(huì)課件
- 醫(yī)院醫(yī)保上傳數(shù)據(jù)質(zhì)量控制規(guī)范
- 2025年蘭大一院護(hù)理題庫及答案
- 2025華晉焦煤井下操作技能人員招聘100人(山西)模擬試卷附答案詳解
- 軍人離婚申請(qǐng)書樣本
- 地質(zhì)災(zāi)害應(yīng)急演練腳本
- 中國行政問責(zé)制現(xiàn)存問題剖析與優(yōu)化路徑研究
- 江蘇省城鎮(zhèn)供水管道清洗工程估價(jià)表及工程量計(jì)算標(biāo)準(zhǔn) 2025
評(píng)論
0/150
提交評(píng)論