圖像幾何變換GUI設計_第1頁
圖像幾何變換GUI設計_第2頁
圖像幾何變換GUI設計_第3頁
圖像幾何變換GUI設計_第4頁
圖像幾何變換GUI設計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學 號11780122天津城建大學 信息處理系統綜合設計 設計說明書圖像幾何變換軟件的GUI設計起止日期: 2014 年 12 月 29 日 至 2015 年 1 月 23 日學生姓名XXX班級成績指導教師(簽字) 計算機與信息工程學院2015年 1月 23日天津城建大學課程設計任務書2014 2015學年第一學期 計算機與信息工程 學院 電子信息科學與技術 專業 11電信科1班 班級課程設計名稱: 信息處理系統綜合設計 設計題目: 圖像幾何變換軟件的GUI設計 完成期限:自 2014 年 12 月 29 日至 2015 年 1 月 23 日共 4 周設計依據、要求及主要內容(可另加附頁):1

2、. 利用Matlab軟件進行GUI設計,實現圖像幾何變換軟件的設計2. 集成不同參數的不同圖像幾何變換方法(至少4種以上平移/旋轉/縮放/鏡像/錯切),實現不同幾何變換效果的對比指導教師(簽字): 系主任(簽字): 批準日期: 2014 年12月 18 日目錄第1章 圖像幾何變換設計原理11.1引言11.2 程序設計框圖11.3原理介紹21.3.1 平移原理21.3.2 縮放原理21.3.3 旋轉原理21.3.4 鏡像原理31.3.5 錯切原理4第2章 圖像幾何設計實現52.1 MATLAB GUI設計界面介紹52.1.1 MATLAB GUI介紹5本次研究中所使用的GUI設計界面本52.2

3、圖像幾何變換核心程序簡介6圖像平移6圖像縮放6圖像旋轉7圖像鏡像7圖像錯切72.3 界面之間的轉換8第3章 設計的結果與分析93.1圖像平移效果及分析93.2圖像縮放效果及分析93.3圖像旋轉效果及分析103.4圖像鏡像效果及分析103.5圖像錯切效果及分析11第4章 總結12參考文獻13附錄14第1章 圖像幾何變換設計原理1.1引言在現實生活中,幾何變換對于圖像編輯來說具有很大的作用,例如對采集的的照片位置,大小不滿意時,都可以借助圖像的幾何變換來實現改變圖像的空間位置的操作1。幾何變換又稱空間變換,是將原圖像的位置坐標映射到新坐標上,但并不改變其圖像的像素值,僅僅只是對圖像的像素重排,其中

4、由于坐標變換后,某些位置上出現了空洞點,需要通過插值處理,使得圖像完整2。本次設計使用MATLAB GUI為載體進行軟件設計,程序中所采用的插值均為最近鄰插值,所涉及到的圖像幾何變換有平移、縮放、旋轉、鏡像和錯切。1.2 程序設計框圖開始主界面設計平移縮放旋轉鏡像錯切實現相應地各種操作結束圖1 程序設計框圖1.3原理介紹1.3.1 平移原理將圖像中所有的點都按照指定的平移量水平、垂直移動。設(x0, y0)是原圖像上的一點,圖像水平平移量為tx,垂直平移量為ty,則平移后點(x0, y0)的坐標變為(x1, y1)。(x0, y0)與(x1, y1)之間的關系為:以矩陣的形式表示為:它的逆變換

5、:平移后的圖像中每個像素的顏色是由原圖像中的對應點顏色確定3。1.3.2 縮放原理假設x軸放大因子為c, y軸放大因子為d,縮放的變換矩陣為4:1.3.3 旋轉原理通常是以圖像的中心為圓心旋轉,按順時針方向旋轉。旋轉前:旋轉a角度后:以矩陣的形式表示為: rrab(x0, y0)(x1, y1)yxO圖2 旋轉示意圖式中,坐標系是以圖像的中心為原點,向右為x軸正方向,向上為y軸正方向。它和以圖像左上角為原點,向右為x軸正方向,向下為y軸正方向的坐標系之間的轉換關系如圖3所示5。 (x, y)yxOxyO圖3 兩種坐標系間的轉換關系圖設圖像的寬度為w,高度為h,容易得到:逆變換為:有了以上公式,

