




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 目錄一、 課程設(shè)計(jì)目的.3二、 課程設(shè)計(jì)要求.3三、 課程設(shè)計(jì)的內(nèi)容.3四、 題目分析.3五、 總體設(shè)計(jì).4六、 具體設(shè)計(jì).51、文件.51.1、打開(kāi).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、通過(guò)高通濾波器 .126.7.3、通過(guò)低通濾波器. .136.8、灰度圖像處理 . .146.8.1、二值圖像. .
2、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ā)展起來(lái)的一門新興學(xué)科,隨著圖像處理理論和方法的進(jìn)一步完善,使得數(shù)字圖像處理技術(shù)在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,并顯示出廣闊的應(yīng)用前景。MATLAB既是一種直觀、高效的計(jì)算機(jī)語(yǔ)言,同時(shí)又是一個(gè)科學(xué)計(jì)算平臺(tái)。它為數(shù)據(jù)分析和數(shù)據(jù)可視化、算法和應(yīng)用程序開(kāi)發(fā)提供了最核心的數(shù)學(xué)和高級(jí)圖形工具。根據(jù)它提供的500多個(gè)數(shù)學(xué)和工程函數(shù),工程技術(shù)人員和科學(xué)工作者可
3、以在它的集成環(huán)境中交互或編程以完成各自的計(jì)算。MATLAB中集成了功能強(qiáng)大的圖像處理工具箱。由于MATLAB語(yǔ)言的語(yǔ)法特征與C語(yǔ)言極為相似,而且更加簡(jiǎn)單,更加符合科技人員對(duì)數(shù)學(xué)表達(dá)式的書(shū)寫(xiě)格式,而且這種語(yǔ)言可移植性好、可擴(kuò)展性強(qiáng),再加上其中有豐富的圖像處理函數(shù),所以MATLAB在圖像處理的應(yīng)用中具有很大的優(yōu)勢(shì)。本文從預(yù)處理、邊緣檢測(cè)、車牌定位、字符分割、字符識(shí)別五個(gè)方面,具體介紹了車牌自動(dòng)識(shí)別的原理。并用MATLAB軟件編程來(lái)實(shí)現(xiàn)每一個(gè)部分,最后識(shí)別出汽車牌照。關(guān)鍵詞:MATLAB,數(shù)字圖像處理,車牌識(shí)別系統(tǒng)一、課程設(shè)計(jì)目的Matlab技術(shù)課程設(shè)計(jì)是利用Matlab應(yīng)用軟件的基礎(chǔ)知識(shí)和基本程序
4、設(shè)計(jì)方法,解決選修專業(yè)課程中數(shù)字信號(hào)處理的實(shí)際應(yīng)用問(wèn)題,從而加深對(duì)理論知識(shí)的掌握,并把所學(xué)的知識(shí)系統(tǒng)、高效的貫穿到實(shí)踐中來(lái),避免理論與實(shí)踐的脫離。同時(shí)提高獨(dú)立編程水平,并在實(shí)踐中不斷完善理論基礎(chǔ),有助于培養(yǎng)綜合能力。二、課程設(shè)計(jì)的內(nèi)容學(xué)習(xí)MATLAB程序設(shè)計(jì),利用MATLAB圖像處理工具箱,設(shè)計(jì)和實(shí)現(xiàn)通過(guò)設(shè)計(jì)一個(gè)車牌識(shí)別系統(tǒng)三、課程設(shè)計(jì)的要求:按照軟件工程方法,根據(jù)需求進(jìn)行程序的功能分析和界面設(shè)計(jì),給出設(shè)計(jì)詳細(xì)說(shuō)明。然后按照自己擬定的功能要求進(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ì)和直方圖均
5、衡,要求顯示直方圖統(tǒng)計(jì),比較直方圖均衡后的效果。3)顯示識(shí)別結(jié)果四、題目分析(一)研究背景:隨著我國(guó)經(jīng)濟(jì)的發(fā)展,綜合實(shí)力的增強(qiáng)和城市化進(jìn)程的加快,國(guó)內(nèi)各大城市交通管理能力將面臨重大考驗(yàn)。近年來(lái),各主要城市都將城市智能交通系統(tǒng)(ITS)的建設(shè)作為改善城市交通狀況的重點(diǎn),以緩解城市交通管理的壓力,車牌識(shí)別系統(tǒng)作為智能交通系統(tǒng)的主要技術(shù)之一也得到了很大的發(fā)展。 (二)現(xiàn)狀目前,國(guó)內(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í)交通信息的采集和處理系統(tǒng)。車牌識(shí)別系統(tǒng)是城市智能交通管理系統(tǒng)的一個(gè)重要組成部分,廣泛用于是針對(duì)公
6、路行駛的機(jī)動(dòng)車輛進(jìn)行實(shí)時(shí)監(jiān)控的智能化交通系統(tǒng),電子收費(fèi),交通違規(guī)管理,安全停車管理等重要領(lǐng)域。五、總體設(shè)計(jì)車牌識(shí)是一輛汽車獨(dú)一無(wú)二的信息,因此,對(duì)車輛牌照的識(shí)別技術(shù)可以作為辨識(shí)一樣車最為有效地方法。車牌識(shí)別系統(tǒng)包括攝取的汽車圖像,車牌號(hào)碼的識(shí)別,車牌圖像的采集和預(yù)處理,牌照區(qū)域的定位和提取,牌照字符的分割和識(shí)別等幾個(gè)部分組成,如下圖所示。字符分割歸一化輸出結(jié)果字符識(shí)別車牌定位預(yù)處理輸入圖像 圖1 車牌識(shí)別系統(tǒng)流程圖六、具體設(shè)計(jì)界面效果圖(1)灰度校正由于牌照?qǐng)D象在拍攝時(shí)受到種種條件的限制和干擾,圖象的灰度值往往與實(shí)際景物不完全匹配,這將直接影響到圖象的后續(xù)處理。如果造成這種影響的原因主要是由于
7、被攝物體的遠(yuǎn)近不同,使得圖象中央?yún)^(qū)域和邊緣區(qū)域的灰度失衡,或是由于攝像頭在掃描時(shí)各點(diǎn)的靈敏度有較大的差異而產(chǎn)生圖象灰度失真,或是由于曝光不足而使得圖像的灰度變化范圍很窄。這時(shí)就可以采用灰度校正的方法來(lái)處理,增強(qiáng)灰度的變化范圍、豐富灰度層次,以達(dá)到增強(qiáng)圖象的對(duì)比度和分辨率。我們發(fā)現(xiàn)車輛牌照?qǐng)D象的灰度取值范圍大多局限在r=(50,200)間,而且總體上灰度偏低,圖象較暗圖6 灰度增強(qiáng)后的圖像(2)平滑處理對(duì)于受噪聲干擾嚴(yán)重的圖象,由于噪聲點(diǎn)多在頻域中映射為高頻分量,因此可以在通過(guò)低通濾波器來(lái)濾除噪聲,但實(shí)際中為了簡(jiǎn)化算法,也可以直接在空域中用求鄰域平均值的方法來(lái)削弱噪聲的影響,這種方法稱為圖象平滑
8、處理。例如,某一象素點(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í),仍保留原來(lái)的值,從而減少由于平均化引起的圖象模糊。邊緣提取是較經(jīng)典的算法,此處邊緣的提取采用的是Roberts算子。綜上所述,結(jié)合MATLAB實(shí)驗(yàn)過(guò)程,得
9、出不是每一種圖像處理之初都適合濾波和邊界增強(qiáng)。本次汽車車牌的識(shí)別,為了保存更多的有用信息,經(jīng)過(guò)多次比較,選擇圖9作為后期處理的依據(jù)。(6)操作界面設(shè)計(jì)為了使整個(gè)操作界面更加的美觀,對(duì)背景顏色和字體顏色進(jìn)行設(shè)置。二、程序調(diào)試及結(jié)果分析在程序設(shè)計(jì)過(guò)程中,碰到很多的問(wèn)題。a) 一個(gè)函數(shù)只能對(duì)灰度圖像處理,不能對(duì)RGB圖像處理,那么如何才能對(duì)RGB圖像處理呢?這主要是對(duì)MATLAB函數(shù)的不夠清楚,用到的很多函數(shù)是針對(duì)二維數(shù)據(jù)的,而RGB圖像的數(shù)據(jù)是一個(gè)三維矩陣,所以處理要與灰度圖像不同,在開(kāi)始的時(shí)候,我認(rèn)為應(yīng)該找一個(gè)能夠應(yīng)用于三維矩陣的函數(shù),結(jié)果卻沒(méi)找到,后來(lái)想到可以把三維數(shù)據(jù)進(jìn)行降維處理,同樣使用二
10、維的函數(shù),只要是同樣處理三次。比如,彩色圖像的濾波處理,直方圖均衡等。b) 同一個(gè)操作對(duì)灰度圖像可以使用,當(dāng)用戶選擇的是彩色圖像時(shí),該操作就會(huì)出錯(cuò)?這是由于設(shè)計(jì)程序時(shí),本身程序是有針對(duì)性的,有些程序只能對(duì)灰度圖像有效,有些對(duì)彩色圖像有效,但是用戶并不清楚這些,所以在設(shè)計(jì)的過(guò)程中就要考慮全面,要分開(kāi)設(shè)計(jì)。在本次課程設(shè)計(jì)中,我均對(duì)每個(gè)程序的開(kāi)始時(shí),用if isrgb(x)進(jìn)行判斷。c) 在沒(méi)有加入噪聲的情況下,點(diǎn)擊“中值濾波”或是其它濾波,會(huì)提示錯(cuò)誤?這是由于在濾波程序設(shè)計(jì)的過(guò)程中,開(kāi)始用到的變量是handles.noise_img,而這個(gè)變量是在加入噪聲時(shí)候才定義的,所以在沒(méi)有加入噪聲的情況下,
11、點(diǎn)擊各個(gè)濾波就會(huì)彈出變量沒(méi)有定義的錯(cuò)誤,解決方法就是在文件打開(kāi)的時(shí)候就給定義handles.noise_img=x。d) 本次設(shè)計(jì)存在一個(gè)比較大的問(wèn)題,就是每次操作都是獨(dú)立的,比如:要對(duì)圖像加入噪聲,然后在此基礎(chǔ)上進(jìn)行亮度調(diào)整,截圖,頻譜分析等等就不行。我認(rèn)為應(yīng)該是整個(gè)程序設(shè)計(jì)過(guò)程中對(duì)變量的設(shè)置沒(méi)有做好,應(yīng)該每次操作后,把處理后的數(shù)據(jù)保存在一個(gè)全局變量,這樣還要對(duì)處理后的數(shù)據(jù)進(jìn)行在處理時(shí),只要把這個(gè)全局變量作為原始數(shù)據(jù)帶入就可。三, 心得體會(huì)1、在這次課程設(shè)計(jì)過(guò)程中,感觸很深,由于對(duì)MATLAB圖像處理的函數(shù)不熟悉,導(dǎo)致自己走了很多的彎路,比如在設(shè)計(jì)圖像左轉(zhuǎn)90度和右轉(zhuǎn)90度時(shí),由于開(kāi)始并不知
12、道imrotate函數(shù),只知道上下翻轉(zhuǎn)flipud和左右翻轉(zhuǎn)fliplr函數(shù),想著要怎么用這兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)左轉(zhuǎn)和右轉(zhuǎn)呢,如果當(dāng)當(dāng)只用矩陣轉(zhuǎn)置的話,并不能達(dá)到要求,后來(lái)想可以結(jié)合flipud和fliplr函數(shù)來(lái)實(shí)現(xiàn),下面程序是實(shí)現(xiàn)左轉(zhuǎn)90度:axes(handles.axes2);x=(handles.img);if isrgb(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);for k=1:3 f(
13、:,:,k)=flipud(y(:,:,k); endimshow(f); else m=x' y=flipud(m); imshow(y);end同理,也可以通過(guò)轉(zhuǎn)置和fliplr函數(shù)實(shí)現(xiàn)右轉(zhuǎn)90度。 但是后來(lái)發(fā)現(xiàn)其實(shí)只要用imrotate函數(shù)就可以解決問(wèn)題。通過(guò)這次經(jīng)歷后,后來(lái)在設(shè)計(jì)其它程序時(shí),盡量找MATLAB自帶的現(xiàn)成函數(shù),而不是一碰到問(wèn)題就自己想算法,這樣可以節(jié)省較多的時(shí)間。2、在理工科的專業(yè)應(yīng)用背景下,用matlab 進(jìn)行相關(guān)計(jì)算與仿真編程的優(yōu)勢(shì)非常突出。特定的問(wèn)題處理算法,我們通常都以M文件的文本形式給定最終的解決方案,自己設(shè)計(jì)的程序是在MATLAB環(huán)境下,用MATLAB
14、語(yǔ)言編寫(xiě)的,這對(duì)于有安裝MATLAB軟件的計(jì)算機(jī)上運(yùn)行并不存在什么問(wèn)題,關(guān)鍵是一般的計(jì)算機(jī)很少有去安裝MATLAB軟件的,那么要在這些機(jī)子上運(yùn)行該程序要怎么辦呢,難道要先安裝MATLAB軟件,這顯然太麻煩了,對(duì)于一個(gè)通用的,比較成熟的解決方案,我們當(dāng)然期望它能應(yīng)用到更多的場(chǎng)合,而.exe (可執(zhí)行)文件可運(yùn)行于所有的通用WINDOWS操作系統(tǒng),為此,將M文件轉(zhuǎn)換成.exe文件倒是個(gè)不錯(cuò)的想法。通過(guò)查找資料,了解到在生成可執(zhí)行性文件之前,需要進(jìn)行一系列編譯環(huán)境方面的配置:要將用Matlab語(yǔ)言編寫(xiě)的函數(shù)文件編譯成可獨(dú)立執(zhí)行的*.exe文件(即可脫離Matalab環(huán)境的執(zhí)行程序),首先要安裝和配置
15、好Matlab Compiler,一般來(lái)說(shuō),在安裝Matlab時(shí)就已經(jīng)安裝了相應(yīng)版本的Matlab Compiler。只是不同版本的Matlab,其編譯器的使用方法有一定的差異,這一點(diǎn)要引起一定的注意。在確定安裝好Matlab Compiler后,還需要對(duì)Compiler進(jìn)行適當(dāng)?shù)呐渲?,方法是在Matlab命令窗口輸入:Mbuild setup然后根據(jù)提示執(zhí)行相應(yīng)的操作,使用者可根據(jù)自己計(jì)算機(jī)中現(xiàn)有編譯器的情況選擇合適的編譯器,如VC+ 6.0、VC+7.0、Bland C的編譯器等,目前Matlab好象還不支持VC+8.0(我計(jì)算機(jī)安裝的就是VC+2005,Matlab就無(wú)法識(shí)別)。當(dāng)然,如
16、果你的計(jì)算機(jī)里根本就沒(méi)有安裝其他任何語(yǔ)言的編譯器,也可選擇Matlab自帶的Lcc編譯器,其實(shí)這個(gè)編譯器對(duì)大多數(shù)用戶已經(jīng)夠用了(我就是選擇的Matlab自帶的Lcc編譯器)。配置好編譯器后,自然就是對(duì)自己編寫(xiě)的M文件進(jìn)行編譯了。將M文件編譯為獨(dú)立可執(zhí)行文件的語(yǔ)法是:>>mcc m fun1.m fun2.m.其中fun1就是最后的可執(zhí)行文件的名稱。3、通過(guò)本次課程設(shè)計(jì),使自己對(duì)MATLAB GUI設(shè)計(jì)流程有了比較深刻的體會(huì),同時(shí)也了解了一般軟件設(shè)計(jì)的過(guò)程。在設(shè)計(jì)過(guò)程中碰到了很多的問(wèn)題,通過(guò)這些問(wèn)題,使自己分析問(wèn)題,解決問(wèn)題的能力得到了較大的提高。四, 參考文獻(xiàn)【1】 鄭阿奇,曹戈,
17、趙陽(yáng).MATLAB實(shí)用教程M.北京:電子工業(yè)出版社【2】【3】 陳楊.MATLAB 6.X圖像編程與圖像處理M.西安:西安電子科技大學(xué)出版社五, 附錄function varargout = two(varargin)% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', two_OpeningF
18、cn, . 'gui_OutputFcn', two_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end%
19、End initialization code - DO NOT EDIT% - Executes just before erzhi is made visible.function two_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.-%接下來(lái)是菜單的程序-function file_Callback(hObject, eventdata, handles)-%文件打開(kāi)程序function open_Callback(hObject, e
20、ventdata, handles) name,path=uigetfile('*.bmp','載入圖像');if isequal(name,0)|isequal(path,0) errordlg('沒(méi)有選中文件','出錯(cuò)'); return;else x=imread(path,name); axes(handles.axes1); imshow(x); handles.img=x; handles.noise_img=x; guidata(hObject,handles)end-function save_Callback(h
21、Object, eventdata, handles)%文件保存 filename,pathname = uiputfile('*.bmp','圖片保存為');if isequal(filename,pathname,0,0) errordlg('沒(méi)有保存','出錯(cuò)'); return;elsefile=strcat(pathname,filename);(handles.axes2);i=getimage(gca);imwrite(i,file);end-function exit_Callback(hObject, event
22、data, handles)clc;close all;close(gcf);-%編輯菜單的程序-function edit_Callback(hObject, eventdata, handles)-function huidu_Callback(hObject, eventdata, handles)%灰度處理axes(handles.axes2);if isrgb(handles.img) y=rgb2gray(handles.img); %RGBimshow(y);else msgbox('這已經(jīng)是灰度圖像','轉(zhuǎn)換失敗');end -function
23、liangdu_Callback(hObject, eventdata, handles)%亮度處理 prompt='輸入?yún)?shù)1','輸入?yún)?shù)2','輸入gamma' defans='0 0.7','0 1','1' p=inputdlg(prompt,'輸入?yún)?shù)',1,defans); p1=str2num(p1); p2=str2num(p2); p3=str2num(p3); gamma=p3; x=(handles.img); y=imadjust(x,p1,p2,gamma
24、); axes(handles.axes2); imshow(y);-function jietu_Callback(hObject, eventdata, handles)%截圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);y=imcrop(handles.img);imshow(y); handles.Timage=y;-function fangda_Callback(hObject, eventdata, handles)-function lingjz_Callback(h
25、Object, eventdata, handles)%鄰近插值放大axes(handles.axes2);prompt='輸入放大倍數(shù):'defans='2'p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p1);y=imresize(handles.img,p1,'nearest'); %最近鄰插值法放大imshow(y);-function shuangxianfa_Callback(hObject, eventdata, handles)%雙線放大axes(handles.a
26、xes2);prompt='輸入放大倍數(shù):'defans='2'p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p1);y=imresize(handles.img,p1,'bilinear'); %最近鄰插值法放大imshow(y); -function shuangsanci_Callback(hObject, eventdata, handles)%雙三次放大axes(handles.axes2);prompt='輸入放大倍數(shù):'defans='2
27、9;p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p1);y=imresize(handles.img,p1,'bicubic'); imshow(y);-function suoxiao_Callback(hObject, eventdata, handles)%鄰近插值縮小 axes(handles.axes2); prompt='輸入放大倍數(shù):' defans='0.2' p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2
28、num(p1);y=imresize(handles.img,p1,'nearest'); %最近鄰插值法縮小 imshow(y);-function shuangxian_Callback(hObject, eventdata, handles)%雙線性縮小axes(handles.axes2);prompt='輸入放大倍數(shù):'defans='0.2'p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p1);y=imresize(handles.img,p1,'bilinea
29、r'); %最近鄰插值法縮小imshow(y); -function shuangsancisuox_Callback(hObject, eventdata, handles)%雙三次縮小axes(handles.axes2);prompt='輸入放大倍數(shù):'defans='0.2'p=inputdlg(prompt,'輸入放大倍數(shù)',1,defans);p1=str2num(p1);y=imresize(handles.img,p1,'bicubic'); imshow(y); -function xuanzhuan_C
30、allback(hObject, eventdata, handles)-function updown_Callback(hObject, eventdata, handles)%上下翻轉(zhuǎn)axes(handles.axes2);x=(handles.img);if isrgb(handles.img) for k=1:3 y(:,:,k)=flipud(x(:,:,k);%上下翻轉(zhuǎn)函數(shù)endimshow(y);else x=(handles.img); y=flipud(x); imshow(y);end-function leftright_Callback(hObject, eventd
31、ata, handles)%左右翻轉(zhuǎn)axes(handles.axes2);if isrgb(handles.img) x=(handles.img);for k=1:3 y(:,:,k)=fliplr(x(:,:,k);%左右翻轉(zhuǎn)函數(shù)endimshow(y);else x=(handles.img); y=fliplr(x); imshow(y);end-function zeft90_Callback(hObject, eventdata, handles)%左轉(zhuǎn)90度axes(handles.axes2);x=(handles.img);y=imrotate(x,90); imshow(
32、y);-function right90_Callback(hObject, eventdata, handles)%右轉(zhuǎn)90度axes(handles.axes2);x=(handles.img);y=imrotate(x,-90); imshow(y);-function other_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=str
33、2num(p1);y=imrotate(handles.img,p1); imshow(y);-function gs_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(p1); p2=str2num(p2); y=imnoise(handles.img,
34、39;gaussian',p1,p2);imshow(y);handles.noise_img=y; guidata(hObject,handles);-function jy_Callback(hObject, eventdata, handles)%加入椒鹽噪聲prompt='輸入?yún)?shù)1:' %對(duì)話框的設(shè)置,用戶輸入的是字符串defans='0.02' %缺省值p=inputdlg(prompt,'輸入?yún)?shù)',1,defans); p1=str2num(p1); %字符串轉(zhuǎn)化為數(shù)值axes(handles.axes2);x=(hand
35、les.img);y=imnoise(x,'salt & pepper',p1); imshow(y);handles.noise_img=y;guidata(hObject,handles);-function cx_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(p1);y=imnoise(h
36、andles.img,'speckle',p1);imshow(y); handles.noise_img=y;guidata(hObject,handles);-function zhifangtutongji_Callback(hObject, eventdata, handles)-function red_Callback(hObject, eventdata, handles)%R直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);x=imhist(hand
37、les.img(:,:,1); %直方圖統(tǒng)計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);-function gray_Callback(hObject, eventdata, handles)%G直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(handles.img) x=imhist(handles.img(:,:,2); %直方圖統(tǒng)
38、計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);set(handles.axes2,'xtick',0:50:255);else msgbox('這是灰度圖像','旋轉(zhuǎn)失敗');end-function blue_Callback(hObject, eventdata, handles)%B直方圖set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(handles.img) x=imhis
39、t(handles.img(:,:,3); %直方圖統(tǒng)計(jì)x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis(0 255 0 150000);set(handles.axes2,'xtick',0:50:255);%set(handles.axes2,'ytick',0:2000:15000);else msgbox('這是灰度圖像','旋轉(zhuǎn)失敗');end-function junheng_Callback(hObject, eventdata, handles)%直方圖均衡set(ha
40、ndles.axes2,'HandleVisibility','ON');axes(handles.axes2);if isrgb(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-%頻譜分析-function pinpu_Call
41、back(hObject, eventdata, handles)-function pinputu_Callback(hObject, eventdata, handles)%顯示頻譜圖axes(handles.axes2);x=(handles.img);if isrgb(x) m=fft2(x(:,:,1); y=fftshift(m); imshow(log(abs(y),);else m=fft2(x); y=fftshift(m); imshow(log(abs(y),);end-function frequency_Callback(hObject, eventdata, han
42、dles)%低通濾波器axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox('這是彩色圖像,不能通過(guò)低通濾波器','失敗');elsey1=imnoise(x,'salt & pepper'); % 疊加椒鹽噪聲f=double(y1); % 數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無(wú)符號(hào)整型的計(jì)算g=fft2(f); % 傅立葉變換g=fftshift(g); % 轉(zhuǎn)換數(shù)據(jù)矩陣M,N=size(g);nn=2; % 二階巴特沃斯(Butterworth)低通濾波器d0=10; %截止
43、頻率為10m=fix(M/2); n=fix(N/2);for i=1:M for j=1:N d=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); % 顯示濾波處理后的圖像end-function gaotong_Callback(hObject, eventdata, handles)%高通濾波器axes(handles.
44、axes2);x=(handles.img);if isrgb(x) msgbox('這是彩色圖像,不能通過(guò)高通濾波器','失敗');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);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); % 計(jì)算高通濾波器傳遞函數(shù) i
45、f d<=d0 h=0; else h=1; end result(i,j)=h*g(i,j); endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2);imshow(y3); end-%接下來(lái)這段程序是灰度圖像處理程序-function huiduchuli_Callback(hObject, eventdata, handles)-function erzhituxiang_Callback(hObject, eventdata, handles)%二值圖像axes(handles.axes2);x=(handles.img);if isrgb(x) msgbox('這是彩色圖像,不能轉(zhuǎn)換為二值圖像','轉(zhuǎn)換失敗');elsej=im2bw(x);imshow(j);end-function tuxiangfushi_Callback(hObject, eventdata, handles)%圖像腐蝕axes(handles.axes2);x
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣公雞廣告合同范本
- 中醫(yī)門診合同范本
- 2025中國(guó)冶金地質(zhì)總局所屬在京單位高校畢業(yè)生招聘23人筆試參考題庫(kù)附帶答案詳解
- 修車廠勞務(wù)合同范本
- 個(gè)體服裝購(gòu)銷合同范本6
- 產(chǎn)品合伙合同范本
- 代購(gòu)分期購(gòu)車合同范本
- Starter Unit 3 Section B project 教學(xué)設(shè)計(jì)- 2024-2025學(xué)年人教版七年級(jí)英語(yǔ)上冊(cè)
- 企業(yè)食堂用工合同范本
- 勞務(wù)搬家合同范本
- 中考數(shù)學(xué)總復(fù)習(xí)全套課件
- 2023年6月新高考天津卷英語(yǔ)試題真題及答案解析(精校打印版)
- 粉塵爆炸風(fēng)險(xiǎn)評(píng)估記錄-危險(xiǎn)源辨識(shí)與評(píng)價(jià)表
- 北師大版 數(shù)學(xué) 三年級(jí)下冊(cè) 單元作業(yè)設(shè)計(jì) 面積
- 智能農(nóng)業(yè)除草機(jī)器人研究現(xiàn)狀與趨勢(shì)分析
- 社會(huì)救助公共基礎(chǔ)知識(shí)題庫(kù)及答案
- 《論文所用框架圖》課件
- 人教版三年級(jí)下冊(cè)說(shuō)課標(biāo)、說(shuō)教材
- 《民法典》背景下違約精神損害賠償制度適用問(wèn)題
- 松下機(jī)器人操作手冊(cè)
評(píng)論
0/150
提交評(píng)論