




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、沈陽理工大學數字圖像處理課程設計摘 要數字圖像幾何變換是計算機圖像處理領域中的一個重要組成部分,也是值得探討的一個重要課題在圖像幾何變換中主要包括圖像的縮放、圖像的旋轉、圖像的移動、圖像的剪取等內容。文章主要探討了數字圖像的幾何變換(包括圖像的平移、圖像的裁剪、圖像的縮放、圖像的旋轉以及扭曲變換和鏡像變換)理論,并在此基礎上以matlab為工具,以最近鄰插法、雙線性插值法和雙三次插值法三種常用數字圖像差值算法為基礎,實現了數字圖像的一系列幾何變換。關鍵詞:圖像幾何變換;縮放;旋轉;扭曲變換;鏡像變換目 錄1 引言11.1 課程設計的目的11.2 課程設計的任務11.3 課程設計的要求與內容22
2、 系統總體設計32.1 數字圖像幾何變換及原理32.2 設計方案73 系統設計與實現83.1 設計內容83.2 系統模塊流程圖83.2.1 平移和裁剪變換83.2.2 扭曲變換93.2.3 鏡像變換10 3.2.4 縮放和旋轉變換103.3 matlab程序實現代碼113.3.1 平移和裁剪變換113.3.2 扭曲變換113.3.3 鏡像變換123.3.4 縮放和旋轉變換124 系統仿真與結果分析144.1 系統仿真144.2 結果分析205 結論226 參考文獻2311 引言近幾年來,由于大規模集成電路技術和計算機技術的迅猛發展、離散數學理論的創立和完善,數字圖像處理技術正逐漸成為其他科學技
3、術領域中不可缺少的一項重要工具。數字圖像技術也從空間探索到微觀研究、從軍事領域到農業生產、從科學教育到娛樂游戲等越來越多的領域得到廣泛應用。無形之中成為了現代不可或缺的處理技術。通過課程設計實現對其的認知度以及更深入的學習和運用它。1.1 課程設計的目的數字圖像處理課程設計作為獨立的教學環節,是通信技術及相關專業的集中實踐環節之一,是學習完數字圖像處理課程后,進行的一次綜合練習。數字圖像處理課程設計過程中,通過查閱資料、總體設計、模塊設計、程序設計、集成調試等環節,完成一個基于matlab編程語言,涉及多種典型應用,并具有綜合功能的數字圖像處理系統設計。使學生能夠將課堂上學到的理論知識與實踐應
4、用結合起來,對數字圖像處理基礎理論、程序邏輯分析、算法設計等方面的知識進一步加深認識,同時在軟件編程、調試、工程合作開發等方面得到較全的鍛煉和提高。使學生增進對數字圖像處理技術的感性認識,加深對相關理論的理解,牢固掌握數字圖像處理的重要應用,如對比度擴展、直方圖處理、二維傅里葉變換、濾波增強、圖像分割、壓縮編碼等等。通過實際設計和開發促進學生了解和掌握數字圖像處理應用系統的設計過程、方法及實現,提高學生在數字圖像處理應用方面的實踐技能和科學作風,培育學生綜合運用理論知識解決實際問題的能力。1.2 課程設計的任務利用matlab軟件對圖像進行不同的效果處理,查閱相關資料并自主調試相關的程序,反復
5、調試并達到數字圖像的比例縮放、旋轉、剪取、鏡像、扭曲、平移等一系列幾何變換要求的圖像效果,使其達到簡單美觀及實用的效果,能過正常演示并能實現其圖像處理的要求,最后完成實驗設計的相關報告,總結實驗心得體會。1.3 課程設計的要求與內容課程設計應以學生認知為主體,充分調動學生的積極性和能動性,重視學生自學能力的培養。根據課程設計具體課題安排時間,確定課題的設計、編程和調試內容,開展課程設計活動,按時完成每部分工作。課程設計集中在實驗室進行。在課程設計過程中,堅持獨立完成,實現課題規定的各項要求,并寫出設計報告。具體要求如下:使用matlab編程環境進行程序設計;每人自主調研、完成總體設計、劃分各模
6、塊功能,嚴禁同學之間相互抄襲;課程設計作品及報告必須在規定的時間內完成并提交;提交的數字圖像處理系統軟件程序必須調試通過,能夠正常運行演示,至少達到課題基本要求;提交的設計報告必須按規定格式編寫。設計一個具有幾何變換功能的數字圖像處理系統。具體要求如下:(1)實現圖像的平移和裁剪;(2)實現圖像的扭曲變換;(3)實現圖像的水平鏡像、垂直鏡像及對角鏡像變換;(4)實現圖像的放大、縮小和旋轉,放大采用不少于兩種灰度插值方法分別進行處理;2 系統總體設計2.1 數字圖像幾何變換及原理圖像的幾何變換不改變圖像的像素值,而是改變像素所在的幾何位置。從變換的性質分,圖像的幾何變換有圖像的位置變換(平移、鏡
7、像、旋轉)、圖像的形狀變換(放大、縮小、錯切)等基本變換以及圖像的復合變換等。其中使用最頻繁的是圖像的縮放和旋轉,不論照片、圖畫、書報,還是醫學x光和衛星遙感圖像都會用到這兩項技術。圖像比例縮放是指將給定的圖像在軸方向按比例縮放倍,在軸按比例縮放倍,從而獲得一幅新的圖像。如果,即在軸方向和軸方向縮放的比率相同,稱這樣的比例縮放為圖像的全比例縮放。如果,圖像的比例縮放會改變原始圖象的像素間的相對位置,產生幾何畸變。設原圖像中的點比例縮放后,在新圖像中的對應點為,則比例縮放前后兩點、之間的關系用矩陣形式可以表示為 = (2.1) = 其逆運算為 (2.2)即 (2.3) 比例縮放所產生的圖像中的像
8、素可能在原圖像中找不到相應得像素點,這樣就必須進行插值處理。有關插值的內容在后面我們會討論。下面首先討論圖像的比例縮小。最簡單的比例縮小時當時,圖像被縮到一半大小,此時縮小后圖像中的(0,0)像素對應于原圖像中的(0,0)像素;(0,1)像素對應于原圖像中的(0,2)像素;(1,0)像素對應于原圖像中的(2,0)像素,以此類推。圖像縮小之后,因為承載的數據量小了,所以畫布可相應縮小。此時,只需在原圖像基礎上,每行隔一個像素取一點,每隔一行進行操作,即取原圖的偶(奇)數行和偶(奇)數列構成新的圖像。如果圖像按任意比例縮小,則需要計算選擇的行和列。如果大小的原圖像縮小為大小的新圖像時,則 (2.4
9、)其中,。由此公式可以構造出新圖像。當時,圖像不按比例縮小,這種操作因為在方向和方向的縮小比例不同,一定會帶來圖像的幾何畸變。圖像不按比例縮小的方法是:如果大小的舊圖縮小為大小的新圖像時,則 (2.5)其中,由此公式可以構造出新圖像。圖像的縮小操作中,是在現有的信息里如何挑選所需要的有用信息。而在圖像的放大操作中,則需要對尺寸放大后所多出來的空格填入適當的像素值,這是信息的估計問題,所以較圖像的縮小要難一些。當時,圖像被按全比例放大二倍,放大后圖像中的(0,0)像素對應于原圖中的(0,0)像素;(0,1)像素對應于原圖中的(0,0.5)像素,該像素不存在,可以近似為(0,0)也可以近似為(0,
10、1);(0,2)像素對應于原圖像中的(0,1)像素;(1,0)像素對應于原圖中的(0.5,0),它的像素值近似于(0,0)或(1,0)像素;(2,0)像素對應于原圖中的(1,0)像素,依此類推。其實這是將原圖像每行中的像素重復取值一遍,然后每行重復一次。按比例將原圖像放大k倍時,如果按照最近鄰域法則需要將一個像素值添在新圖像的的子塊中。顯然,如果放大倍數太大,按照這種方法處理會出現馬賽克效應。當時,圖像在方向和方向不按比例放大,此時這種操作由于方向和方向的放大倍數不同,一定會帶來圖像的幾何畸變。放大的方法是將原圖像的一個像素添到新圖像的一個的子塊中去。為了提高幾何變換后的圖像質量,常采用線性插
11、值法。該方法的原理是,當求出的分數地址與像素點不一致時,求出周圍四個像素點的距離比,根據該比率,由四個鄰域的像素灰度值進行線性插值。一般圖像的旋轉是以圖像的中心為原點,將圖像上的所有像素都旋轉一個相同的角度。圖像的旋轉變換時圖像的位置變換,但旋轉后,圖像的大小一般會改變。在圖像旋轉變換中既可以把轉出顯示區域的圖像截去,也可以擴大圖像范圍以顯示所有的圖像。同樣,圖像的旋轉變換也可以用矩陣變換來表示。設點逆時針旋轉角后的對應點為。那么,旋轉前后點、的坐標分別是: (2.6) (2.7)寫成矩陣表達式為 = (2.8)其逆運算為 = (2.9)利用上述方法進行圖像旋轉時需要注意如下兩點:(1)圖像旋
12、轉之前,為了避免信息的丟失,一定要有坐標平移。(2)圖像旋轉之后,會出現許多空洞點。對這些空洞點必須進行填充處理,否則畫面效果不好,一般也稱這種操作為插值處理。以上所討論的旋轉是繞坐標軸原點(0,0)進行的。如果圖像旋轉是繞一個指定點(a,b)旋轉,則先要將坐標系平移到該點,再進行旋轉,然后將旋轉后的圖象平移回原來的坐標原點,這實際上是圖像的復合變換。如將一幅圖像繞點(a,b)逆時針旋轉度,首先將原點平移到(a,b),即a= (2.10)然后旋轉b= (2.11)然后再平移回來c= (2.12)綜上所述,變換矩陣為。有些時候我們為了減少圖像所占存儲空間,舍棄圖像的無用部分,只保留感興趣的部分,
13、這就需要用到圖像的剪取。在本文中,我們只討論對原圖像剪取一個形狀為矩形的部分的操作。對一幅圖像進行剪取操作前,首先初始化該圖像,這樣圖像上每個點,就對應了一個二維坐標,即。首先,我們先取二維坐標系上的一點,這點就作為要截取的矩形的左上角的起始坐標。然后我們定義一兩個常量、,其中,代表矩形的長素,代表矩形的寬度,然后舍棄掉在矩形外的點,這樣,在整個坐標系上,由、和四個點所圍成的矩形部分便被保留下來。2.2 設計方案綜合運用matlab實現圖像處理的程序設計,根據需求進行程序的功能分析和界面設計,并實現對圖像的平移,裁剪,扭曲,鏡像,縮放,旋轉等變換,按照要求增加變換的效果與其他的幾何變換。變換的
14、操作直接調用matlab中自帶的函數,部分模塊采用用戶提示對話框,用來提示用戶輸入參數,以實現模塊的動態操作,另外,需要同一模塊需要將不同結果進行比對。整個系統系統框圖如下:數字圖像處理幾何變換系統 平移和裁剪 縮放變換縮放變換 扭曲變換 旋轉變換 鏡像變換 圖2.1 系統框圖3 系統設計與實現3.1 設計內容 圖像的幾何變換:平移,裁剪,扭曲,鏡像,縮放,旋轉以及提高內容。1)平移和裁剪:平移是日常生活中最普遍的運動方式,而圖像的平移是幾何變換這中最簡單的變換之一。菜單中使用 translate函數對圖像進行平移,通過改變程序中的參數可以控制平移的方式,視需求而定。在實際應用或科研領域,很多
15、時候要對圖像進行裁剪操作。圖像裁剪就是在原圖像或者大圖中裁剪出圖像塊來,這個圖像一般是多邊形形狀的。圖像裁剪是幾何處理中的一種基本操作。利用imcrop函數調用可以是現期裁剪功能,格式為imcrop(i,rect);其中rect是一個四元向量xmin ymin width height,分別表示矩形的左上角的坐標,寬度和高度;2)扭曲變換:matlab使用imtransform函數來實現圖像空間變換,imtransform函數的調用格式為imtransform(i,t),其中i是要變換的圖像,t是maketform函數產生的變換結果。maketform函數就是利用給定的參量建立變換結構,然后把
16、該變換結構賦給結構體變換,根據得到的結構體變量t,調用imtransform函數進行變換;3)鏡像變換:實現水平,垂直,對角鏡像處理,雙精度取點后調用函數實現。4) 縮放與旋轉變換:利用nearest bilinear bicubic三個函數實現圖片的三種縮放與旋轉處理。利用imresize和imrotate兩個函數實現縮放及旋轉功能 。3.2 系統模塊流程圖 3.2.1 平移和裁剪變換開始獲取圖片路徑,打開所需圖片i對i進行平移或裁剪變換translate(strel(2),p),imdilate(i,se)or imcrop(i,)處理完成,得到新圖結束 n y 圖3.1 平移和裁剪流程圖
17、3.2.2 扭曲變換開始獲取圖片路徑,打開所需圖片i對i進行扭曲變換maketform(affine,)imtransform(i,t1)處理完成,得到新圖結束 n圖3.2 扭曲變換流程圖 3.2.3 鏡像變換開始獲取圖片路徑,打開所需圖片i對i進行鏡像變換,double(i)a2(1:h(1),1:h(2),1:h(3)=a1(1:h(1),h(2):-1:1,1:h(3);a3(1:h(1),1:h(2),1:h(3)=a1(h(1):-1:1,1:h(2),1:h(3); a4(1:h(1),1:h(2),1:h(3)=a1(h(1):-1:1,h(2):-1:1,1:h(3);處理完成
18、,得到新圖結束 n圖3.3 鏡像變換流程圖開始獲取圖片路徑,打開所需圖片i對i進行縮放或旋轉變換imresize(i,a,nearest)orimrotate (i,a,nearest)處理完成,得到新圖結束imresize(i,a,bilinear)orimrotate (i,a,bilinear)imresize(i,a,bicubic)orimrotate(i,a,bicubic) 3.2.4 縮放和旋轉變換 n y圖3.4 縮放與旋轉流程圖3.3 matlab程序實現代碼 3.3.1 平移和裁剪變換 1)平移: i=imread(d:1.jpg);%讀取圖片信息prompt=輸入參數:
19、;defans=2;%獲取圖像信息p=inputdlg(prompt,input,1,defans); %創建數據輸入窗口p1=str2num(p1);se = translate(strel(2), p1);%對圖像進行平移j = imdilate(i,se);subplot(1,2,1),imshow(i),title(原圖)subplot(1,2,2),imshow(j),title(平移后圖像)%顯示操作結果 2)裁剪: i=imread(d:1.jpg); %讀取圖片信息 %從坐標(0,0)開始,從原圖上剪取一個長度為200,寬度為200的矩形部分j=imcrop(i,0 0 200
20、 200);figure,subplot(1,2,1),imshow(i),title(原圖)subplot(1,2,2),imshow(j),title(截取后圖像) %以坐標(50,50)開始,剪取長度為200,寬度為200的矩形部分,并與以坐標(0,0)開始,剪取同樣大小的圖像相比較k=imcrop(i,50 50 200 200);figure,subplot(1,2,1),imshow(j),title(以坐標(0,0)開始)subplot(1,2,2),imshow(k),title(以坐標(50,50)開始) 3.3.2 扭曲變換 i=imread(d:1.jpg) %扭曲一t1
21、=maketform(affine,0.5 0 0;0.5 1 0;0 0 1);i1=imtransform(i,t1);%二維變換%扭曲二t2=maketform(affine,0.5 1;0 1;1 0,0.2 0.6;0.5 0.3;0.5 0.9);i2=imtransform(i,t2); %二維變換%原圖,扭曲一,扭曲二顯示比較figure,subplot(1,3,1),imshow(i),title(原圖)subplot(1,3,2),imshow(i1),title(扭曲1)subplot(1,3,3),imshow(i2),title(扭曲2) 3.3.3 鏡像變換 i=i
22、mread(d:1.jpg);figure,subplot(2,2,1),imshow(i),title(原圖)a1=double(i); %定義為雙精度型h=size(a1); %定義尺寸%水平鏡像a2(1:h(1),1:h(2),1:h(3)=a1(1:h(1),h(2):-1:1,1:h(3);%顯示結果subplot(2,2,2),imshow(uint8(a2),title(水平鏡像); %垂直鏡像a3(1:h(1),1:h(2),1:h(3)=a1(h(1):-1:1,1:h(2),1:h(3); subplot(2,2,3),imshow(uint8(a3),title(垂直鏡像
23、); %對角鏡像a4(1:h(1),1:h(2),1:h(3)=a1(h(1):-1:1,h(2):-1:1,1:h(3);subplot(2,2,4),imshow(uint8(a4),title(對角鏡像); 3.3.4 縮放和旋轉變換 1)縮放: %用最近鄰插法將圖像按原比例放大1.5倍,語句如下:i=imread(d:1.jpg);a=1.5j=imresize(i,a);imshow(i),title(原圖)figure,imshow(j),title(近鄰插法放大1.5倍)%用雙線性插值法和雙三次插值法將圖像按原比例放大1.5倍k=imresize(i,a, bilinear);l
24、=imresize(i,a, bicubic);figure,imshow(k),title(雙線性插值法放大1.5倍) figure,imshow(l),title(雙三次插值法放大1.5倍) %用雙線性插值法將圖像按原比例縮小為0.1倍m=imresize(i,0.1,bilinear);figure,imshow(m),title(雙線性插值法放大0.1倍) 2)旋轉: %用雙線性插值法將原圖像旋轉45度,不裁去超出原圖的部分 i=imread(d:1.jpg);a=45j=imrotate(i,a,bilinear);figure,subplot(1,3,1),imshow(i),ti
25、tle(原圖)subplot(1,3,2),imshow(j),title(雙線性插值旋轉45度,不裁)prompt=輸入參數:;%提示對話框defans=2;p=inputdlg(prompt,input,1,defans); %創建數據輸入窗口 p1=str2num(p1);%讀取輸入值 k=imrotate(i,p1,bilinear); subplot(1,3,3),imshow(k),title(自定義度數,不裁去超出部分)%用雙線性插值法將原圖像旋轉45度,裁去超出原圖的部分,并與未裁去超出部分的做比較j=imrotate(i,a,bilinear);% 未裁去超出部分k=imro
26、tate(i,a, bilinear, crop);% 裁去超出原圖的部分figure,subplot(1,2,1),imshow(j),title(雙線性插值法旋轉45度,不裁去超出部分)subplot(1,2,2),imshow(k),title(雙線性插值法旋轉45度,裁去超出部分)4 系統仿真與結果分析4.1 系統仿真平移變換輸入參數:圖4.1 平移變換輸入參數平移變換結果:圖4.2 平移變換結果 裁剪變換結果:圖4.3 裁剪變換結果一圖4.4 裁剪變換結果二 扭曲變換結果:圖4.5 扭曲變換結果 鏡像變換結果:圖4.6 鏡像變換結果縮放變換結果圖4.7 縮放變換結果一圖4.8 縮放變換結果二圖4.9 縮放變換結果三圖4.10 縮放變換結果四圖4.11 縮放變換結果五旋轉變換輸入參數:圖4.12 旋轉變換輸入參數 旋轉變換結果:圖4.13 旋轉變換結果一圖4.14 旋轉變換結果二4.2 結果分析從結果圖可以看出,預期的功能基本實現,并且比較全面,符合設計要求。平移變換中,采用了提示對話框,提示用戶輸入平移參數。以左上角為原點(0,0),輸入參數(150,150),原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人理財的基本策略探討試題及答案
- 如何克服2025年國際金融理財師考試中的焦慮情緒試題及答案
- 銀行市場營銷實踐試題及答案2025年研究
- 三年級英語下冊 Unit 3 Food and Meals Lesson 13 I'm Hungry教學設計 冀教版(三起)
- Unit1FestivalsandCelebrationsReadingandThinking教學設計-高中英語人教版2
- 持續進步的探討2025年國際金融理財師考試試題及答案
- 網絡編輯師常見問題及試題答案
- 感悟理論2025年國際金融理財師考試試題及答案
- 銀行風險控制措施試題及答案
- 2025年國際金融理財師考試課程設置與實際需求的聯系試題及答案
- 2025上海無固定期限勞動合同范本
- 城市道路養護雨季應對措施
- 中職高教版(2023)語文職業模塊-第五單元:走近大國工匠(一)展示國家工程-了解工匠貢獻【課件】
- 2025年湖南懷化市城市管理和綜合執法局局屬事業單位招聘歷年高頻重點提升(共500題)附帶答案詳解
- 福建省能源石化集團有限責任公司招聘筆試沖刺題2024
- 2018NFPA10便攜式滅火器標準
- 光伏低壓并網試驗施工方案
- 中老年常見病及預防路徑
- 道路橋梁工程考試題庫單選題100道及答案解析
- 【MOOC】數據庫原理及應用-西南石油大學 中國大學慕課MOOC答案
- 教職工消防知識培訓
評論
0/150
提交評論