6、可以把變換分成三步:第一步,將坐標系變成;第二步,將該點順時針旋轉a角度;第三步,將坐標系變回。這樣,我們就得到了變換矩陣,它是上面三個矩陣的級聯。那么對于新圖像中的每一點,就可以根據對應原圖中的點,得到它的灰度。如果超出原圖范圍,則填成白色。要注意的是,由于有浮點運算,計算出來點的坐標可能不是整數,采用取整處理或插值來處理6。1.3.4 鏡像原理圖像的鏡像變換是以圖象垂直中軸線或水平中軸線交換圖像的變換,分為垂直鏡像變換和水平鏡像變換,兩者的矩陣形式分別為7: 1.3.5 錯切原理變換前和變換后y坐標不變,而x坐標根據y坐標值作線性變換,變換前后點的坐標之間的關系為:式中為變換系數。若,沿X

7、正方向錯切;若,則沿著X負方向錯切。所以,錯切矩陣為:在X、Y平面上不考慮Z軸方向8。第2章 圖像幾何設計實現2.1 MATLAB GUI設計界面介紹2.1.1 MATLAB GUI介紹在Matlab中,圖形用戶界面(graphical user interface,GUI)是Matlab中一個專用于GUI程序設計的向導設計器,而GUI是由各種圖形對象,如圖形窗口、圖軸、菜單、按鈕、文本框等構建的用戶界面,是人機交互的有效工具和方法。通過GUIDE可以很方便地設計出各種符合要求的圖形用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產生某種動作或變化,比如實現計算、繪

8、圖等。GUI設計既能以基本的Matlab程序設計為主,也能以鼠標為主,利用GUIDE工具進行設計,也可綜合以上兩種方法進行設計。GUIDE主要是一個界面設計工具集。Matlab將所有GUl支持的用戶控件都集成在這個環境中并提供界面外觀、屬性和行為相應方式的設置方法。GUIDE將用戶保存設計好的圖形用戶界面保存在一個FIG資源文件中,同時自動生成包含圖形用戶界面初始化和組件界面布局控制代碼的M文件,這個M文件為實現回調函數的編寫提供了一個參考框架。FIG文件是一個二進制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創建圖形窗口時保存的屬性。該文件最主要的功能是對象句柄的保存。M文件包含G

9、UI設計、控制函數及控件的回調函數,主要用來控制GUI展開時的各種特征。該文件基本上可以分為GUI初始化和回調函數2個部分,控件的回調函數可根據用戶與GUI的具體交互行為分別調用9。2.1.2本次研究中所使用的GUI設計界面本下面我們以圖4為例,說明界面設計的功能10。圖4 GUI設計界面實例通過上圖,我們看到本次設計基本上采用靜態文本框、按鈕、坐標軸和復選按鈕。其功能介紹如下:靜態文本框:輸入文字,將標注的信息顯示出來。按鈕與復選按鈕:通過點擊,完成一次命令,可以使載入圖像,也可以是返回主界面或者完成命令。坐標軸:也是可視化窗口,將原圖和所變換的圖像通過兩個坐標軸顯示出來,以供比較。2.2

10、圖像幾何變換核心程序簡介2.2.1圖像平移核心程序:se=translate(strel(1),40 -40);b=imdilate(dai,se);功能:使用translate函數將圖像進行搬移,其中第一個函數參數表示只對圖像進行搬移而不改變圖像本身,第二個參數則是平移的坐標,然后再通過imdilate函數將圖像展現出來。2.2.2圖像縮放核心程序(方法一): g=imresize(dai,1); / 此函數為放大一倍,若將1改為0.5,則表示縮小一倍axes(handles.axes2);set(handles.axes2, Units, pixels);x,y=size(g);set(g

11、ca,position,350 237 y x)功能:imresize函數作為圖像縮放的主要函數,函數第一個參數為圖像文件名,第二個參數為縮放倍數??s放完成后設置坐標軸2。若不設置坐標軸,那么圖像的大小將自動適應于新坐標,本程序為了比較明顯的看出圖像的縮放,則設置了坐標,用size函數測量了圖像的寬和高,然后使得坐標的寬和高與圖像相適應,而其他兩個位置變量則固定不變。這樣顯示出來的圖像就有了可比較的特點。核心程序(方法二):prompt=(縮放度數);p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imresize(dai,p1,neare

12、st);set(handles.axes2, Units, pixels);x,y=size(f);set(gca,position,350 277 y x)功能: Inputdlg函數是用對話框的格式輸入縮放的參數,prompt是對話框的文字提示,提示出要輸入的參數是什么,input指的是輸入參數,1是指對話框的行數,defans是默認的初始值。同時用字符轉換成數字來改變縮放參數,因為輸入的只是一個字符型的參數要將其轉換成數字才能應用,其余同方法一,坐標也要相應的適應新的圖像。2.2.3圖像旋轉核心程序(方法一):dai=imrotate(dai,45);/第二個參數則是旋轉的度數功能:旋轉

