版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《圖像處理演示系統(tǒng)課程設(shè)計(jì)》)(院、系部專業(yè)及班級(jí)號(hào)學(xué)名姓日期摘要數(shù)字圖像處理的目的在于改善圖像的質(zhì)量,主要以改善人的視覺效果為目的。目前,圖、、、商業(yè)等領(lǐng)域。因?yàn)閿?shù)字圖像處理技術(shù)易于實(shí)像處理技術(shù)應(yīng)用領(lǐng)域廣泛醫(yī)學(xué)科研軍事現(xiàn)非線性處理,處理程序和處理參數(shù)可變,故是一項(xiàng)通用性強(qiáng),精度高,處理方法靈活,信息保存、傳送可靠的圖像處理技術(shù)。本圖像處理演示系統(tǒng)以數(shù)字圖像處理理論為基礎(chǔ),對(duì)部分常用功能進(jìn)行可視化設(shè)計(jì),簡(jiǎn)潔大方,方便用戶操作。本文使用MATLAB設(shè)計(jì)良好的用戶界面,從加載、顯示、輸出及圖像的幾何變換(平移、縮放、旋轉(zhuǎn)、翻轉(zhuǎn))與圖像增強(qiáng)(空間域的平滑濾波與銳化濾波)等方面提供了簡(jiǎn)單但實(shí)用的基本圖像處理功能。1.主要內(nèi)容1.1圖像處理演示系統(tǒng)設(shè)計(jì)要求1)能加載和顯示原始圖像,顯示和輸出處理后的圖像;2)實(shí)現(xiàn)各部分功能且便于維護(hù)和具備可擴(kuò)展性;3)界面美觀并且便于操作;1.2圖像處理演示系統(tǒng)設(shè)計(jì)任務(wù)數(shù)字圖像處理演示系統(tǒng)應(yīng)該具備圖像的圖像增強(qiáng)(空間域的平滑濾波與銳化濾波)、幾何變換(平移、縮放、旋轉(zhuǎn)、翻轉(zhuǎn))、繪制直方圖的簡(jiǎn)單處理功能。1.2.1圖像增強(qiáng)圖像增強(qiáng)是數(shù)字圖像處理的基本內(nèi)容之一,其目的是根據(jù)應(yīng)用需要突出圖像中的某些“有用”的信息,削弱或去除不需要的信息,以達(dá)到擴(kuò)大圖像中不同物體特征之間的差別,使處理后的圖像對(duì)于特定應(yīng)用而言,比原始圖像更合適,或者為圖像的信息提取以及其他圖像分析技術(shù)奠定了基礎(chǔ)。一般情況下,經(jīng)過增強(qiáng)處理后,圖像的視覺效果會(huì)發(fā)生改變,這種變化意味著圖像的視覺效果得到了改善,某些特定信息得到了增強(qiáng)。1.2.2幾何變換幾何變換又稱為幾何運(yùn)算,它是圖像處理和圖像分析的重要內(nèi)容之一。通過幾何運(yùn)算,可以根據(jù)應(yīng)用的需要使原圖像產(chǎn)生大小、形狀、和位置等各方面的變化。簡(jiǎn)單的說,幾何變換可以改變像素點(diǎn)所在的幾何位置,以及圖像中各物體之間的空間位置關(guān)系,這種運(yùn)算可以被看成是將各物體在圖像內(nèi)移動(dòng),特別是圖像具有一定的規(guī)律性時(shí),一個(gè)圖像可以由另外一個(gè)圖像通過幾何變換來產(chǎn)生。實(shí)際上,一個(gè)不受約束的幾何變換,可將輸入圖像的一個(gè)點(diǎn)變換到輸出圖像中的任意位置。幾何變換不僅提供了產(chǎn)生某些特殊圖像的可能,甚至還可以使圖像處理程序設(shè)計(jì)簡(jiǎn)單化。從變換性質(zhì)來分可以分為圖像的位置變換、形狀變換等2.設(shè)計(jì)思想:2.1圖像處理演示系統(tǒng)實(shí)現(xiàn)工具的選擇使用MATLAB軟件進(jìn)行界面設(shè)計(jì)及程序編寫。2.2系統(tǒng)結(jié)構(gòu)框圖圖像處理系統(tǒng)平移變換文件圖像增強(qiáng)幾何變換繪制直方圖縮放旋轉(zhuǎn)翻轉(zhuǎn)變換變換變換幫助保存打開平滑處理銳化處理3.圖形用戶界面設(shè)計(jì)GUI是實(shí)現(xiàn)人機(jī)交互的中介,可以通過它實(shí)現(xiàn)數(shù)據(jù)輸入、處理和輸出。MATLAB提供了一個(gè)專門的GUI設(shè)計(jì)工具——圖形用戶界面開發(fā)環(huán)境(GUIDE),使用該工具,可以快速完成GUI設(shè)計(jì)任務(wù)。利用MATLAB提供的有關(guān)數(shù)據(jù),還可以創(chuàng)建工具欄控件和多種對(duì)話框。3.1啟動(dòng)GUIDE在命令窗口輸入GUIDE,則顯示如下的“GUIDEQuickStart”對(duì)話框。打開“GUIDEQuickStart”對(duì)話框,利用GUIDE模板創(chuàng)建新的GUI,選擇一個(gè)模板后,點(diǎn)擊OK按鈕,在輸出編輯器中打開GUI。添加菜單以及選擇模板后點(diǎn)擊運(yùn)行顯示如下:4.圖像處理演示系統(tǒng)各功能的實(shí)現(xiàn)4.1文件的打開與保存4.1.1文件的打開在主菜單“文件”的下拉菜單中,有個(gè)“打開”選項(xiàng),在其回調(diào)函數(shù)中添加打開某個(gè)文件的相關(guān)代碼:[,pathname]=uigetfile(...{'*.bmp;*.jpg;*.gif;','Files(*.bmp,*.jpg,*.gif)';'*.bmp','位圖文件(*.bmp)';...'*.jpg','Figures(*.jpg)';...'*.gif','MAT-files(*.gif)';...'*.*','AllFiles(*.*)'},...'Openafile');globalwhimgxx;L=length();if<5returnendV=strcat(pathname,);xx=imfinfo(V);handles.my_data1=V;guidata(hObject,handles);axes(handles.axes1);img=imread(V);[w,h,l]=size(img);imshow(img);函數(shù)中主要有兩Uigetfile為將要打開文件的文件名,pathname為將要打開文件的路徑。是生成文件選擇打開對(duì)''Openthefile部分參數(shù)'*.bmp;*.jpeg;*.gif…'是想要打開文件的格式,話框的標(biāo)題,載入一幅位圖,其運(yùn)行效果如下:4.1.2文件的保存在主菜單“文件”的下拉菜單中,有個(gè)“保存”選項(xiàng),在其回調(diào)函數(shù)中添加保存某個(gè)文件的相關(guān)代碼:[new]=uiputfile(...{'*.bmp;*.jpg;*.gif;','MATLABFiles(*.bmp,*.jpg,*.gif)';'*.bmp','位圖文件(*.bmp)';...'*.jpg','Figures(*.jpg)';...'*.gif','MAT-files(*.gif)';...'*.*','AllFiles(*.*)'},...'Saveafile');globalimg;imwrite(img,strcat(newpath,newfile));把當(dāng)前文件保存到用戶選擇的保存路徑下,文件保存對(duì)話框中列出當(dāng)前目錄下的所有文件,保存的文件名和路徑名保存到new中。4.2圖像的增強(qiáng)4.2.1圖像的平滑濾波處理1)平滑濾波的作用:對(duì)圖像的高頻分量進(jìn)行消弱或消除,增強(qiáng)圖像的低頻分量。平滑濾波一般用于消除圖像中的隨即噪聲,從而起到圖像平滑的作用)平滑濾波原理:2.(1)鄰域平均濾波法鄰域平均濾波法是將一個(gè)像素點(diǎn)及其鄰域中的所有像素點(diǎn)的平均值賦給輸出圖像中相應(yīng)的像素點(diǎn),從而達(dá)到平滑的目的,又稱均值濾波法。最簡(jiǎn)單的鄰域平均濾波法是所有模板系數(shù)都取相同的值.鄰域平均濾波法的運(yùn)算公式為:g(x,y)=1/N∑f(i.j)x,y=0,1,2,…,N-1j=∈M其中,M是以(x,y)為中心的鄰域像素點(diǎn)的集合,N是該鄰域內(nèi)像素點(diǎn)的總個(gè)數(shù),對(duì)每個(gè)像素點(diǎn)按該公式進(jìn)行計(jì)算即可得到增強(qiáng)圖像中所有像素點(diǎn)的灰度值。(2)中值濾波法盡管鄰域平均濾波法可以起到平滑圖像的作用,但在消除噪聲的同時(shí)會(huì)使圖像中的一些細(xì)節(jié)變得模糊。中值濾波法則在消除噪聲的同時(shí)還能保持圖像中的細(xì)節(jié)部分,防止圖像的邊緣部分模糊。與鄰域平均法不同,中值濾波是將鄰域內(nèi)所有的像素點(diǎn)值按從小到大的順序排列,取中間值作為中心像素點(diǎn)的輸出值。其原理是利用一個(gè)奇數(shù)點(diǎn)的移動(dòng)窗口,將窗口中心點(diǎn)的值用窗口各點(diǎn)的中間值代替,與均值濾波不同,它不是通過對(duì)鄰域內(nèi)的所有像素點(diǎn)求平均值來消除噪聲的,而是讓與周圍像素點(diǎn)灰度值的差比較大的像素點(diǎn)改取近似于周圍像素點(diǎn)灰度值的值。從而達(dá)到消除噪聲的目的。3)實(shí)現(xiàn)方法:這里主要以采用中值濾波法對(duì)圖像進(jìn)行處理(平滑處理)為例,其實(shí)現(xiàn)方法如下:globalwhimg;img2=img;fori=2:w-1forj=2:h-1form=1:3forn=1:3hhh((m-1)*3+n)=img(i+m-2,j+n-2);endendforp=1:9forq=p+1:9if(hhh(p)>hhh(q))temp=hhh(p);hhh(p)=hhh(q);hhh(q)=temp;endendendimg2(i,j)=hhh(5);endendimg=img2;imshow(img);中值濾波處理(平滑處理)后的結(jié)果為:圖像的銳化濾波處理4.2.2銳化濾波的作用:1)如果需要突出圖像的平滑處理會(huì)使圖像的邊緣紋理信息受到損失,圖像變得比較模糊。它可以消除或減弱圖像的低頻分量從而圖像的邊緣紋理信息,則可以通過銳化濾波器實(shí)現(xiàn),增強(qiáng)圖像中物體的邊緣輪廓信息,使得除邊緣以外的像素點(diǎn)的灰度值趨向于零。2)銳化濾波原理微分運(yùn)算是求像素點(diǎn)灰度值的變銳化濾波器是以對(duì)圖像的微分運(yùn)算或差分運(yùn)算為基礎(chǔ)。因此微分運(yùn)算或差分化率,而圖像內(nèi)不同物體邊緣處的像素點(diǎn)的灰度值往往變化比較明顯,運(yùn)算可以起到增強(qiáng)邊緣信息的作用。銳化算子:0-10H=-14-10-103)實(shí)現(xiàn)方法:globalwhimg;img1=im2double(img);a=img1(:,:,1);b=img1(:,:,2);c=img1(:,:,3);img2=img1;fori=2:w-1forj=2:h-1img2(i,j)=abs(4*img1(i,j)-img1(i-1,j)-img1(i+1,j)-img1(i,j-1)-img1(i,j+1));endendimg=im2uint8(img2);imshow(img);其銳化處理結(jié)果為:4.3圖像的幾何變換4.3.1對(duì)圖像進(jìn)行平移1)圖像平移的作用:而使平移后的圖像與,(X0,Y0)移動(dòng)到另外一個(gè)位置將圖像中的某點(diǎn)從一個(gè)位置(X,Y)原始圖像完全相同。)圖像平移原理:2圖像的平移是圖像變換中最簡(jiǎn)單的變換之一,其特點(diǎn)是平移后的圖像與原圖像完全相同,平移后新圖像上的每一個(gè)點(diǎn)都可以在原圖像中找到對(duì)應(yīng)的點(diǎn)。方向的X.Y,其中A(X,Y)X方向的平移量為△,Y(若點(diǎn)AX)進(jìn)行平移后,被移到000A(X,Y)的坐標(biāo)為:,那么點(diǎn)平移量為△YX=X+△X0Y=Y+△Y0實(shí)現(xiàn)方法:globalwhimg;prompt={'請(qǐng)輸入橫向平移量?'};title='';ansa=inputdlg(prompt,title);x1=str2num(ansa{1});handles.my_data4=x1;prompt={'請(qǐng)輸入縱向平移量'};title='';ansa=inputdlg(prompt,title);y1=str2num(ansa{1});handles.my_data5=y1;guidata(hObject,handles)%上段代碼中的x1,y1即為需要輸入的橫向平移量與縱向平移量forx=1:wfory=1:hPosSourceX=uint16(x+x1);PosSourceY=uint16(y+y1);if((PosSourceX<1)||(PosSourceX>w)||(PosSourceY<1)||(PosSourceY>h))if(xx.BitDepth==24)Transfor(x,y,1:3)=uint8(1);elseTransfor(x,y)=uint8(1);endelseif(xx.BitDepth==24)img(x,y,1:3)=BmpImage(PosSourceX,PosSourceY,1:3);elseimg(x,y)=BmpImage(PosSourceX,PosSourceY);endendendendimshow(img)%(PosSourceX和PosSourceY是平移后坐標(biāo)點(diǎn),Transfor為平移后圖片)4.3.2對(duì)圖像進(jìn)行縮放)圖像縮放的作用:1.對(duì)圖像進(jìn)行縮小和放大的處理,可分別對(duì)其寬和高的縮放量進(jìn)行設(shè)置。2)圖像縮放原理:方向按相同比例縮方向和Y通常情況下,數(shù)字圖像的比例縮放是將給定的圖像在X方向縮放的比例不同,則圖像的Y倍。從而獲得一副新的圖像,如果X方向和a放比例縮放會(huì)改變?cè)紙D像像素之間的相對(duì)位置,產(chǎn)生幾何畸變。設(shè)原始圖像中的點(diǎn),則坐標(biāo)關(guān)系可表示為:,Y)(XA(X,Y)比例縮放后,在新圖像中的對(duì)應(yīng)點(diǎn)為A101010X1=aX0Y1=bX0若比例縮放所產(chǎn)生的圖像中的像素在原圖像中沒有相對(duì)應(yīng)的像素點(diǎn)時(shí),就需要進(jìn)行灰度值的插值運(yùn)算,一般有以下兩種插值處理方法。該方法的主要直接賦值為和它最相近的像素灰度值,這種方法稱為最鄰近插值法,(1)特點(diǎn)是簡(jiǎn)單、計(jì)算量很小、但可能會(huì)產(chǎn)生馬賽克現(xiàn)象;但運(yùn)算通過其他數(shù)學(xué)插值算法來計(jì)算相應(yīng)像素點(diǎn)的灰度值,這類方法處理效果好,2)(量會(huì)有所增加)實(shí)現(xiàn)方法:3sy.Y向縮放倍數(shù)向縮放倍數(shù):'};m1=m*sx;n1=n*sy;%設(shè)置Xprompt={'請(qǐng)輸入forh=1:m1;title='';forw=1:n1;ansa=inputdlg(prompt,title);b(h,w)=i(round(h/sx),round(w/sy));%roundsx=str2num(ansa{1});取最鄰近整數(shù)handles.my_data3=sx;endguidata(hObject,handles)endm=xx.Width;n=xx.Height;)xx為讀取的原始圖像信息為縮放后的圖像二維數(shù)據(jù),為原始圖像的二維數(shù)據(jù),,(mnm1,n1縮放處理結(jié)果顯示如下:4.3.3對(duì)圖像進(jìn)行旋轉(zhuǎn)1)圖像旋轉(zhuǎn)的作用:對(duì)圖像進(jìn)行任意角度的旋轉(zhuǎn)。2)圖像旋轉(zhuǎn)原理:圖像的旋轉(zhuǎn)變換是幾何學(xué)中研究的重要內(nèi)容之一,一般情況下,圖像的旋轉(zhuǎn)變換是指以圖像經(jīng)過旋轉(zhuǎn)變換之后,圖像的中心為原點(diǎn),將圖像上的所有像素都旋轉(zhuǎn)同一個(gè)角度的變換。和平移變換一樣,在圖像旋轉(zhuǎn)圖像的位置發(fā)生了改變,但旋轉(zhuǎn)后,圖像的大小一般會(huì)改變。又可以擴(kuò)大顯示區(qū)域的圖像范圍以顯示圖像的全變換中既可以把轉(zhuǎn)出顯示區(qū)域的圖像截去,部。,為表示方便,A(X,Y)A設(shè)原始圖像的任意點(diǎn)(X,Y)經(jīng)過旋轉(zhuǎn)β角度以后到新的位置000采用極坐標(biāo)形式表示,原始點(diǎn)的角度為а。如下圖所示PrA(X,Y)rA(X,Y)000根據(jù)極坐標(biāo)與二維垂直坐標(biāo)的關(guān)系,原始圖像的點(diǎn)A(X,Y)的X和Y坐標(biāo)如下:00000X=rcosа0Y=rsinа0旋轉(zhuǎn)到新位置以后點(diǎn)A(X,Y)的坐標(biāo)如下:X=rcos(а-β)=rcosаcosβ+rsinаsinβ=Xcosβ+Ysinβ00Y=rsin(а-β)=rsinаcosβ-rcosаsinβ=-Xsinβ+Ycosβ00圖像的旋轉(zhuǎn)變換用矩陣形式表示如下:Xcosβsinβ0X0Y=-sinβcosβ0Y010011對(duì)圖像進(jìn)行旋轉(zhuǎn)操作時(shí)需要輸入旋轉(zhuǎn)(該題中旋轉(zhuǎn)角為90度)角度,相關(guān)實(shí)現(xiàn)代碼如下:globalwhimg;prompt={'請(qǐng)輸入旋轉(zhuǎn)角度:'};title='AngleDegrees';ansa=inputdlg(prompt,title);n=str2num(ansa{1});i=im2double(img);pai=3.14;n=pai*n/180;%?將角度轉(zhuǎn)換為直觀的表示方法,便于直接輸入度數(shù)。img1=zeros(w,h);fori=1:(w-1)forj=1:(h-1)img1(int32(i*cos(n)+sin(n)*j),int32(j*cos(n)-i*1*sin(n)))=i(i,j);endendimg=im2unit8(img1);imshow(img);旋轉(zhuǎn)處理如下圖所示:4.3.4對(duì)圖像進(jìn)行翻轉(zhuǎn)1)圖像翻轉(zhuǎn)的作用:實(shí)現(xiàn)圖像的水平翻轉(zhuǎn)2)圖像翻轉(zhuǎn)原理:垂直方向:y′=h-y+1水平方向:x′=w-x+1其中為h圖像高,w為圖像寬3)實(shí)現(xiàn)方法:globalxximgwh;img1=img;fori=1:wforj=1:himg1(i,j,1:3)=img(w-i+1,h-j+1,1:3);endendimg=img1;imshow(img);其結(jié)果如下顯示:對(duì)翻轉(zhuǎn)后的圖像銳化所顯示的圖像為:圖像直方圖的繪制4.4.1)圖像直方圖繪制的作用:實(shí)現(xiàn)圖像直方圖的均衡化。2)圖像直方圖均衡原理:直方圖均衡化是將原圖像的直方圖通過變換函數(shù)修正為均勻的直方圖,然后按均衡直方圖修正原圖像。圖像均衡化處理后,圖像的直方圖是平直的,即各灰度級(jí)具有相同的出現(xiàn)頻數(shù),那么由于灰度級(jí)具有均勻的概率分布,圖像看起來就更清晰了。首先假定連續(xù)灰度級(jí)的情況,推導(dǎo)直方圖均衡化變換公式,令r代表灰度級(jí),P(r)為概率密度函數(shù)。(注:r值已歸一化,最大灰度值為1)。3)實(shí)現(xiàn)方法:globalxximgwh;img1=rgb2gray(img);img1=double(img1);%img1=uint8(255*img1*0.5+0.5);grey_grade=2^8;fori=1:grey_gradegrey_friq(i)=0;endfory=1:wforx=1:hgrey_friq(img1(y,x)+1)=grey_friq(img1(y,x)+1)+1;endendbar(1:256,grey_friq);該圖像的直方圖顯示如下:5.小結(jié)從通常意義上講,數(shù)字圖像處理技術(shù)更加普遍、可靠和準(zhǔn)確,比起模擬方法,它們也更容易實(shí)現(xiàn),專用的硬件被用于數(shù)字圖像處理。今天,硬件解決方案被廣泛的用于視頻處理系統(tǒng),但商業(yè)化的圖像處理任務(wù)基本上仍以軟件形式實(shí)現(xiàn),運(yùn)行在通用個(gè)人電腦上,掌握進(jìn)一步的圖像處理技能對(duì)今后的學(xué)習(xí)和工作生活也都有其積極的影響!通過這個(gè)階段的努力本圖像處理演示系統(tǒng)已基本完成了對(duì)文件的打開保存,以及對(duì)圖像的平移、圖像的旋轉(zhuǎn)、翻轉(zhuǎn)、圖像的縮放、圖像的增強(qiáng)等功能的實(shí)現(xiàn),由于個(gè)人水平和時(shí)間的有限,此次課程設(shè)計(jì)還存在許多想法沒有很好的實(shí)現(xiàn),擴(kuò)展功能上也有一定的局限性,希望能在今后的學(xué)習(xí)中逐漸彌補(bǔ)和改善!6.源程序functionvarargout=graph(varargin)%instancetorun(singleton).%GRAPHM-graph.fig%%GRAPH,byitself,createsanew%Seealso:GUIDE,GUIDATA,GRAPHorraisestheexistingGUIHANDLES%singleton*.%%Edittheabovetexttomodifytheresponse%H=GRAPHreturnsthehandletoatohelpgraphnewGRAPHorthehandleto%theexistingsingleton*.%LastModifiedbyGUIDEv2.510-Jul-2014%13:33:34%GRAPH('CALLBACK',hObject,eventData,ha%Begininitializationcode-DONOTEDITndles,...)callsthelocalgui_Singleton=1;%functionnamedCALLBACKinglobalwhimgxx;GRAPH.Mwiththegiveninputarguments.gui_State=struct('gui_Name',m,...%'gui_Singleton',%GRAPH('Property','Value',...)createsgui_Singleton,...anewGRAPHorraisesthe'gui_OpeningFcn',%existingsingleton*.Startingfrom@graph_OpeningFcn,...theleft,propertyvaluepairsare'gui_OutputFcn',%appliedtotheGUIbefore@graph_OutputFcn,...graph_OpeningFunctiongetscalled.An'gui_LayoutFcn',%unrecognizedpropertynameor[],...invalidvaluemakespropertyapplication'gui_Callback',[]);%stop.Allinputsarepassedtoifnargin&isstr(varargin{1})graph_OpeningFcnviavarargin.gui_State.gui_Callback=%str2func(varargin{1});%*SeeGUIOptionsonGUIDE'sendToolsmenu.ChooseGUIallowsonlyoneifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});gui_mainfcn(gui_State,varargin{:});Elseend%Endinitializationcode-DONOTEDIT%---Executesjustbeforegraphismadevisible.functiongraph_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstograph(seeVARARGIN)%Choosedefaultcommandlineoutputforgraphhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesgraphwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=graph_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%--------------------------------------------------------------------function(hObject,eventdata,handles)%hObjecthandletofile(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%--------------------------------------------------------------------functionopen(hObject,eventdata,handles)%hObjecthandletoopenFile(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)[,pathname]=uigetfile(...{'*.bmp;*.jpg;*.gif;','MATLABFiles(*.bmp,*.jpg,*.gif)';'*.bmp','位圖文件(*.bmp)';...'*.jpg','Figures(*.jpg)';...'*.gif','MAT-files(*.gif)';...'*.*','AllFiles(*.*)'},...'Openafile');globalwhimgxx;L=length();if<5returnendV=strcat(pathname,);xx=imfinfo(V);handles.my_data1=V;guidata(hObject,handles);axes(handles.axes1);img=imread(V);[w,h,l]=size(img);imshow(img);%--------------------------------------------------------------------functionsave_Callback(hObject,eventdata,handles)%hObjecthandletosave(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)[new]=uiputfile(...{'*.bmp;*.jpg;*.gif;','MATLABFiles(*.bmp,*.jpg,*.gif)';'*.bmp','位圖文件(*.bmp)';...'*.jpg','Figures(*.jpg)';...'*.gif','MAT-files(*.gif)';...'*.*','AllFiles(*.*)'},...'Saveafile');globalimg;imwrite(img,strcat(newpath,newfile));%--------------------------------------------------------------------functionstrength_Callback(hObject,eventdata,handles)%hObjecthandletostrength(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%--------------------------------------------------------------------functionsmooth_Callback(hObject,eventdata,handles)%hObjecthandletosmooth(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalwhimg;forq=p+1:9img2=img;if(hhh(p)>hhh(q))fori=2:w-1temp=hhh(p);forj=2:h-1hhh(p)=hhh(q);form=1:3hhh(q)=temp;forn=1:3endendhhh((m-1)*3+n)=img(i+m-2,j+n-2);endendimg2(i,j)=hhh(5);endendforp=1:9endimg=img2;imshow(img);%--------------------------------------------------------------------functionsharping_Callback(hObject,eventdata,handles)%hObjecthandletosharping(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalwhimg;c=img1(:,:,3);img1=im2double(img);img2=img1;a=img1(:,:,1);fori=2:w-1b=img1(:,:,2);forj=2:h-1img2(i,j)=abs(4*img1(i,j)-img1(i-1,j)-img1(i+1,j)-img1(i,j-1)-img1(i,j+1));endendimg=im2uint8(img2);imshow(img);%--------------------------------------------------------------------functiontrans_Callback(hObject,eventdata,handles)%hObjecthandletotrans(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%--------------------------------------------------------------------functiontranslation_Callback(hObject,eventdata,handles)%hObjecthandletotranslation(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalwhimg;prompt={'請(qǐng)輸入縱向平移量'};prompt={'請(qǐng)輸入橫向平移量?'};title='';title='';ansa=inputdlg(prompt,title);ansa=inputdlg(prompt,title);y1=str2num(ansa{1});x1=str2num(ansa{1});handles.my_data5=y1;handles.my_data4=x1;guidata(hObject,handles)%上段代碼中的x1,y1即為需要輸入的橫向平移量與縱向平移量forx=1:wfory=1:hPosSourceX=uint16(x+x1);PosSourceY=uint16(y+y1);if((PosSourceX<1)||(PosSourceX>w)||(PosSourceY<1)||(PosSourceY>h))if(xx.BitDepth==24)Transfor(x,y,1:3)=uint8(1);elseTransfor(x,y)=uint8(1);endelseif(xx.BitDepth==24)img(x,y,1:3)=BmpImage(PosSourceX,PosSourceY,1:3);elseimg(x,y)=BmpImage(PosSourceX,PosSourceY);endendendendfigure;imshow(img)%(PosSourceX和PosSourceY是平移后坐標(biāo)點(diǎn),Transfor為平移后圖片)%--------------------------------------------------------------------functionzoom_Callback(hObject,eventdata,handles)%hObjecthandletozoom(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)prompt={'請(qǐng)輸入X向縮放倍數(shù):'};guidata(hObject,handles)title='';m=xx.Width;ansa=inputdlg(prompt,title);n=xx.Height;sx=str2num(ansa{1});m1=m*sx;n1=n*sy;%設(shè)置Y向縮放倍數(shù)sy.handles.my_data3=sx;forh=1:m1;forw=1:n1;b(h,w)=i(round(h/sx),round(w/sy));%round取最鄰近整數(shù)endend%--------------------------------------------------------------------functionrevolve_Callback(hObject,eventdata,handles)%hObject
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)維修管理制度
- 制造業(yè)人力資源管理策略
- 銀行營(yíng)銷策略總結(jié)精準(zhǔn)定位提升競(jìng)爭(zhēng)力
- 2024年熱鬧的元宵節(jié)大班教案
- 2024年美術(shù)教案篇1
- 分公司資質(zhì)掛靠協(xié)議書(2篇)
- DB33T 2305-2021 大中型體育場(chǎng)館智慧化建設(shè)和管理規(guī)范
- 乳腺癌保乳手術(shù)
- 注塑產(chǎn)品項(xiàng)目可行性研究報(bào)告
- 《導(dǎo)彈驅(qū)逐艦》課件
- 貴州省遵義市播州區(qū)2023-2024學(xué)年二年級(jí)上學(xué)期數(shù)學(xué)期末質(zhì)量監(jiān)測(cè)試卷
- 2024版智能硬件產(chǎn)品研發(fā)合作協(xié)議3篇
- 甘肅省蘭州市第一中學(xué)2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 草地調(diào)查規(guī)劃學(xué)知到智慧樹章節(jié)測(cè)試課后答案2024年秋東北農(nóng)業(yè)大學(xué)
- 2024年礦產(chǎn)資源開發(fā)咨詢服務(wù)合同
- 上海市2024-2025學(xué)年高一語(yǔ)文下學(xué)期期末試題含解析
- 國(guó)家電網(wǎng)招聘之財(cái)務(wù)會(huì)計(jì)類題庫(kù)含完整答案(必刷)
- 建筑物拆除的拆除工廠考核試卷
- 廣東省深圳市2023-2024學(xué)年高二上學(xué)期期末測(cè)試英語(yǔ)試卷(含答案)
- 乘風(fēng)化麟 蛇我其誰(shuí) 2025XX集團(tuán)年終總結(jié)暨頒獎(jiǎng)盛典
- 人教版一年級(jí)數(shù)學(xué)2024版上冊(cè)期末測(cè)評(píng)(提優(yōu)卷一)(含答案)
評(píng)論
0/150
提交評(píng)論