版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Matlab圖形界面圖像的旋轉(zhuǎn)、平移和縮放姓名:班級:學(xué)號:目錄問題描述 2摘要 2正文 31、界面設(shè)計(jì) 32、打開圖片功能 43、實(shí)現(xiàn)圖片的任意角度的旋轉(zhuǎn) 54、圖像的平移 85、圖像的縮放(放大與縮?。?12實(shí)驗(yàn)心得 16附錄: 16Matlab圖形界面操作-圖像的旋轉(zhuǎn)、平移和縮放問題描述期末運(yùn)用學(xué)習(xí)的matlab知識通過圖形用戶界面對圖片進(jìn)行操作,實(shí)現(xiàn) 如下功能。能夠查找和讀取計(jì)算機(jī)中存儲圖像。實(shí)現(xiàn)圖像的旋轉(zhuǎn)、平移、縮放等幾何變換。通過matlab界面功能實(shí)現(xiàn)界面的完美布局。編寫代碼和回調(diào)函數(shù)實(shí)現(xiàn)上述功能。摘要本次任務(wù)旨在完成以下幾個(gè)任務(wù):整體分為四大模塊:原圖、旋轉(zhuǎn)、平移和縮放。利用數(shù)
2、字圖像處理技術(shù),以 MATLAB為平臺,建立一個(gè)實(shí)現(xiàn)設(shè)計(jì)主題的簡易處理系統(tǒng)。能顯示輸入圖像、輸出圖像。程序代碼要有注釋說明,調(diào)用 MATLAB函數(shù)要清楚并理解函數(shù)的功能、使用范圍,在設(shè)計(jì)說明書中要寫清楚函數(shù)的功能和參數(shù)意義。完成自己課程設(shè)計(jì)說明書。正文1、界面設(shè)計(jì)(1)在MATLAB命令窗口中輸入“ guide",確定后,彈出GUI窗口(2)本次設(shè)計(jì)中,包含兩個(gè)坐標(biāo)軸(axesl、axes?,分別顯示原圖和處理 后的圖像。包含六個(gè)按鈕(Push Button),分別實(shí)現(xiàn)“打開圖片、保存處理后的 圖片、旋轉(zhuǎn)、平移、放大、縮小以及退出功能”。(3)旋轉(zhuǎn)功能同時(shí)可以實(shí)現(xiàn)選擇0360度任意的
3、度數(shù),當(dāng)選擇不同的度數(shù) 后,axes2位置就會顯示不同選擇角度的圖片。如果需要保存該圖片可以單擊保 存按鈕進(jìn)行保存。(4)平移功能的實(shí)現(xiàn),當(dāng)單擊平移按鈕,可以有一個(gè)默認(rèn)的平移位置。在 設(shè)計(jì)中預(yù)設(shè)了幾個(gè)固定位置,可以選擇,分別是X單位Y單位方向都可以選擇。達(dá)到平移的目的。(5)放大和縮小功能類似,在界面上表現(xiàn)為選擇不同的數(shù)據(jù),反映出來不 同大小的圖片。(6)操作完成后,點(diǎn)擊退出功能,將詢問是否退出,如果退出則點(diǎn)擊“是”, 不退出點(diǎn)擊“我還要看看”。2、打開圖片功能進(jìn)入程序界面后,要實(shí)現(xiàn)幾何操作,需要先打開一張圖片。單擊打開圖片按 鈕,可以選擇圖片路徑,從存儲圖片的地址任意旋轉(zhuǎn)一張圖片, 圖片就會
4、顯示在 axesl的位置。效果如2-1所示:圖2-1如果想再打開一張圖片進(jìn)行操作,可以再次單擊“打開圖片”按鈕進(jìn)行操作, 效果如圖2-2所示:圖2-23、實(shí)現(xiàn)圖片的任意角度的旋轉(zhuǎn)該功能回調(diào)函數(shù)使用的是imrotate函數(shù),其調(diào)用格式如下所示:(1)函數(shù)說明及參數(shù)選擇I0=imrotate(loadImage,value);I0 是處理后的圖片。loadimage 是定義的全局 變量,當(dāng)打開圖片后,將新圖片的值賦予該變量。Value值是傳遞過來的度數(shù)值。(2)問題分析如果value值是一個(gè)定值,在實(shí)現(xiàn)旋轉(zhuǎn)功能時(shí),僅能在一個(gè)位置,通過優(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度)拖動滑動條,選擇其他角度,實(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度)通過驗(yàn)證,隨意拖動滑動條,均可以正常顯示,如圖 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)后圖像的大小一般會改變,即可以把轉(zhuǎn) 出顯示區(qū)域的圖像
6、截去,或者擴(kuò)大圖像范圍來顯示所有的圖像。 圖像的旋轉(zhuǎn)變換 也可以用矩陣變換來表示。4、圖像的平移(1)問題分析:圖像平移是將一幅圖像中所有的點(diǎn)都按照指定的平移量在水平、垂直方向移動,平移后的圖像與原圖像相同。平移后的圖像上的每一點(diǎn)都可以在原圖像中找 到。(2)實(shí)驗(yàn)方法:設(shè)(x0, y0)為原圖像上的一點(diǎn),圖像水平平移量 X,垂直平移量為 Y, 則平移后點(diǎn)(x0,y0)的坐標(biāo)變?yōu)?x1, y1)0 (x0, y0)與(x1, y1)之間的關(guān)系 為:x1=x0+-Ax; y1=y0+Ay。該功能可以通過函數(shù)translate函數(shù)實(shí)現(xiàn)。關(guān)鍵代 碼 se=translate(strel(1),100
7、-100); strel(1)表示圖像不變,進(jìn)行 Y X方向的平 移,se是設(shè)置的圖像平移的距離。平移變量的旋轉(zhuǎn)通過switch來判斷并進(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è)置的平移變
8、量選項(xiàng)中,負(fù)數(shù)在X方向上代表向左平移,在Y軸上代表向 上平移。選擇不同的平移變量,圖片將平移結(jié)果顯示在對應(yīng)的地方。超出顯示區(qū) 域的地方自動截取數(shù)據(jù)。5、圖像的縮放(放大與縮小)(1)問題分析:圖像的放大和縮小是用同一個(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倍)拖動滑動條,得到新的大小的圖片,如圖 5-2所示:圖5-2放大1倍的效果如圖
9、5-3所示:Ml FiQMre?File Edit View Insert Tods Desktop V/indow Help ,口修1色|年四窗癰/,|3|日國|口圖5-3 (放大1倍即原圖大?。┛s小效果圖,圖5-4所示:圖5-4 (原圖0.5倍)隨意拉動拖動條,得到縮小效果圖,圖 5-6所示:圖5-6當(dāng)縮小時(shí)的value值調(diào)為0時(shí),出現(xiàn)錯誤,說明,在縮小時(shí),value值設(shè)置 為0是不合適的,效果如圖5-7所示。圖5-7更換圖片,改變縮小的變量數(shù)值,得到大小不一的圖片,如圖 5-8所示:圖5-8(4)結(jié)果分析:在放大圖片時(shí),當(dāng)按比例將原圖像放大K倍,如果按照最近鄰域法則需要將 一個(gè)像素值添加
10、在新圖像的kXk的子塊中。顯然,如果放大倍數(shù)太大,按照這 種方法處理會出現(xiàn)馬賽克效應(yīng)。最簡單的比例縮小時(shí)當(dāng)fx=fy=0.5時(shí),即圖像被縮到一半大小,此時(shí)縮小后 圖像中的(0,0)像素對應(yīng)于原圖像中的(0,0)像素;(0,1)像素對應(yīng)于原圖像中的(0,2) 像素;(1,0)像素對應(yīng)于原圖像中的(2,0潞素,以此類推。圖像縮小之后,因?yàn)槌?載的數(shù)據(jù)量小了,所以畫布可相應(yīng)縮小。此時(shí),只需在原圖像基礎(chǔ)上,每行隔一 個(gè)像素取一點(diǎn),每隔一行進(jìn)行操作,即取原圖的偶奇數(shù)行和偶奇數(shù)列構(gòu)成新的圖 像。如果圖像按任意比例縮小則需要計(jì)算選擇的行和列。實(shí)驗(yàn)心得本次課程設(shè)計(jì)使我更深的了解了 MATLAB的程序設(shè)計(jì)及圖像
11、處理的內(nèi)容,復(fù) 習(xí)了有關(guān)于圖像處理方面的知識,同時(shí)也對于MATLAB這一功能強(qiáng)大的軟件的使 用更加的熟練,也學(xué)習(xí)到了很多新的知識,積累了一些經(jīng)驗(yàn),歸結(jié)如下:更全面的認(rèn)識了 MATLAB這個(gè)軟件,并且能夠熟練的使用MATLAB的基本功 能,掌握了 MATLAB的程序設(shè)計(jì)的基本方式方法和步驟。學(xué)習(xí)了圖像的處理的各項(xiàng)基本函數(shù)的使用,特別對MATLAB的幫助功能有了 很深刻的了解,能夠獨(dú)立的完成函數(shù)的編寫及功能的實(shí)現(xiàn),再也不是什么函數(shù)都需要使用網(wǎng)絡(luò)來詢問,學(xué)習(xí)了圖像噪聲的使用,讓我對專業(yè)知識有了更深的了解, 對我以后的學(xué)習(xí)很有方向性。我對圖像幾何變換的原理,包括圖像的平移變換,圖像的旋轉(zhuǎn),圖像的旋轉(zhuǎn)
12、及圖像的放大與縮小等原理都有了更清楚的認(rèn)識, 也明白了它們的實(shí)現(xiàn)機(jī)制。對 于使用MATLAB去實(shí)現(xiàn)數(shù)字圖像的處理也有了更好的認(rèn)識。通過這次的課程設(shè)計(jì),使我意識到所有的知識都是需要用實(shí)踐去幫著理解 的,所謂理論指導(dǎo)實(shí)踐,很好的實(shí)踐能幫助我們更好地去理解知識,對于知識的掌握更加牢靠。同時(shí)在復(fù)習(xí)以前所學(xué)知識的同時(shí)其實(shí)也實(shí)現(xiàn)了溫故知新,對于舊知識有了新的理解。對于工程實(shí)踐,要想實(shí)現(xiàn)預(yù)期的效果,必須明白它實(shí)現(xiàn)的機(jī) 制和相應(yīng)的算法,只有通過相應(yīng)的理論來指導(dǎo),我們才能有所創(chuàng)新,有所突破。附錄:1、參考文獻(xiàn):1賀興華等.MATLAB7.嫡像處理.北京:人民郵電出版社,20062陳杰.MATLABS典.北京:電
13、子工業(yè)出版社,2007.【3】張德豐.MATLA吸值分析與應(yīng)用.北京:國防工業(yè)出版社,2009【4美岡薩雷斯.溫茨著.數(shù)字圖像處理.2版.北京:電子工業(yè)出版社,2002【5】汪曉銀,鄒庭榮.數(shù)學(xué)軟件與數(shù)學(xué)實(shí)驗(yàn).武漢:華中農(nóng)業(yè)大學(xué)教務(wù)處, 20076 Rafael C.Gonzale數(shù)字圖像處理(第三版).電子工業(yè)出版社,2011【7】楊丹,趙海濱,龍哲.MATLAB圖像處理實(shí)例詳解.清華大學(xué)出版社,20132、源代碼:(1)打開圖片tryisLoad=getappdata(handles.figure1,'isLoad');if isLoad=0,=uigetfile(.
14、9;*.*','All files',.'選擇圖像文件','MultiSelect','off);if isequal() | isequal(),return;elsesetappdata(handles.figure1,'',);setappdata(handles.figure1,'',);setappdata(handles.figure1,'isLoad',1);();axes(handles.axes1);I=imread(file);sizeI=size(I);if l
15、ength(sizeI)=3,elseif length(sizeI)=2,I=I;elseerrordlg('Error Happened.','Error');endsetappdata(handles.figure1,'loadImage',I);imshow(I);endelsebtnName=questdlg('您已經(jīng)打開一個(gè)文件,確定打開另一個(gè)?將覆 蓋當(dāng)前的文件?',提示,.'OK','Cancel','Cancel');switch btnName,case '
16、;OK',setappdata(handles.figure1,'isLoad',0);feval(pushbutton1_Callback,handles.pushbutton1,eventdata,handles);case 'Cancel',return;endendcatcherrordlg('You must open a BMP file.','Error');end(1)旋轉(zhuǎn):value=get(handles.slider1,'Value');loadImage=getappdata(han
17、dles.figure1,'loadImage');axes(handles.axes2);I0=imrotate(loadImage,value);imshow(I0);(2)平移:tryx=get(handles.popupmenu3,'Value');y=get(handles.popupmenu4,'Value');loadImage=getappdata(handles.figure1,'loadImage');switch x,case 1,switch y,case 1,se=translate(strel(1),-
18、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(strel(1),50 -100);saveImage=imdilate(loadImage,se);case 5,se=translate(strel(1),100 -100);saveI
19、mage=imdilate(loadImage,se);endcase 2,switch y,case 1,se=translate(strel(1),-50 -50);saveImage=imdilate(loadImage,se);case 2,se=translate(strel(1),0 -50);saveImage=imdilate(loadImage,se);case 3,se=translate(strel(1),50 -50);saveImage=imdilate(loadImage,se);case 4,se=translate(strel(1),100 -50);saveI
20、mage=imdilate(loadImage,se);endcase 3,switch y,case 1,se=translate(strel(1),-100 0);saveImage=imdilate(loadImage,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=im
21、dilate(loadImage,se);case 5,endcase 4,%LoGswitch y,case 1,se=translate(strel(1),-100 50);saveImage=imdilate(loadImage,se);case 2,%verticalse=translate(strel(1),-50 50);saveImage=imdilate(loadImage,se);case 3,%Bothse=translate(strel(1),0 50);saveImage=imdilate(loadImage,se);case 4,%Bothse=translate(s
22、trel(1),50 50);saveImage=imdilate(loadImage,se);case 5,%Bothse=translate(strel(1),100 50);saveImage=imdilate(loadImage,se);endcase 5,%Zerocrossswitch y,case 1,se=translate(strel(1),-100 100);saveImage=imdilate(loadImage,se);case 2,%verticalse=translate(strel(1),-50 100);saveImage=imdilate(loadImage,se);
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷廠合同安全員招募
- 超浦寺課課程設(shè)計(jì)
- 科研設(shè)備倉房租賃合同
- 汽車設(shè)計(jì)服務(wù)費(fèi)用合同
- 博物館地下車位租賃合同
- 保險(xiǎn)產(chǎn)品設(shè)計(jì)律師合同范本
- 2024年城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目建材供應(yīng)合同
- 2024建材材料供貨合同模板范例
- 連桿體工藝課程設(shè)計(jì)
- 無人機(jī)行業(yè)的風(fēng)險(xiǎn)與機(jī)遇
- 第一節(jié)細(xì)菌和真菌的分布ppt
- 海尼曼G1內(nèi)容梳理(2)
- 餐飲MBO目標(biāo)管理課件
- 《2021國標(biāo)結(jié)構(gòu)專業(yè)圖集資料》15G323-2 鋼筋混凝土吊車梁(A4、A5級)(有水印)
- 設(shè)備管理系統(tǒng)概要設(shè)計(jì)說明書.doc
- 青霉素V鉀提取工藝與研究進(jìn)展
- 腸內(nèi)營養(yǎng)支持健康教育
- 新版atstudy系統(tǒng)測試計(jì)劃
- 礦山改造電氣節(jié)能降耗分析
- 村級財(cái)務(wù)清理報(bào)告
- 石油加工基礎(chǔ)知識
評論
0/150
提交評論