13、的函數通過imrotate函數就能完成,第一個變量為圖像名稱,第二個變量則是旋轉的度數。核心程序(方法二):prompt=(旋轉角度);defans=0;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imrotate(dai,p1,nearest);功能: Inputdlg函數是用對話框的格式輸入縮放的參數,prompt是對話框的文字提示,提示出要輸入的參數是什么,input指的是輸入參數,1是指對話框的行數,defans是默認的初始值。同時用字符轉換成數字來改變縮放參數,因為輸入的只是一個字符型的參數要將其轉換成數字才能應用,其余同方法

14、一。此方法默認是最近鄰方法,同時也可用雙線性和雙立方插值的方式對次圖像進行處理。 2.2.4圖像鏡像核心程序: k=fliplr(dai);k=flipud(dai);功能: 上述函數分別為水平鏡像和垂直鏡像,水平鏡像是以y軸為對稱軸,而垂直鏡像則以x為對稱軸。在函數中直接寫入圖像名稱即可。2.2.5圖像錯切核心程序: s=maketform(affine,1 0.5 0;0 1 0;0 0 1);j=imtransform(dai,s);功能: 通過使用maketform函數構造矩陣,affine表示為仿射變換,后面的參數表示的是位置矩陣,再由imtransformn函數進行數據傳遞轉換,達

15、到錯切的效果。2.3 界面之間的轉換1、界面之間的轉換靠回調函數來實現:h=gcf; /返回當前句柄值main; /主函數名close(h);2、文件輸入:filename,pathname=. uigetfile(*.bmp;*.jpg;*.gif,選擇圖片); /創建文件對話框str=pathname,filename;3、退出軟件:Close all;第3章 設計的結果與分析3.1圖像平移效果及分析 圖5 平移左下位置效果圖結果分析: 平移的效果就是以圖像中心為原點坐標,輸入兩個參數,分別為x,y。由二維平面的坐標值改變圖像的原始位置。本實驗采用的是定向的編寫程序,通過指令來完成平移后的

16、圖像顯示。也可以采用靈活的方式,使用對話框來輸入需要的參數,圖片的坐標是固定的,所以產生的效果就是移出去的部分不顯示,空缺的位置為黑色,體現出需要的效果,同時還應該注意要使用灰度圖像,若非灰度圖像,則程序不能別識,應該使用a=rgb2gary(文件名)類似的函數來轉換彩色圖像為灰度圖像,這樣才能更好地對圖像進行平移變換。3.2圖像縮放效果及分析 圖6 圖像縮小效果圖結果分析: 縮放變換的效果是使圖片的大小發生改變,本實驗采用兩種方法來實現,一種是固定參數的方法,其優點是簡便操作,直接對命令按鈕點擊既能出現效果,另一種是通過對話框的形式輸入參數,這種方法的好處是靈活性比較高。圖像的縮放一種是按比

17、例進行的,一種是非比例縮放的,本次實驗使用的是比例縮放。在放大縮小的過程中,圖像的像素也會隨之放大縮小。這就使得圖像的像素位置會發生改變,有可能會涉及到非整數點,那么就會遇到一個問題,圖像會出現空洞,這些空洞需要被填補以完善圖像的整體,其中使用的方法有插值處理。插值處理又分為最近鄰插值,雙線性插值和雙立方插值。本次實驗默認使用最近鄰插值,但其實最近鄰插值的效果會隨著圖像的放大而出現塊狀效應,也就是俗稱的馬賽克。而是用雙線性和雙立方插值的方法就會使得這種效應減弱,但是后兩種方法的過程在計算方面會很繁瑣。在不影響圖像質量的前提下,采用最近鄰的方法處理圖像可以得到所需的效果。3.3圖像旋轉效果及分析

