數字圖像處理幾何變換[基礎教學]_第1頁
數字圖像處理幾何變換[基礎教學]_第2頁
數字圖像處理幾何變換[基礎教學]_第3頁
數字圖像處理幾何變換[基礎教學]_第4頁
數字圖像處理幾何變換[基礎教學]_第5頁
已閱讀5頁,還剩82頁未讀 繼續免費閱讀

付費下載

下載本文檔

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

文檔簡介

1、第五章數字圖像處理中的基本運算,1,教學資料,本章主要內容和基本要求,數字圖像的基本代數運算 數字圖像的幾何運算,2,教學資料,5.1 數字圖像處理基本運算的分類 一、圖像處理算法的分類: 單幅圖像單幅圖像 多幅圖像單幅圖像 多幅圖像或單幅圖像數值/符號(圖像分析) 二、根據基本運算分類 點運算 鄰域運算,3,教學資料,5.2 點運算,一、數字圖像的代數運算 1、基本代數運算基礎: 設圖像,其運算可以分為圖像自身的運算和圖像間的運算,從根本上而言可以看成對圖像位置的運算或對該位置上灰度級的運算,4,教學資料,基本代數運算:圖像象素幾何位置不變圖像灰度級的加、減、 乘、 除等運算。 幾何運算:圖

2、像象素位置變換后,經過計算,確定該象素灰度的運算。 例如圖像f和g,5,教學資料,代數運算就是二者點對點的加、減、乘、除運算。對f圖所有灰度加c級灰度可作如下處理:J=f+c,6,教學資料,給整幅圖像增加灰度級會使圖像亮度得到提高整體偏亮,給個別象素加灰度值可以使目標景物突出,例如,7,教學資料,給一幅圖像乘以一個系數,可以改變圖像的灰度級范圍如,原來是20200的灰度級范圍,乘以2則有40400的灰度級范圍,8,教學資料,9,教學資料,10,教學資料,兩幅連續的圖像運算可以有基本運算組合而成如:Kafbg,11,教學資料,二、代數運算的用途,可以對同一場景的多幅圖像求平均,以降低加性零值平穩

3、噪聲。 兩幅圖像疊加達到二次曝光的效果。 減去圖中不需要的加性噪聲。 計算兩幅場景的變化。 檢測輪廓,確定輪廓現,12,教學資料,5.3 圖像的幾何運算,幾何運算也叫幾何變換:包括圖象的平移,旋轉,鏡象變換,轉置,放縮等。 一平移(translation)將圖像沿水平或垂直方向移動位置后,獲得新的圖像的變換方式。例如:圖像坐標中象素點(x0 ,y0)移動到(x1,y1) 位置灰度不變,13,教學資料,14,教學資料,x0 ,y0 )點,經過平移(tx,ty),變為點(x1,y1)兩點之間的關系 為:x1=x0+tx; y1=y0+ty.以矩陣的形式表示為,15,教學資料,我們更關心的是它的逆變

4、換,因為:我們想知道的是平移后的圖象中每個像素的顏色 。x0=x1-tx , y0=y1-ty,16,教學資料,例如:新圖中左上角點的RGB值是多少?很顯然,該點是原圖中的某一點經過平移后得到的,這兩點的顏色肯定是一樣的,所以只要知道了原圖那點的RGB值即可。那么到底新圖中的左上角點對應原圖中的哪一點呢?將左上角點的坐標(0,0)代入公式(2),得到x0=-tx;y0=-ty;所以新圖中的(0,0)點的顏色和原圖中(-tx,-ty)的一樣。設用 表示新圖,用 表示原圖,17,教學資料,例如,18,教學資料,平移后出現的問題,1、如果新圖中有一點(x1,y1),按照公式(2)得到的(x0,y0)

5、不在原圖中該怎么辦? 通常的做法是,把該點的RGB值統一設成(0,0,0)或者(255,255,255)。 2、平移后的圖象是否要放大? 一種做法是不放大,移出的部分被截斷,如下圖所示,圖2為原圖,圖3為移動后的圖。這種處理,文件大小不會改變,19,教學資料,平移前的圖,20,教學資料,平移后的圖像,21,教學資料,還有一種做法是:將圖象放大,使得能夠顯示下所有部分,移動后被放大圖像,22,教學資料,這種處理,文件大小要改變。設原圖的寬和高分別是w1,h1則新圖的寬和高變為w1+|tx|和h1+|ty|,加絕對值符號是因為tx,ty有可能為負,下面給出Translation的源代碼。算法的思想

