




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Matlab圖形界面圖像的旋轉(zhuǎn)、平移和縮放姓名: 班級(jí): 學(xué)號(hào): 目錄問(wèn)題描述2摘要3正文41、界面設(shè)計(jì)42、打開(kāi)圖片功能43、實(shí)現(xiàn)圖片的任意角度的旋轉(zhuǎn)54、圖像的平移85、圖像的縮放(放大與縮小)12實(shí)驗(yàn)心得16附錄:17Matlab圖形界面操作 -圖像的旋轉(zhuǎn)、平移和縮放問(wèn)題描述 期末運(yùn)用學(xué)習(xí)的matlab知識(shí)通過(guò)圖形用戶界面對(duì)圖片進(jìn)行操作,實(shí)現(xiàn)如下功能。l 能夠查找和讀取計(jì)算機(jī)中存儲(chǔ)圖像。 l 實(shí)現(xiàn)圖像的旋轉(zhuǎn)、平移、縮放等幾何變換。 l 通過(guò)matlab界面功能實(shí)現(xiàn)界面的完美布局。l 編寫代碼和回調(diào)函數(shù)實(shí)現(xiàn)上述功能。摘要本次任務(wù)旨在完成以下幾個(gè)任務(wù):l 整體分為四大模塊:原圖、旋轉(zhuǎn)、平移和
2、縮放。l 利用數(shù)字圖像處理技術(shù),以MATLAB為平臺(tái),建立一個(gè)實(shí)現(xiàn)設(shè)計(jì)主題的簡(jiǎn)易處理系統(tǒng)。 l 能顯示輸入圖像、輸出圖像。 l 程序代碼要有注釋說(shuō)明,調(diào)用MATLAB函數(shù)要清楚并理解函數(shù)的功能、使用范圍,在設(shè)計(jì)說(shuō)明書(shū)中要寫清楚函數(shù)的功能和參數(shù)意義。 l 完成自己課程設(shè)計(jì)說(shuō)明書(shū)。正文1、界面設(shè)計(jì)(1)在MATLAB命令窗口中輸入“guide”,確定后,彈出GUI窗口。(2)本次設(shè)計(jì)中,包含兩個(gè)坐標(biāo)軸(axes1、axes2),分別顯示原圖和處理后的圖像。包含六個(gè)按鈕(Push Button),分別實(shí)現(xiàn)“打開(kāi)圖片、保存處理后的圖片、旋轉(zhuǎn)、平移、放大、縮小以及退出功能”。(3)旋轉(zhuǎn)功能同時(shí)可以實(shí)現(xiàn)選
3、擇0360度任意的度數(shù),當(dāng)選擇不同的度數(shù)后,axes2位置就會(huì)顯示不同選擇角度的圖片。如果需要保存該圖片可以單擊保存按鈕進(jìn)行保存。(4)平移功能的實(shí)現(xiàn),當(dāng)單擊平移按鈕,可以有一個(gè)默認(rèn)的平移位置。在設(shè)計(jì)中預(yù)設(shè)了幾個(gè)固定位置,可以選擇,分別是X單位Y單位方向都可以選擇。達(dá)到平移的目的。(5)放大和縮小功能類似,在界面上表現(xiàn)為選擇不同的數(shù)據(jù),反映出來(lái)不同大小的圖片。(6)操作完成后,點(diǎn)擊退出功能,將詢問(wèn)是否退出,如果退出則點(diǎn)擊“是”,不退出點(diǎn)擊“我還要看看”。2、打開(kāi)圖片功能進(jìn)入程序界面后,要實(shí)現(xiàn)幾何操作,需要先打開(kāi)一張圖片。單擊打開(kāi)圖片按鈕,可以選擇圖片路徑,從存儲(chǔ)圖片的地址任意旋轉(zhuǎn)一張圖片,圖片
4、就會(huì)顯示在axes1的位置。效果如2-1所示: 圖 2-1如果想再打開(kāi)一張圖片進(jìn)行操作,可以再次單擊“打開(kāi)圖片”按鈕進(jìn)行操作,效果如圖2-2所示:圖2-2 3、實(shí)現(xiàn)圖片的任意角度的旋轉(zhuǎn)該功能回調(diào)函數(shù)使用的是imrotate函數(shù),其調(diào)用格式如下所示:(1)函數(shù)說(shuō)明及參數(shù)選擇 I0=imrotate(loadImage,value);I0是處理后的圖片。loadImage是定義的全局變量,當(dāng)打開(kāi)圖片后,將新圖片的值賦予該變量。Value值是傳遞過(guò)來(lái)的度數(shù)值。(2)問(wèn)題分析如果value值是一個(gè)定值,在實(shí)現(xiàn)旋轉(zhuǎn)功能時(shí),僅能在一個(gè)位置,通過(guò)優(yōu)化,實(shí)現(xiàn)任意角度旋轉(zhuǎn)。(3)運(yùn)用的函數(shù)和方法旋轉(zhuǎn)功能涉及im
5、rotate以及imshow函數(shù),詳細(xì)方法參考源代碼。(4)實(shí)驗(yàn)結(jié)果點(diǎn)擊旋轉(zhuǎn)按鈕,默認(rèn)值為180度,效果如圖3-1所示:圖3-1(旋轉(zhuǎn)180度)拖動(dòng)滑動(dòng)條,選擇其他角度,實(shí)現(xiàn)旋轉(zhuǎn)功能。旋轉(zhuǎn)72度效果如圖3-2所示:圖3-2(旋轉(zhuǎn)72度)旋轉(zhuǎn)0度即不進(jìn)行旋轉(zhuǎn),效果如圖3-3所示:圖3-3(旋轉(zhuǎn)0度)通過(guò)驗(yàn)證,隨意拖動(dòng)滑動(dòng)條,均可以正常顯示,如圖4-4所示:圖3-4更換其他圖片實(shí)現(xiàn)旋轉(zhuǎn)功能,效果圖3-5所示:圖3-5(5)結(jié)果分析:一般圖像的旋轉(zhuǎn)是以圖像的中心為原點(diǎn),旋轉(zhuǎn)一定的角度,也就是將圖像上的所有像素都旋轉(zhuǎn)一個(gè)相同的角度。旋轉(zhuǎn)后圖像的大小一般會(huì)改變,即可以把轉(zhuǎn)出顯示區(qū)域的圖像截去,或者擴(kuò)大圖
6、像范圍來(lái)顯示所有的圖像。圖像的旋轉(zhuǎn)變換也可以用矩陣變換來(lái)表示。4、圖像的平移 (1)問(wèn)題分析: 圖像平移是將一幅圖像中所有的點(diǎn)都按照指定的平移量在水平、垂直方向移動(dòng),平移后的圖像與原圖像相同。平移后的圖像上的每一點(diǎn)都可以在原圖像中找到。(2)實(shí)驗(yàn)方法:設(shè)(x0,y0)為原圖像上的一點(diǎn),圖像水平平移量X,垂直平移量為Y,則平移后點(diǎn)(x0,y0)的坐標(biāo)變?yōu)椋▁1,y1)。(x0,y0)與(x1,y1)之間的關(guān)系為: x1=x0+x; y1=y0+y。該功能可以通過(guò)函數(shù)translate函數(shù)實(shí)現(xiàn)。關(guān)鍵代碼se=translate(strel(1),100 -100); strel(1)表示圖像不變,
7、進(jìn)行Y X方向的平移,se是設(shè)置的圖像平移的距離。平移變量的旋轉(zhuǎn)通過(guò)switch來(lái)判斷并進(jìn)行傳遞。(3)實(shí)驗(yàn)結(jié)果:平移量為(-100,-100)時(shí),效果如圖4-1所示:圖4-1平移量為(-50,-100)時(shí),效果如圖4-2所示:圖4-2平移量為(0,-100)時(shí),效果如圖4-3所示:圖4-3平移量為(-50,-100)時(shí),效果如圖4-4所示:圖4-4平移量為(100,0)時(shí),效果如圖4-5所示:圖4-5平移量為(100,100)時(shí),效果如圖4-6所示:圖4-6更換其他圖片進(jìn)行平移操作,效果如圖4-7:圖4-7(4)結(jié)果分析:在設(shè)置的平移變量選項(xiàng)中,負(fù)數(shù)在X方向上代表向左平移,在Y軸上代表向上平
8、移。選擇不同的平移變量,圖片將平移結(jié)果顯示在對(duì)應(yīng)的地方。超出顯示區(qū)域的地方自動(dòng)截取數(shù)據(jù)。5、圖像的縮放(放大與縮?。?1)問(wèn)題分析:圖像的放大和縮小是用同一個(gè)函數(shù)實(shí)現(xiàn)的,根據(jù)圖像比例變換的原理及相應(yīng)算法可得到。(2)實(shí)驗(yàn)方法:圖像的放大和縮小的函數(shù)是imresize,核心代碼如下:I0=imresize(loadImage,value2);其中的value值代表放縮的倍數(shù)。(3)實(shí)驗(yàn)結(jié)果:點(diǎn)擊放大按鈕,默認(rèn)的放大倍數(shù)15倍,如圖5-1所示。圖5-1(放大15倍)拖動(dòng)滑動(dòng)條,得到新的大小的圖片,如圖5-2所示:圖5-2放大1倍的效果如圖5-3所示:圖5-3(放大1倍即原圖大?。┛s小效果圖,圖5-
9、4所示:圖5-4(原圖0.5倍)隨意拉動(dòng)拖動(dòng)條,得到縮小效果圖,圖5-6所示:圖5-6 當(dāng)縮小時(shí)的value值調(diào)為0時(shí),出現(xiàn)錯(cuò)誤,說(shuō)明,在縮小時(shí),value值設(shè)置為0是不合適的,效果如圖5-7所示。圖5-7更換圖片,改變縮小的變量數(shù)值,得到大小不一的圖片,如圖5-8所示:圖5-8(4)結(jié)果分析:在放大圖片時(shí),當(dāng)按比例將原圖像放大K倍,如果按照最近鄰域法則需要將一個(gè)像素值添加在新圖像的k×k的子塊中。顯然,如果放大倍數(shù)太大,按照這種方法處理會(huì)出現(xiàn)馬賽克效應(yīng)。最簡(jiǎn)單的比例縮小時(shí)當(dāng)fx=fy=0.5時(shí),即圖像被縮到一半大小,此時(shí)縮小后圖像中的(0,0)像素對(duì)應(yīng)于原圖像中的(0,0)像素;(
10、0,1)像素對(duì)應(yīng)于原圖像中的(0,2)像素;(1,0)像素對(duì)應(yīng)于原圖像中的(2,0)像素,以此類推。圖像縮小之后,因?yàn)槌休d的數(shù)據(jù)量小了,所以畫布可相應(yīng)縮小。此時(shí),只需在原圖像基礎(chǔ)上,每行隔一個(gè)像素取一點(diǎn),每隔一行進(jìn)行操作,即取原圖的偶奇數(shù)行和偶奇數(shù)列構(gòu)成新的圖像。如果圖像按任意比例縮小則需要計(jì)算選擇的行和列。實(shí)驗(yàn)心得本次課程設(shè)計(jì)使我更深的了解了MATLAB的程序設(shè)計(jì)及圖像處理的內(nèi)容,復(fù)習(xí)了有關(guān)于圖像處理方面的知識(shí),同時(shí)也對(duì)于MATLAB這一功能強(qiáng)大的軟件的使用更加的熟練,也學(xué)習(xí)到了很多新的知識(shí),積累了一些經(jīng)驗(yàn),歸結(jié)如下: 更全面的認(rèn)識(shí)了MATLAB這個(gè)軟件,并且能夠熟練的使用MATLAB的基本
11、功能,掌握了MATLAB的程序設(shè)計(jì)的基本方式方法和步驟。 學(xué)習(xí)了圖像的處理的各項(xiàng)基本函數(shù)的使用,特別對(duì)MATLAB的幫助功能有了很深刻的了解,能夠獨(dú)立的完成函數(shù)的編寫及功能的實(shí)現(xiàn),再也不是什么函數(shù)都需要使用網(wǎng)絡(luò)來(lái)詢問(wèn),學(xué)習(xí)了圖像噪聲的使用,讓我對(duì)專業(yè)知識(shí)有了更深的了解,對(duì)我以后的學(xué)習(xí)很有方向性。我對(duì)圖像幾何變換的原理,包括圖像的平移變換,圖像的旋轉(zhuǎn),圖像的旋轉(zhuǎn)及圖像的放大與縮小等原理都有了更清楚的認(rèn)識(shí),也明白了它們的實(shí)現(xiàn)機(jī)制。對(duì)于使用MATLAB去實(shí)現(xiàn)數(shù)字圖像的處理也有了更好的認(rèn)識(shí)。 通過(guò)這次的課程設(shè)計(jì),使我意識(shí)到所有的知識(shí)都是需要用實(shí)踐去幫著理解的,所謂理論指導(dǎo)實(shí)踐,很好的實(shí)踐能幫助我們更好
12、地去理解知識(shí),對(duì)于知識(shí)的掌握更加牢靠。同時(shí)在復(fù)習(xí)以前所學(xué)知識(shí)的同時(shí)其實(shí)也實(shí)現(xiàn)了溫故知新,對(duì)于舊知識(shí)有了新的理解。對(duì)于工程實(shí)踐,要想實(shí)現(xiàn)預(yù)期的效果,必須明白它實(shí)現(xiàn)的機(jī)制和相應(yīng)的算法,只有通過(guò)相應(yīng)的理論來(lái)指導(dǎo),我們才能有所創(chuàng)新,有所突破。附錄:1、參考文獻(xiàn):【1】賀興華等. MATLAB7.x圖像處理. 北京:人民郵電出版社,2006 【2】陳杰. MATLAB寶典. 北京:電子工業(yè)出版社,2007.【3】張德豐. MATLAB數(shù)值分析與應(yīng)用. 北京:國(guó)防工業(yè)出版社,2009【4】美岡薩雷斯.溫茨著. 數(shù)字圖像處理.2版. 北京:電子工業(yè)出版社,2002 【5】汪曉銀,鄒庭榮. 數(shù)學(xué)軟件與數(shù)學(xué)實(shí)驗(yàn)
13、. 武漢:華中農(nóng)業(yè)大學(xué)教務(wù)處,2007【6】Rafael C.Gonzalez.數(shù)字圖像處理(第三版).電子工業(yè)出版社,2011【7】楊丹,趙海濱,龍哲.MATLAB圖像處理實(shí)例詳解.清華大學(xué)出版社,20132、源代碼:(1)打開(kāi)圖片try isLoad=getappdata(handles.figure1,'isLoad'); if isLoad=0, fileName,filePath,filterIndex=uigetfile(. '*.*','All files',. '選擇圖像文件','MultiSelect
14、39;,'off'); if isequal(fileName,0) | isequal(filePath,0), return; else setappdata(handles.figure1,'fileName',fileName); setappdata(handles.figure1,'filePath',filePath); setappdata(handles.figure1,'isLoad',1); file=fullfile(filePath,fileName); axes(handles.axes1); I=im
15、read(file); sizeI=size(I); if length(sizeI)=3, I=rgb2gray(I); elseif length(sizeI)=2, I=I; else errordlg('Error Happened.','Error'); end setappdata(handles.figure1,'loadImage',I); imshow(I); end else btnName=questdlg('您已經(jīng)打開(kāi)一個(gè)文件,確定打開(kāi)另一個(gè)?將覆蓋當(dāng)前的文件?','提示',. 'O
16、K','Cancel','Cancel'); switch btnName, case 'OK', setappdata(handles.figure1,'isLoad',0); feval(pushbutton1_Callback,handles.pushbutton1,eventdata,handles); case 'Cancel', return; end endcatch errordlg('You must open a BMP file.','Error');e
17、nd(1)旋轉(zhuǎn):value=get(handles.slider1,'Value');loadImage=getappdata(handles.figure1,'loadImage');axes(handles.axes2);I0=imrotate(loadImage,value);imshow(I0);(2)平移:try x=get(handles.popupmenu3,'Value'); y=get(handles.popupmenu4,'Value'); loadImage=getappdata(handles.figure
18、1,'loadImage'); switch x, case 1, switch y, case 1, se=translate(strel(1),-100 -100); saveImage=imdilate(loadImage,se); case 2, se=translate(strel(1),-50 -100); saveImage=imdilate(loadImage,se); case 3, se=translate(strel(1),0 -100); saveImage=imdilate(loadImage,se); case 4, se=translate(str
19、el(1),50 -100); saveImage=imdilate(loadImage,se); case 5, se=translate(strel(1),100 -100); saveImage=imdilate(loadImage,se); end case 2, switch y, case 1, se=translate(strel(1),-100 -50); saveImage=imdilate(loadImage,se); case 2, se=translate(strel(1),-50 -50); saveImage=imdilate(loadImage,se); case
20、 3, se=translate(strel(1),0 -50); saveImage=imdilate(loadImage,se); case 4, se=translate(strel(1),50 -50); saveImage=imdilate(loadImage,se); case 5, se=translate(strel(1),100 -50); saveImage=imdilate(loadImage,se); end case 3, switch y, case 1, se=translate(strel(1),-100 0); saveImage=imdilate(loadI
21、mage,se); case 2, se=translate(strel(1),-50 0); saveImage=imdilate(loadImage,se); case 3, se=translate(strel(1),0 0); saveImage=imdilate(loadImage,se); case 4, se=translate(strel(1),50 0); saveImage=imdilate(loadImage,se); case 5, se=translate(strel(1),100 0); saveImage=imdilate(loadImage,se); end c
22、ase 4,%LoG switch y, case 1, se=translate(strel(1),-100 50); saveImage=imdilate(loadImage,se); case 2,%vertical se=translate(strel(1),-50 50); saveImage=imdilate(loadImage,se); case 3,%Both se=translate(strel(1),0 50); saveImage=imdilate(loadImage,se); case 4,%Both se=translate(strel(1),50 50); save
23、Image=imdilate(loadImage,se); case 5,%Both se=translate(strel(1),100 50); saveImage=imdilate(loadImage,se); end case 5,%Zerocross switch y, case 1, se=translate(strel(1),-100 100); saveImage=imdilate(loadImage,se); case 2,%vertical se=translate(strel(1),-50 100); saveImage=imdilate(loadImage,se); case 3,%Both se=translate(strel(1),0 10
溫馨提示
- 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è)繪安全管理制度合同范本
- 茶園綠色防控與承包經(jīng)營(yíng)合作協(xié)議
- 高層管理規(guī)劃方案
- 建設(shè)用地使用權(quán)產(chǎn)權(quán)互換及開(kāi)發(fā)協(xié)議
- 培訓(xùn)機(jī)構(gòu)插班生入學(xué)資格確認(rèn)協(xié)議
- 商業(yè)街區(qū)場(chǎng)地租賃與商業(yè)管理服務(wù)合同
- 馬路防塵墻安裝方案
- 數(shù)據(jù)評(píng)估面試題及答案
- 舞蹈機(jī)構(gòu)拆除方案(3篇)
- 特教醫(yī)院面試題及答案
- 2025年高考真題-政治(云南卷) 含答案
- 陜西省金太陽(yáng)2024-2025學(xué)年高二期末教學(xué)質(zhì)量檢測(cè)英語(yǔ)(含答案)
- 學(xué)堂在線 生活英語(yǔ)進(jìn)階 章節(jié)測(cè)試答案
- 黨徽黨旗條例全面解讀
- 2025至2030中國(guó)中小型風(fēng)電行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 六大茶類培訓(xùn)
- 2025-2030中國(guó)油田化學(xué)品行業(yè)市場(chǎng)深度調(diào)研及行情監(jiān)測(cè)與投資前景研究報(bào)告
- 2025年烏魯木齊危險(xiǎn)品駕駛員模擬試題
- 2025至2030年中國(guó)間苯二甲醇市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030中國(guó)質(zhì)子束治療系統(tǒng)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 外事安保活動(dòng)方案
評(píng)論
0/150
提交評(píng)論