18、 圖7 圖像旋轉45效果圖結果分析: 旋轉角度的不同使得圖像有不同的效果,但是在類似45的角度中,圖像的坐標會發生改變,為了適應這種改變,可以通過坐標隨著變換的改變而改變。本實驗也采用兩種方法實現。用內置函數就可以完成效果。3.4圖像鏡像效果及分析 圖8 圖像水平鏡像效果圖結果分析: 鏡像分為水平鏡像和垂直鏡像,鏡像的判斷是根據以什么作為對稱軸,以x為對稱的則是垂直鏡像,以y軸為對稱的則水平鏡像。鏡像的函數也可用內置函數來實現。3.5圖像錯切效果及分析 圖9 圖像垂直錯切效果圖結果分析: 圖像錯切,是一種仿射變換。類似于投影。我們知道直接投影就是垂直地去看圖像的影子,而錯切則是在水平和豎直方向

19、分別以一定的角度來看投影,這樣就出現圖像斜著的感覺。圖像錯切的實現是通過一個錯切矩陣來實現的,改變一定的參數,就會使得錯切的角度有很大的變化。第4章 總結通過這次綜合課設,我學到了數字圖像處理的幾何變換方面的知識。通過自己制作MATLAB 圖像幾何變換軟件,熟悉了設計界面,同時也了解到圖像幾何變換的原理。在制作軟件中,通過查找資料,再到學習其中的重點知識,最后學以致用,將別人的知識加以改進作為自己的知識輸出,在這個過程中我體會到了學習的樂趣。同時也借這次機會鍛煉了自己編程的能力,為了畢業設計的學習打下良好的基礎。課設中,我還遇到了一些問題,剛開始做縮放的時候總是把坐標軸的更改弄錯,經過查書和網

20、上搜索,最終將結果做出來了,我覺得至少這一點是我以前沒有做好的一部分,還有就是在做平移的時候總是想不出用什么函數來表示,通過認真反復看書和思考,我最后也攻克難題,實現了所有的功能。通過這次可是也使我對數字圖像處理這門課程有了更深的了解,我從中悟到只有踏實的去一步步地做才能解決矛盾,困難,但是只是一味的想象困難是沒有任何幫助的。在這次綜合設計中我受益匪淺。參考文獻1 章毓晉.圖像工程上冊圖像處理和分析M.北京:清華大學出版社,1999.32 章毓晉.圖像工程下冊圖像理解與計算機視覺M.北京:清華大學出版社,2000.83 張兆禮,趙春暉,梅曉丹.現代圖像處理技術M.北京:人民郵電出版社,2001

21、.1l4 陳桂明,張明照,戚紅雨.應用MATLAB語言處理數字信號與數字圖像M.北京:科學出版社,2000.15 朱振武.例談幾何變換的應用J. 安慶師范學院學報(自然科學版). 2009(03) 6 謝荷芳.二維圖形的幾種幾何變換J. 中南民族學院學報(自然科學版).1998(03) 7 王昕婭,侯萌萌.平面圖形的幾何變換J. 大學數學. 2003(05) 8 劉越.img圖像的讀取及其幾何變換處理J. 佳木斯大學學報(自然科學版). 2010(04) 9 杜廷娜.圖像空間變換及MATLAB實現J. 鞍山科技大學學報. 2007(04) 10 李迎春,曾巒,丁向麗.圖像的幾何運算方法J. 指

22、揮技術學院學報. 2000(01) 附錄1、平移程序:filename,pathname=. uigetfile(*.bmp;*jpg;*.gif,圖像選擇);str=pathname,filename;global image;global dai;image=imread(str);dai=image;axes(handles.axes1);imshow(image);axes(handles.axes2);imshow(image);set(handles.radiobutton1,value,1);set(handles.radiobutton2,value,0);set(handle

23、s.radiobutton3,value,0);set(handles.radiobutton4,value,0);set(handles.radiobutton5,value,0);global dai;se=translate(strel(1),40 -40);b=imdilate(dai,se);axes(handles.axes2);imshow(b);h=gcf;main;close(h);以下程序返回與打開文件程序相同,只加入主要程序(選項程序與主程序相似):2、縮放程序:set(handles.radiobutton1,value,1);set(handles.radiobutt

24、on2,value,0);set(handles.radiobutton3,value,0);global dai;g=imresize(dai,1);axes(handles.axes2);set(handles.axes2, Units, pixels);x,y=size(g);set(gca,position,350 237 y x)imshow(g);方法二:global dai;axes(handles.axes2);imshow(dai);I=getimage;prompt=(縮放度數);defans=0;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imresize(dai,p1,nearest);set(handles.axes2, Units, p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論