




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖像處理課程實踐論文題目:圖像增強功能組件的GUI設(shè)計院(系)信息科學與工程學院專業(yè)通信工程屆別班級學號姓名指導(dǎo)老師目錄TOC o 1-5 h z一、空域增強1 HYPERLINK l bookmark6 o Current Document 1.1直方圖均衡化1 HYPERLINK l bookmark8 o Current Document 1.2平滑濾波2 HYPERLINK l bookmark12 o Current Document 1.3銳化濾波4 HYPERLINK l bookmark18 o Current Document 1.4自適應(yīng)濾波5二、頻域增強6 HYPERLI
2、NK l bookmark20 o Current Document 2.1低通濾波6 HYPERLINK l bookmark26 o Current Document 2.2高通濾波7三、其他增強方法9 HYPERLINK l bookmark45 o Current Document 3.1灰度變換9 HYPERLINK l bookmark47 o Current Document 3.2椒鹽噪聲加入9 HYPERLINK l bookmark49 o Current Document 3.3圖像鏡像10 HYPERLINK l bookmark55 o Current Documen
3、t 3.4圖像求反10 HYPERLINK l bookmark61 o Current Document 3.5邊緣檢測11 HYPERLINK l bookmark63 o Current Document 3.6圖像旋轉(zhuǎn)11 HYPERLINK l bookmark65 o Current Document 3.7打開保存撤銷退出初始化12 HYPERLINK l bookmark67 o Current Document 四、GUI界面的使用說明14 HYPERLINK l bookmark69 o Current Document 4.1簡介14 HYPERLINK l bookma
4、rk71 o Current Document 4.2具體操作14 HYPERLINK l bookmark73 o Current Document 五、功能組件測試報告15六、參考文獻16七、附錄17 1.1直方圖均衡化1.1.1知識點直方圖均衡是指將一個已知灰度分布的圖像經(jīng)過一種變換,使之變成一幅具有均勻灰度分布的新圖像。把原始圖的直方圖變換為均勻分布的形式,這樣就增加了象素灰度值的動態(tài)范圍,從而達到增強圖像整體對比度的效果直方圖均衡化的增強函數(shù)需要滿足兩個條件:EH(s)在0WsWL-1范圍內(nèi)是一個單值單增函數(shù);對應(yīng)0WsWL-1有0WEH(s)WL-1。上面第一個條件保證原圖各灰度級
5、在變換后仍保持從黑到白(或從白到黑)的排列次序。第二個條件保證變換前后灰度值動態(tài)范圍的一致性。1.1.2程序設(shè)計思路通過histeq(X)函數(shù)實現(xiàn)直方圖均衡。因為此函數(shù)只能對灰度圖像進行直方圖均衡。故應(yīng)先將彩圖轉(zhuǎn)為灰度圖像。直方圖均衡實現(xiàn)程序段如下:globalTaxes(handles.axes2);T=getimage;k=histeq(handles.k);imshow(k);title(經(jīng)過直方圖均衡后的圖像);handles.k=k;guidata(hObject,handles);1.1.3結(jié)果與分析說明1、結(jié)果將彩圖轉(zhuǎn)為灰度圖像:灰度變換后的圖像原始圖像圖1在上一步的基礎(chǔ)上對第二
6、幅圖進行直方圖均衡:經(jīng)過直方圖均衡后的圖像原始團像圖22、分析和說明圖1和圖2的右側(cè)圖分別是左側(cè)圖的灰度變換圖和經(jīng)過直方圖均衡化后的圖像。由于直方圖均衡化增加了圖像灰度動態(tài)范圍,所以也增加了圖像的對比度,反映在圖像上就是圖像有較大的反差,許多細節(jié)可以看到比較清晰了。1.2平滑濾波1.2.1知識點最簡單的平滑濾波是用一個像素領(lǐng)域的平均值作為濾波結(jié)果,此時濾波模板的所有系數(shù)都取為1。為了保證輸出圖仍在原來的灰度值范圍,在算得卷積值R后要將其除以系數(shù)總個數(shù)在進行賦值。例如對3X3的模板來說,在算得R后要將其除以系數(shù)9。領(lǐng)域平均的一般表達式為1g(x,y)=2f(s,t)n2(S,t)eN(x,y)其
7、中,N(x,y)對應(yīng)f(x,y)中(x,y)的nXn領(lǐng)域,與模板W所覆蓋的范圍對應(yīng)。1.2.2程序設(shè)計思路conv函數(shù)可計算起點為k=0的兩個序列的卷積。利用此函數(shù)和卷積的性質(zhì),編寫平滑濾波器的程序?qū)D像進行領(lǐng)域平均平滑濾波。平滑濾波實現(xiàn)的程序段如下:globalTaxes(handles.axes2);T=getimage;h=111;111;111;H=h/9;i=double(handles.k);k=convn(i,h);imshow(k,);title(經(jīng)過線性平滑后的圖像)handles.k=kguidata(hObject,handles)1.2.3結(jié)果與分析說明1、結(jié)果將彩圖轉(zhuǎn)
8、為灰度圖像:原始團像圖3在上一步的基礎(chǔ)上對第二幅圖疊加參數(shù)為0.05的椒鹽噪聲:圖4對圖4中的灰度圖像進行多次的平滑濾波灰度變換后的團像圖52、分析說明圖5依次為用3x3,5x5,7x7,9x9平滑模板對圖4中的灰度圖像進行平滑濾波的結(jié)果。有圖可見,當所用平滑模板尺寸增大時,對噪聲的消除效果有所增強。不過同時所得到的圖像變得更為模糊,可視的細節(jié)逐漸減小。1.3銳化濾波1.3.1知識點圖像銳化的目的是加強圖像中景物的邊緣和輪廓。因為邊緣和輪廓都位于灰度突變的地方,所以銳化算法的實現(xiàn)基于微分運算。拉普拉斯算子是各向同性的階微分算子。數(shù)字圖像f(x,y)的二階偏導(dǎo)數(shù)可表示為:f=2f(x,y)-f(
9、x+1,y)-f(x-1,y)dx2f=2f(x,y)-f(x,y+1)-f(x,y-1)cy2拉普拉斯算子可增強圖像中的灰度不連續(xù)邊緣,減弱灰度值緩慢變化區(qū)域的對比度,將結(jié)果疊加到原始圖像上,就可以得到邊緣增強后的圖像。1.3.2程序設(shè)計思路fspecial函數(shù)用于建立預(yù)定義的濾波算子,k=fspecial(type,para)其中type指定算子的類型,para指定相應(yīng)的參數(shù)。故利用該函數(shù)進行銳化濾波的程序編寫。銳化濾波實現(xiàn)的程序段如下:globalTaxes(handles.axes2);T=getimage;K=fspecial(laplacian,0.7);k=filter2(K,T
10、)/100;imshow(k);title(經(jīng)過線性銳化后的圖像);handles.k=k;guidata(hObject,handles);1.3.3結(jié)果與分析說明對灰度圖像經(jīng)過銳化濾波后:2、分析說明通過對左右圖的比較,可以看出經(jīng)過銳化之后的圖像,其中景物的邊緣和輪廓更加的清晰。故銳化濾波器可以用于景物邊緣的檢測和提取。1-4自適應(yīng)濾波1.4.1知識點自適應(yīng)濾波法是能夠在一定程度上根據(jù)環(huán)境的改變,使用自適應(yīng)算法來改變?yōu)V波器的參數(shù)和結(jié)構(gòu)的濾波法。1.4.2程序設(shè)計思路wiener函數(shù)用于建立預(yù)定義的濾波算子,k=wiener2(I,mn,noise)其中I是處理的數(shù)據(jù),用m,n指定相應(yīng)的參數(shù)
11、。故利用該函數(shù)進行自適應(yīng)濾波的程序編寫。自適應(yīng)濾波實現(xiàn)的程序段如下:globalTaxes(handles.axes2);T=getimage;k=wiener2(handles.k,5,5);imshow(k);title(經(jīng)過自適應(yīng)濾波后的圖像);handles.k=k;guidata(hObject,handles);1.3.3結(jié)果21低通濾波2.2.1知識點物理上可以實現(xiàn)的一種低通濾波器是巴特沃斯低通濾波器。一個階為n截斷頻率為Do的巴特沃斯高通濾波器的轉(zhuǎn)移函數(shù)為H(u,v)=1+D/D(U,V)2n0低通巴特沃斯濾波器在高低頻率間的過渡比較光滑,所以用巴特沃斯低通濾波器得到的輸出圖其
12、振鈴現(xiàn)象不明顯。具體來說,階為1時沒有振鈴現(xiàn)象,而隨著階的增加振鈴現(xiàn)象也增加。一般情況下,常取使H最大值降到某個百分比的頻率為截斷頻率。當D(u,v)=Do時,H(u,v)=0.5。2.1.2程序設(shè)計思路通過對離散傅立葉變換的學習,我們知道一個有限長序列可以用N個頻域抽樣值唯一的確定,即其中H(k)是h(n)的離散傅立葉變換,是H(z)在單位圓上的均勻抽樣值,其列長N,即直接從頻域出發(fā),對理想頻響進行抽樣,然后,用離散傅立葉反變換求單位脈沖響應(yīng)再用Z變換求系統(tǒng)函數(shù)。低通濾波實現(xiàn)的程序段如下:axes(handles.axes2);k1=handles.k;f=double(k1);%數(shù)據(jù)類型轉(zhuǎn)
13、換,matlab不支持圖像的無符號整型的計算g=fft2(f);%傅里葉變換g=fftshift(g);%轉(zhuǎn)換數(shù)據(jù)矩陣M,N=size(g);nn=2;%二階巴特沃斯低通濾波器d0=50;%截止頻率50m=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);%計算低通濾波器傳遞函數(shù)result(i,j)=h*g(i,j);endendresult=ifftshift(result);k2=ifft2(result);k=uint8(real(k2);imshow(k);%顯示
14、處理后的圖像title(經(jīng)過低通濾波后的圖像);handles.k=k;guidata(hObject,handles);2.1.3結(jié)果與分析說明2、結(jié)果將彩圖轉(zhuǎn)為灰度圖像:圖8圖9圖10在上一步的基礎(chǔ)上對第二幅圖疊加椒鹽噪聲得到圖9:對灰度圖像經(jīng)過低通濾波之后得到如圖10:2、分析說明由圖9的加噪圖像可以看出該圖有比較明顯的噪聲存在,嚴重影響美觀。經(jīng)過低通濾波進行平滑之后的灰度圖像可以消除一些噪聲,產(chǎn)生的振鈴效果也較少,但所得到的圖像變的更為模糊。2.2高通濾波2.2.1知識點一個階為n,截斷頻率為D0的巴特沃斯高通濾波器的轉(zhuǎn)移函數(shù)為H(u,v)=11+D/D(U,V)2n0與巴特沃斯低通濾
15、波器類似,高通的巴特沃斯濾波器在通過和濾掉的頻率之間也沒有不連續(xù)的分界。由于在高低頻率間的過渡比較光滑,所以用巴特沃斯高通濾波器得到的輸出圖其振鈴現(xiàn)象不明顯。2.2.2程序設(shè)計思路與低通濾波器相似,低通濾波器的程序段如下:axes(handles.axes2);x=(handles.k);f=double(x);%數(shù)據(jù)類型轉(zhuǎn)換k1=fft2(f);%傅里葉變換g=fftshift(k1);%轉(zhuǎn)換數(shù)據(jù)矩陣M,N=size(g);nn=2;d0=25;%截止頻率25m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt(i-m)入2+(j-n)入2);%計算高通濾
16、波器傳遞函數(shù)ifd=d0h=0;elseh=1;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);k2=ifft2(result);k=uint8(real(k2);imshow(k);%顯示濾波處理后的圖像title(經(jīng)過高通濾波后的圖像);handles.k=k;guidata(hObject,handles);2.2.3結(jié)果與分析說明經(jīng)過高通濾波之后:1、結(jié)果將彩圖轉(zhuǎn)為灰度圖像:圖11圖122、分析說明由圖12可以看出經(jīng)過高通濾波之后其對應(yīng)的圖像的各區(qū)域的邊界得到了較為明顯的增強,但因為高通處理之后的低頻分量大都被濾波,所以原來
17、比較平滑區(qū)域內(nèi)部的灰度動態(tài)范圍被壓縮,整幅圖比較昏暗,顯示效果并不好。三、其他操作31灰度變換可利用rgb2gray(X)函數(shù)對其他圖像進行灰度圖像的轉(zhuǎn)化。實現(xiàn)灰度變換的程序段如下:globalTaxes(handles.axes2);T=getimage;k=rgb2gray(handles.k);imshow(k);title(灰度變換后的圖像);handles.k=k;guidata(hObject,handles);3.2椒鹽噪聲通過imnoise(I,type,parameters)來加入各種噪聲。實現(xiàn)加入椒鹽噪聲的程序段如下:globalTaxes(handles.axes2);T
18、=getimage;prompt=設(shè)置椒鹽噪聲參數(shù):;defans=0.05;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);k=imnoise(handles.k,salt&pepper,p1);imshow(k);title(加入椒鹽噪聲后的圖像);handles.k=k;guidata(hObject,handles);3.3圖像鏡像通過fliplr(I,type,parameters)和flipud(I,type,parameters)來分別實現(xiàn)水平和垂直鏡像。實現(xiàn)水平鏡像的程序段如下:globalTaxes(handles.axes2
19、);T=getimage;k=handles.k;k=fliplr(handles.k);imshow(k);title(水平鏡像后的圖像);handles.k=k;guidata(hObject,handles);實現(xiàn)垂直鏡像的程序段如下:globalTaxes(handles.axes2);T=getimage;k=handles.k;k=flipud(handles.k);imshow(k);title(垂直鏡像后的圖像);handles.k=k;guidata(hObject,handles);3.4圖像求反求反是很常見的一種圖像處理方法,常見在膠片處理中,本次課設(shè)我通過matlab的
20、通過imcomplement(I,type,parameters)來實現(xiàn)圖像的求反操作。實現(xiàn)圖像求反的程序段如下:globalTaxes(handles.axes2);T=getimage;k=imcomplement(handles.k);%求反函數(shù)imshow(k);title(求反后的圖像);handles.k=k;guidata(hObject,handles);3.5邊緣檢測在圖像分析處理中邊緣檢測可謂是最常見的一種檢測方法,由于其出色的識別能力,邊緣檢測不僅被廣泛用在靜態(tài)圖像檢測中,動態(tài)圖像視頻的邊緣檢測技術(shù)也被廣泛使用著。本次課設(shè)我通過matlab的edge(I,type,par
21、ameters)來實現(xiàn)圖像的邊緣檢測操作。當然matlab強大的功能中還包含許多其他邊緣檢測的方法,這里不再贅述。實現(xiàn)邊緣檢測的程序段如下:globalTaxes(handles.axes2);T=getimage;k=edge(handles.k,canny);imshow(k);title(通過Canny邊緣檢測后的圖像);handles.k=k;guidata(hObject,handles);3.6圖像旋轉(zhuǎn)在圖像處理中常常會因為設(shè)備和視角的原因需要將待處理的圖像進行旋轉(zhuǎn)以便更好地處理或是使用。Matlab同樣提供了圖像旋轉(zhuǎn)的功能函數(shù),并且能夠由用戶自由輸入設(shè)置旋轉(zhuǎn)角度,實現(xiàn)圖像自由旋轉(zhuǎn)
22、的程序如下:globalTaxes(handles.axes2);T=getimage;prompt=輸入旋轉(zhuǎn)角度(逆時針):;defans=0;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);k=imrotate(handles.k,p1,bilinear,crop);imshow(k);title(旋轉(zhuǎn)后的圖像);handles.k=k;guidata(hObject,handles);1 3.7打開文件保存為撤銷退出初始化打開通過filename,pathname二uigetfile(*.jpg;*.bmp;*.tif;*.*載入圖像)選
23、擇相應(yīng)路徑打開的圖像;通過file二pathname,filename;k二imread(file);讀取選中的圖像;最后,通過imshow(x)在顯示區(qū)域上顯示圖像。故打開圖像的程序段如下:filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,打開);ifisequal(filename,O)|isequal(pathname,O)errordlg(沒有選中文件,出錯);return;elsefile=pathname,filename;globalZ%用于初始化的全局變量ZZ=file;o=imread(file);axes(handles.a
24、xesl);imshow(o);title(原始圖像);k=imread(file);axes(handles.axes2);imshow(k);title(待處理圖像);handles.k=k;guidata(hObject,handles);end保存利用“uiputfile”、“imwrite函數(shù)實現(xiàn)圖像文件的保存。保存圖像的程序段如下:sfilename,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存圖像文件,untitled.jpg);%選擇圖像文件保存的路徑與格式ifisequal(sfilename,sfilepath,O,O)sfile
25、fullname=sfilepath,sfilenameaxes(handles.axes2);imwrite(handles.k,sfilefullname,jpg);%實現(xiàn)對圖像的保存elsemsgbox(你按了取消鍵,保存失敗);end撤銷撤銷上一步的操作。通過另設(shè)一個全局變量T保存是上一次操作后的圖像。實現(xiàn)撤銷上步操作的程序段如下:axes(handles.axes2);%撤銷globalTimshow(T);title(返回上一步操作效果);handles.k=T;guidata(hObject,handles);退出清除所有數(shù)據(jù)并關(guān)閉操作窗口,實現(xiàn)退出程序的程序段如下:clc;cl
26、oseall;clear;初始化將待處理文件還原為最初打開的文件,通過在“打開”子程序中預(yù)先設(shè)置一個保留源文件的全局變量Z,并在“初始化”子程序中調(diào)用Z并覆蓋全局變量T來實現(xiàn),程序如下:globalZaxes(handles.axes2);k=imread(Z);imshow(k);title(原始圖像);handles.k=k;guidata(hObject,handles);四、GUI界面的使用說明4.1簡介軟件的總體設(shè)計界面布局如下圖所示,主要分為2個部分:顯示區(qū)域與操作區(qū)域。顯示區(qū)域:顯示載入原圖,以及通過處理后的圖像。操作區(qū)域:通過功能鍵實現(xiàn)對圖像的各種處理。在截圖中可見,左部為一系
27、列功能按鍵如“還原”、“撤銷”等等;界面正中部分為圖片顯示部分,為了便于使用者觀察變化,我將處理后的圖像放在了功能按鍵集中的左側(cè)來顯示,右側(cè)顯示原始圖像。4.2具體操作或“保存”一按鈕,選擇路徑分別實現(xiàn)打開和保存圖像點擊“打開”一?圖片的讀取與保存。彩圖轉(zhuǎn)換為灰度圖像導(dǎo)入一張彩圖之后,點擊“灰度圖像”丨喇濮I按鈕,在顯示區(qū)域的右側(cè)會出現(xiàn)該圖像的灰度圖像。如圖1其他功能將圖像變?yōu)榛叶葓D像之后,可以點擊左側(cè)的按鈕實現(xiàn)其對應(yīng)的功能。撤銷上一步的操作點擊左側(cè)“撤銷”按鈕即可實現(xiàn)撤銷上一步的效果初始化圖像點擊左側(cè)下方“圖像初始化”按鈕即可將待處理圖像初始化退出程序點擊左側(cè)“退出”業(yè)按鈕即可關(guān)閉整個界面五
28、、功能組件測試報告為了檢測課程設(shè)計的存在問題,我做了以下測試首先打開一張3D彩色圖像作為原始數(shù)據(jù)輸入。發(fā)現(xiàn)當初始數(shù)據(jù)是3D彩色輸入時,本圖像增強功能組會出現(xiàn)這樣的問題:無法進行線性銳化,原因是卷積函數(shù)conv2無法處理3D真彩;進行線性平滑會將圖像清空,原因應(yīng)該是因為彩色的輸入圖像在進行銳化的時候灰度值輸入不正確;進行高通濾波會將圖像垂直壓縮并劇烈失真,原因是所采用的高通濾波器算法函數(shù)在進行濾波時只能提取出彩色圖像的中一部分信息,因此在濾波后失真非常明顯;進行低通濾波也會將圖像垂直壓縮,并將圖像轉(zhuǎn)為灰度圖像;無法進行自適應(yīng)濾波,原因是wiener函數(shù)不支持3D真彩圖像輸入;無法進行水平鏡像操作
29、,原因是使用的fliplr函數(shù)只支持2D矩陣數(shù)據(jù)輸入;對彩圖進行高通濾波對彩圖進行低通濾波無法進行垂直鏡像操作,原因在于flipud函數(shù)只支持2D矩陣數(shù)據(jù)輸入;無法用直方圖均衡器處理,原因是histeq函數(shù)的輸入數(shù)據(jù)必須是二維的;無法直接進行邊緣檢測,原因是edge函數(shù)的輸入數(shù)據(jù)必須是二維的;從出發(fā),求反以后也同樣無法進行邊緣檢測,原因是求反并不會將原始圖像轉(zhuǎn)為2D灰度圖像,因此edge函數(shù)仍不起作用。綜上所述,我這次所做的圖像增強設(shè)計的大多數(shù)圖像處理功能都要求待處理數(shù)據(jù)是二維數(shù)據(jù),或是說圖像是黑白灰度圖像才行。為了進一步探明我所采用的函數(shù)的特征,我將原始的彩色圖像用灰度處理功能進行處理后保存
30、下來,并打開該黑白圖像,作為本次測試的原始輸入圖像數(shù)據(jù)。在本次測試中,發(fā)現(xiàn)了以下問題:無法進行灰度變換,原因是待處理圖像必須是三維彩色輸入;邊緣檢測是提取圖像細節(jié)的一種很好的方法,我在這里做了幾個測試,結(jié)果如下:圖像求反后進行邊緣檢測和直接進行邊緣檢測相比,沒有明顯不同,這說明黑白圖像在進行求反以后相鄰像素間的距離不會改變;不論哪種濾波器,在使用之后進行邊緣檢測和直接進行邊緣檢測相比,都會有一定程度的細節(jié)失真,而且就此次測試的原始圖像GXF來說,失真程度排列如下:高通自適應(yīng)低通濾波器。直接邊緣檢測求反后檢測低通濾波后高通濾波后自適應(yīng)濾波后八、參考文獻1】圖像處理(第3版)章毓晉編著2】精通MA
31、TLABGUI設(shè)計(第2版)陳垚光等編著3】數(shù)字圖像處理及MATLAB實現(xiàn):學習與實驗指導(dǎo)楊杰編著4】MATLAB數(shù)字圖像處理張德豐等編著5】詳解MATLAB圖像函數(shù)及其應(yīng)用張婧占君陳珊編著七、附錄實現(xiàn)此次圖像課程設(shè)計的MATLABGUI回調(diào)函數(shù)程序如下:functionvarargout=ZSH(varargin)%ZSHMATLABcodeforZSH.fig%ZSH,byitself,createsanewZSHorraisestheexisting%singleton*.%H=ZSHreturnsthehandletoanewZSHorthehandleto%theexistingsi
32、ngleton*.%ZSH(CALLBACK,hObject,eventData,handles,.)callsthelocal%functiomamedCALLBACKinZSH.Mwiththegiveninputarguments.%ZSH(Property,Value,.)createsanewZSHorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforeZSH_OpeningFcngetscalled.An%unrecognizedpropertynam
33、eorinvalidvaluemakespropertyapplication%stop.AllinputsarepassedtoZSH_OpeningFcnviavarargin.%*SeeGUIOptionsonGUIDEsToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%Seealso:GUIDE,GUIDATA,GUIHANDLES%EdittheabovetexttomodifytheresponsetohelpZSHNOTEDITmfilename,.gui_Singleton,.ZSH_OpeningFcn,.Z
34、SH_OutputFcn,.,.);%LastModifiedbyGUIDEv2.521-Jun-201420:30:09Begininitializationcode-DOgui_Singleton=1;gui_State=struct(gui_Name,gui_Singleton,gui_OpeningFcn,gui_OutputFcn,gui_LayoutFcn,gui_Callback,ifnargin&ischar(varargin1)guiState.guiCallback=str2func(varargin1);endifnargoutvarargout1:nargout=gui
35、_mainfcn(gui_State,varargin:);elsegui_mainfcn(gui_State,varargin:);end%Endinitializationcode-DONOTEDIT%ExecutesjustbeforeZSHismadevisible.functionZSH_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafuturev
36、ersionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstoZSH(seeVARARGIN)%ChoosedefaultcommandlineoutputforZSHhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesZSHwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%Outputs
37、fromthisfunctionarereturnedtothecommandline.functionvarargout=ZSH_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcomm
38、andlineoutputfromhandlesstructurevarargout1=handles.output;%Executesonbuttonpressinopenfile.functionopenfile_Callback(hObject,eventdata,handles)%hObjecthandletoopenfile(seeGCBO)%eventdatareserved一tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)filename,pathname=
39、uigetfile(*.jpg;*.bmp;*.tif;*.*,打開);ifisequal(filename,O)|isequal(pathname,O)errordlg(沒有選中文件,出錯);return;elsefile=pathname,filename;globalZ%用于初始化的全局變量ZZ=file;o=imread(file);axes(handles.axesl);imshow(o);title(原始圖像);k=imread(file);axes(handles.axes2);imshow(k);title(待處理圖像);handles.k=k;guidata(hObject,
40、handles);end%Executesonbuttonpressinsaveas.functionsaveas_Callback(hObject,eventdata,handles)%hObjecteventdatahandletosaveas(seeGCBO)reserved一tobedefinedinafutureversionofMATLABhandles(seeGUIDATA)*.tif;*.*structurewithhandlesanduserdatasfilename,sfilepath=uiputfile(*.jpg;*.bmp;保存圖像文件,untitled.jpg);%
41、選擇圖像文件保存的路徑與格式ifisequal(sfilename,sfilepath,O,O)sfilefullname=sfilepath,sfilenameaxes(handles.axes2);imwrite(handles.k,sfilefullname,jpg);%實現(xiàn)對圖像的保存elsemsgbox(你按了取消鍵,保存失?。?end%Executesonbuttonpressinexit.functionexit_Callback(hObject,eventdata,handles)%hObjecthandletoexit(seeGCBO)%eventdatareservedto
42、bedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)clc;closeall;clear;%Executesonbuttonpressinbackpace.functionbackpace_Callback(hObject,eventdata,handles)%hObjecthandletobackpace(seeGCBO)%eventdatareservedtobedefinedinafutureversionofMATLAB%handlesstructurewithhandl
43、esanduserdata(seeGUIDATA)axes(handles.axes2);%撤銷globalTimshow(T);title(返回上一步操作效果);handles.k=T;guidata(hObject,handles);%Executesonbuttonpressinzero.functionzero_Callback(hObject,eventdata,handles)%hObjecthandletozero(seeGCBO)%eventdatareservedtobedefinedinafutureversionofMATLAB%handlesstructurewithh
44、andlesanduserdata(seeGUIDATA)globalZaxes(handles.axes2);k=imread(Z);imshow(k);title(原始圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinplat.functionplat_Callback(hObject,eventdata,handles)%hObjecthandletoplat(seeGCBO)%eventdatareservedtobedefinedinafutureversionofMATLAB%handlesstruct
45、urewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;h=111;111;111;H=h/9;i=double(handles.k);k=convn(i,h);imshow(k,);title(經(jīng)過線性平滑后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinsharpen.functionsharpen_Callback(hObject,eventdata,handles)%hObject%eventdatahandl
46、etosharpen(seeGCBO)reserved一tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;K=fspecial(laplacian,0.7);k=filter2(K,T)/100;imshow(k);title(經(jīng)過線性銳化后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressingray.functiong
47、ray_Callback(hObject,eventdata,handles)%hObject%eventdatahandletogray(seeGCBO)reserved一tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=rgb2gray(handles.k);imshow(k);title(灰度變換后的圖像);handles.k=k;guidata(hObject,handles);%Exe
48、cutesonbuttonpressinnoise.functionnoise_Callback(hObject,eventdata,handles)%hObject%eventdatahandletonoise(seeGCBO)reserved一tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;prompt=設(shè)置椒鹽噪聲參數(shù):;defans=0.05;p=inputdlg(prompt,input
49、,1,defans);p1=str2num(p1);k=imnoise(handles.k,salt&pepper,p1);imshow(k);title(加入椒鹽噪聲后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinbalance.functionbalance_Callback(hObject,eventdata,handles)%hObjecthandletobalance(seeGCBO)%eventdatareservedtobedefinedinafutureversionofMATLAB%hand
50、lesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=histeq(handles.k);imshow(k);title(經(jīng)過直方圖均衡后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressininverse.functioninverse_Callback(hObject,eventdata,handles)%hObjecthandletoinverse(seeGCBO)%eventdatareser
51、vedtobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=imcomplement(handles.k);%求反函數(shù)imshow(k);title(求反后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinedgedetect.functionedgedetect_Callback(hObject,eventdata,
52、handles)%hObjecthandletoedgedetect(seeGCBO)%eventdatareservedtobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=edge(handles.k,canny);imshow(k);title(通過Canny邊緣檢測后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpres
53、sinhormirror.functionhormirror_Callback(hObject,eventdata,handles)%hObjecthandletohormirror(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=handles.k;k=fliplr(handles.k);imshow(k);title(水平鏡像后的圖像)
54、;handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinvermirror.functionvermirror_Callback(hObject,eventdata,handles)%hObjecthandletovermirror(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;k=handles.k;k=flipud(handles.k);imshow(k);title(垂直鏡像后的圖像);handles.k=k;guidata(hObject,handles);%Executesonbuttonpressinrotate.functionrotate_Callback(hObject,eventdata,handles)%hObjecthandletorotate(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructure
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學三年級數(shù)學下冊口算題
- 小學數(shù)學二年級100以內(nèi)連加連減口算題卡
- 人教遼寧 九年級 下冊 語文 第二單元《 遼寧中考 題型專練》習題課 課件
- 人教山西 九年級 下冊 語文 第四單元《 驅(qū)遣我們的想象》習題課 課件
- 人教陜西 九年級 下冊 語文 第三單元《 魚我所欲也》習題課課件
- 運動健身的小知識
- 新人教版高中語文必修3鳳蝶外傳 同步練習選擇題
- 北侖中學學年第二學期高一期中語文試題(全年級使用)
- 人教版一年級上冊數(shù)學第六單元《1120個數(shù)的認識》試卷2
- 儀器臨床檢測合同范例
- 高質(zhì)量金融人才職業(yè)發(fā)展報告 2024
- 中國多發(fā)性骨髓瘤診治指南(2024 年修訂)
- 2.4 共射放大電路的失真分析
- 【MOOC】數(shù)據(jù)庫系統(tǒng)(中):建模與設(shè)計-哈爾濱工業(yè)大學 中國大學慕課MOOC答案
- 東北地方史 課件高三統(tǒng)編版(2019)歷史二輪專題復(fù)習
- 民兵教練員四會教案模板
- 《跨學科實踐活動3 水質(zhì)檢測及自制凈水器》教學設(shè)計
- 時政述評巴以沖突課件-2024屆高考政治一輪復(fù)習
- 三級綜合醫(yī)院評審標準(2024年版)
- 2024-2030年中國青梅行業(yè)發(fā)展態(tài)勢與競爭策略分析研究報告
- 湘教版四年級美術(shù)下冊 3 春天來了 教案
評論
0/150
提交評論