6、是先將所有區域填成白色,然后找平移后顯示區域的左上角點(x0,y0)和右下角點(x1,y1)。 分幾種情況,23,教學資料,先看x方向(width指圖象的寬度,1.tx-width很顯然,圖象完全移出了屏幕,不用做任何處理2-widthtx0,如圖5所示圖像向左上方移動圖象區域的x范圍從0到width-|tx|,對應原圖的范圍從|tx|到width,24,教學資料,圖5,25,教學資料,30txwidth , 如圖6所示 , 圖像向右下方平移0txwidth,0tyheight的情況圖象區域的x范圍從tx到width,對應原圖的范圍從0到width-tx,圖6,26,教學資料,4txwidth

7、,圖象完全移出了屏幕,不用做任何處理,y方向是對應的(height表示圖象的高度 1ty-height,圖象完全移出了屏幕,不用做任何處理2-heightty0,圖象區域的y范圍從0到height-|ty|,對應原圖的范圍從|ty|到height30tyheight ,圖象區域的y范圍從ty到height,對應原圖的范圍從0到height-ty4tyheight,圖象完全移出了屏幕,不用做任何處理,27,教學資料,這種做法利用了位圖存儲的連續性,即同一行的像素在內存中是相鄰的。利用memcpy函數,從(x0,y0)點開始,一次可以拷貝一整行(寬度為x1-x0),然后將內存指針移到(x0,y0+

8、1)處,拷貝下一行,這樣拷貝(y1-y0)行就完成了全部操作,避免了一個一個像素的計算,提高了效率,28,教學資料,二、旋轉(rotation,圖像旋轉是指圖像以某一點作為軸轉過一定的角度。通常的做法是以圖象的中心為圓心旋轉。 例如:圖7旋轉30度(順時針方向)后的圖象如圖8所示. 可以看出,旋轉后圖象變大了,29,教學資料,圖8旋轉后的圖,30,教學資料,若要使旋轉后保持原尺寸圖像就要進行裁切,有些內容就會損失。我們采用第一種做法,31,教學資料,圖像旋轉變換矩陣,先來看一下,將一個點順時針旋轉a角后的坐標變換公式,如圖10所示,r為該點到原點的距離,在旋轉過程中,r保持不變。b為r與x軸之

9、間的角度,x0=r*cos(b); y0=r*sin(b,圖10,32,教學資料,旋轉前:x0=r*cos(b); y0=r*sin(b) 旋轉a角度后,33,教學資料,以矩陣的形式表示,34,教學資料,其逆矩陣的形式表示為,35,教學資料,上面的公式中,坐標系I是以圖象的中心為原點,向右為x軸正方向,向上為y軸正方向。它和以圖象左上角點,向右為x軸正方向,向下為y軸正方向的坐標系II之間的轉換關系如何呢,兩種坐標系間的轉換關系,36,教學資料,逆變換為,37,教學資料,按照上面的公式,我們可以把變換分成3步: 第一: 將坐標系II變成I ;第二: 將該點順時針旋轉a角;第三: 將坐標系I變回

10、II ,這樣,我們就得到了變換矩陣,是上面三個矩陣的級聯,38,教學資料,上面公式中Wold表示原圖的寬 ,Hold表示原圖 的高,Wnew新圖的寬 ,Hnew新圖的高 ,可以看出,Wnew=max(|x4-x1|,|x3-x2|) ; Hnew=max(|y4-y1|,|y3-y2,39,教學資料,可以根據以上公式 ,求出對應的原圖中的點,得到它的灰度,如果超出原圖范圍則填成白色。要注意的是,由于有浮點運算,計算出來點的坐標可能不是整數,采用取整處理,即找最接近的點,這樣會帶來一些誤差(圖象可能會出現鋸齒),更精確的方法是采用插值 。插值算法后面詳細介紹,40,教學資料,三、鏡象(mirro

11、r,鏡象分水平鏡象和垂直鏡象兩種,原圖,41,教學資料,水平鏡像,42,教學資料,垂直鏡像,43,教學資料,鏡象的變換矩陣很簡單,設原圖寬為w,高為h,變換后,圖的寬和高不變.水平鏡象為,垂直鏡象為,44,教學資料,四、轉置(transpose,轉置是指將x,y坐標對換,原圖,轉制后的圖,45,教學資料,要注意的是,轉置和旋轉90度是有區別的,不信你可以試試,你怎么轉,也轉不出圖15度來。另外,轉置后圖的寬高對換了。轉置的變換矩陣很簡單,46,教學資料,五、縮放(zoom,圖像比例縮放是指將給定的圖像在x軸方向按比例縮放fx倍,沿y軸方向比例縮放fy。當fx fy時,稱為圖像的全比例縮放。當f

12、x fy時,圖像象素間的相對位置會發生畸變。 設原圖像中的點P(x0,,y0),比例縮放后在新的圖像中對應點P(x,y), P(x0,,y0)和 P(x,y)之間的對應關系如圖所示,47,教學資料,48,教學資料,比例縮放前后兩點之間的關系用矩陣表示為,49,教學資料,其逆矩陣為,50,教學資料,插值算法(Interpolation,比例縮放所產生的圖像中有可能在原圖中找不到相應的象素點,我們采用的做法是找與之最臨近的點,我們采用的做法是找與之最臨近的點 。即利用鄰域的像素來估計新的像素值 的處理方法就是插值算法。 常用的插值算法有: 最鄰近插值(Nearest Neighbour Inter

13、polation)。 線形插值(Linear Interpolation)。 雙線形插值(Bilinear Intrepolation) 曲線插值(Curvilinear Interpolation,51,教學資料,1)最臨近插值,圖像變換后找不到相應的象素點時,直接賦值為和它最相近的的象素值的插值算法。 例如:在圖像的縮放中,將一幅66的圖像按比例縮小,fxfy1/2,圖像的長和寬均縮小到原來的一半,成為一幅33的圖像。 原圖像的象素從(0,0)到(5,5),新圖像的象素從(0,0)到(2,2)。如下圖,52,教學資料,66的原圖f,53,教學資料,X0=0/0.5=0 y0 =0 X1=1

14、/0.5= 2 y1=2 X2=2/0.5=4 y2=4 g(0,0)=f(0,0) , g(0,1)=f(0,2) , g(0,2)=f(0,4), g(1,0)=f(2,0), g(1,1)=f(2,2), g(1,2)=f(2,4) g(2,0)=f(4,0), g(2,1)=f(4,2) ,g(2,2)=f4,4,33的新圖g,66的原圖f,54,教學資料,圖像縮小,可以在原圖像中挑選信息,縮小之后的圖與原圖像比較丟失了很多信息。 圖像放大處理中,需要對放大后多出來的空格填入適當的象素值,采用最臨近插值法舉例如下,44的以原圖f,55,教學資料,長和寬各放大2倍,利用公式得到88的新圖

15、像。新圖像中各象素位置 X0=0 Y0=0 X1=0.5 Y1=0.5 X2=1 Y2=1 X31.5 Y3=1.5 X4=2 Y4=2 X5=2.5 Y5=2.5 X6=3 Y6=3 X7=3.5 Y7=3.5,g(0,0)=f(0,0) g(0,1)=f(0,0.5) g(0,2)=f(0,1) g(0,3)=f(0,1.5) g(0,4)=f(0,2) g(0,5)=f(0,2.5) g(0,6)=f(0,3) g(0,7)=f(0,3.5) g(1,0)=f(0.5,0) g(1,1)=f(0.5,0.5) g(1,2)=f(0.5,1) g(1,3)f(0.5,1.5) g(1,4)

16、=f(0.5,2) g(1,5)=f(0.5,2.5) g(1,6)=f(0.5,3) g(1,7)=f(0.5,3.5) g(2,0)=f(1,0) g(2,1)=f(1,0.5,56,教學資料,g(2,2)=f(1,1) g(2,3)=f(1,1.5) g(2,4)=f(1,2) g(2,5)=f(1,2.5) g(2,6)=f(2,3) g(2,7)=f(1,3.5) g(3,0)=f(1.5,0) g(3,1)=f(1.5,0.5) g(3,2)=f(f(1.5,1) g(3,3)=f(1.5,1.5) g(3,4)=f(1.5,2) g(3,5)=f(1.5,2.5) g(3,6)=

17、f(1.5,3) g(3,7)=f(1.5,3.5) g(4,0)=f(2,0) g(4,1)f(2,0.5) g(4,2)=f(2,1) g(4,3)=f(2,1.5) g(4,4)=f(2,2) g(4,5)=f(2,2.5) g(4,6)=f(2,3) g(4,7)=f(2,3.5) g(5,0)=f(2.5,0) g(5,1)f(2.5,0.5) g(5,2)=f(2.5,1) g(5,3)=f(2.5,1.5) g(5,4)=f(2.5,2) g(5,5)=f(2.5,2.5) g(5,6)=f(2.5,3) g(5,7)=f(2.5,3.5) g(6,0)=f(3,0) g(6,1

18、)f(3,0.5) g(6,2)=f(3,1) g(6,3)=f(3,1.5) g(6,4)=f(3,2) g(6,5)=f(3,2.5) g(6,6)=f(3,3) g(6,7)=f(3,3.5) g(7,0)=f(3.5,0) g(7,1)f(3.5,0.5) g(7,2)=f(3.5,1) g(7,3)=f(3.5,1.5) g(7,4)=f(3.5,2) g(7,5)=f(3.5,2.5) g(7,6)=f(3.5,3) g(7,7)=f(3.5,3.5,57,教學資料,放大后88的新圖,58,教學資料,2)線形插值,線形插值是使用原圖中兩個值來構造所求坐標處的值。 例如:如圖所示,如

19、果已經知道了兩點x0,x2處的函數值f(x0),f(x2),現在要求x1處的函數值f(x1)。我們假設函數是線性的,利用幾何知識可以知道,59,教學資料,60,教學資料,雙線性插值,在圖象處理中需要將線形插值擴展到二維的情況,即采用雙線形插值(Bilinear Intrepolation) 例如:已知四點 f(x0,y0),f(x2,y2) ,f(x2,y0),f(x2,y2) 的灰度,要求g(x1,y1)點的灰度,可以先在水平方向上由f(x0,y0),f(x2,y2)線形插值求出g(x0,y1),f(x2,y0),f(x2,y2)線形插值求出g(x2,y1),然后在垂直方向上由g(x0,y1

20、) ,g(x2,y1)線形插值求出g(x1,y1,61,教學資料,62,教學資料,雙線性插值可以通過三次運算的到。處理效果比較滿意。這種處理具有低通濾波性質,使高頻分量受到損失,圖像輪廓模糊。 另外,圖像處理中還使用雙曲線插值,及三次內插法解決圖像縮放及圖像旋轉后的灰度填充,63,教學資料,圖像幾何變換綜合訓練,1、已知33的圖像如圖所示 A、將此圖以圖形中心為軸順鐘向旋轉30度 B、將此圖放大2倍 C、對此圖作水平鏡像,64,教學資料,1、首先將此圖平移至以圖像中心為原點的坐標系中,65,教學資料,新坐標系中任一點與原坐標系的點的對應關系如下,X1=X-2 Y1=Y-2,由新圖像找原圖像中的

21、對應點用擬矩陣,66,教學資料,新圖像用g(u,y),表示,原圖像用f (x,y),表示有: u0=x2 v0=y2 u(-1)=x1 v(-1)=y1 u1=x3 v1=y3 g(-1,-1)=f(1,1) g(-1,0)=f(1,2) g(-1,1)=f(1,3) g(0,-1)=f(2,1) g(0,0)=f(2,2) g(0,1)=f(2,3) g(1,-1)=f(3,1) g(1,0)=f(3,2) g(1,1)=f(3,3) 平移后的圖像,67,教學資料,68,教學資料,第二、將圖像以坐標原點為軸順鐘向轉過30度,69,教學資料,計算旋轉后的圖像大小,寬度:w=w0cos(a)+H

22、0sin(a) 高度:H=H0cos(a)+w0sin(a) 因此,旋轉后的圖像,70,教學資料,旋轉后的圖像與未旋轉圖之間的對應關系如下,旋轉后的圖像坐標用x2,y2表示,未旋轉的圖像坐標用x1,y1表示,71,教學資料,72,教學資料,由新圖像找原圖像中的對應點用逆矩陣,73,教學資料,新圖像用 p(s,t,),表示,原圖像用 g (u,v),表示有,S(-2)=u(-2.732) t(-2)=v(-2.732) s(-1)=u(-1.366) t(-1)=v(-1.366) S(0)=u(0) t(0)=v(0) s(1)=u(1.366) t(1)=v(1.366) s(2)=u(2.

23、732) t(2)=v(2.732,p(-2,-2)=g(-2,-2) p(-2,-1)=g(-2,-1) p(-2,0) g(-2,1) p(-2,1)=g(-2,1) p(-2,2)=g(-2,2) p(-1,-2)=g(-1,-2) p(-1,-1)=g(-1,-1) p(-1,0) g(-1,0) p(-1,1)=g(-1,1) p(-1,2)=g(-1,2,74,教學資料,經過旋轉的圖像如下,75,教學資料,用白色填充找不到的象素點得道的圖像A,用深色填充找不到的象素點得道的圖像B,A,B,76,教學資料,2、將此圖放大2倍,M*N=6*6 用g(u,v)表示放大后的圖像,f(x,Y

24、)表示原圖 u(0)=X(0) v(0)=y(0) u(1)=x(0.5) v(1)=y(0.5) u(2)=x(1) v(2)=y(1) u(3)X(1.5) v3= Y(1.5) u(4)=X(2) v(4)=Y(2) u( 5)=X(2.5) v(5)=Y(2.5,77,教學資料,g(0,0)=f(0,0) g(0,1)=f(0,0.5) g(0,2)=f(0,1) g(0,3)=f(0,1.5) g(0,4)=f(0,2) g(0,5)=f(0,2.5) g(1,0)=f(0.5,0) g(1,1)=f(0.5,0.5) g(1,2)=f(0.5,1) g(1,3)f(0.5,1.5) g(1,4)=f(0.5,2) g(1,5)=f(0.5,2.5) g(2,0)=f(1,0) g(2,1)=f(1,0.5

溫馨提示

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

評論

0/150

提交評論