幾何變換(數(shù)字圖象處理漢化版).ppt
《幾何變換(數(shù)字圖象處理漢化版).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《幾何變換(數(shù)字圖象處理漢化版).ppt(48頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第六章圖像的幾何變換,,有時(shí)我們希望改變圖像的形狀、尺寸或者方向以適應(yīng)我們不同場(chǎng)合的應(yīng)用需要。旋轉(zhuǎn)和縮放都屬于仿射變換。仿射變換:一種特殊的投影變換。一個(gè)非奇異的線性變換(即變換矩陣行列式不為零的線性變換),接一個(gè)平移變換構(gòu)成的組合變換。它能保證變換前后直線的平行性不變。,6.1數(shù)值插值例:我們有四個(gè)數(shù)值,如果我們希望擴(kuò)大到八個(gè)那么要怎樣做。這八個(gè)值一樣要平均分布。也就是說(shuō),希望把原來(lái)四個(gè)點(diǎn)所對(duì)應(yīng)的區(qū)域平均的分成八份。設(shè)原來(lái)的點(diǎn)為新的點(diǎn)為假設(shè)原來(lái)每?jī)牲c(diǎn)間的距離為1,則總長(zhǎng)度為3,新的分法將把這長(zhǎng)度等分為7份,兩點(diǎn)間的距離為3/7,用數(shù)來(lái)表示如圖6.2那么原值與新值的關(guān)系可以表示成為可見(jiàn)除了兩個(gè)端點(diǎn)外新點(diǎn)沒(méi)有與原來(lái)的點(diǎn)重合的。,若原來(lái)的值都對(duì)應(yīng)一個(gè)函數(shù)值那我們要來(lái)估計(jì)一下新的點(diǎn)對(duì)應(yīng)的函數(shù)值,這種估計(jì)基于鄰近的原來(lái)點(diǎn)的函數(shù)值的。有兩種估計(jì)方法:最近鄰插值法、線性插值法最近鄰插值法是將距離新點(diǎn)最近的原點(diǎn)的函數(shù)值賦給新點(diǎn),作為該點(diǎn)處的函數(shù)值。線性插值是將原相鄰兩點(diǎn)間的函數(shù)值用直線連接,然后在這些直線上找到新點(diǎn)所對(duì)應(yīng)的函數(shù)值。例子如圖6.5所示,這樣可求出F,如果,考慮這點(diǎn)位于之間,對(duì)應(yīng)的值為2/7則,考慮這點(diǎn)位于之間,對(duì)應(yīng)的值為4/7則,6.2圖像插值,上面提到的方法一樣可以用到圖像中,圖6.6給出了通過(guò)插值將一幅4*4的圖像擴(kuò)充成為8*8的圖像。空心的圓點(diǎn)表示原圖像中的點(diǎn),實(shí)心圓點(diǎn)表示插值運(yùn)算之后的新點(diǎn)。圖6.7給出了關(guān)于四個(gè)相鄰點(diǎn)的圖像插值的過(guò)程。設(shè)原來(lái)點(diǎn)的函數(shù)值為我們可以先沿著頂行計(jì)算兩點(diǎn)之間插入的新值而后再沿著底行計(jì)算兩點(diǎn)之間插入的新值最后沿著產(chǎn)生的新列計(jì)算這兩個(gè)新值之間的新值,通過(guò)第一節(jié)中的公式可以得到,沿著插值,將前面兩個(gè)式子代入第三個(gè)式子中,有,這個(gè)式子就是雙線性插值的公式。,現(xiàn)在,當(dāng)給出圖像要縮放的參數(shù)(或直接給出行和列的縮放參數(shù))。比如前面的例子。我們有4*4的圖像,希望得到一幅8*8的圖像,那么放大系數(shù)是2,或(2*4)*(2*4)。根據(jù)第一節(jié)的公式有的關(guān)系如下,如果給出了那么我們可以用最近鄰插值法或雙線性插值法一點(diǎn)一點(diǎn)的計(jì)算出來(lái)對(duì)應(yīng)的插入的函數(shù)值。,當(dāng)放大系數(shù)小于1時(shí),我們做的是抽值運(yùn)算,這時(shí)輸出的圖像大小將小于原圖像,可將圖6.6的實(shí)心點(diǎn)看做原圖的像素,而空心點(diǎn)看做抽值后的點(diǎn)。,圖像放大,用最近鄰插值法,最簡(jiǎn)單的思想是,如果需要將原圖像放大為k倍,則將原圖像中的每個(gè)像素值,填在新圖像中對(duì)應(yīng)的k*k大小的子塊中。,顯然,當(dāng)k為整數(shù)時(shí),可以采用這種簡(jiǎn)單的方法。,圖像的成倍放大效果示例,,圖像放大,不等比例,設(shè)原圖像大小為M*N,放大為k1M*k2N,(k1>1,k2>1)。算法步驟如下:1)設(shè)舊圖像是F(i,j),i=1,2,…,M,j=1,2,…,N.新圖像是G(x,y),x=1,2,…,k1M,y=1,2,…,k2N.2)G(x,y)=F(c1*x,c2*y)c1=1/k1c2=1/k2,,K1=1.5,k2=1.2,i=[1,2],j=[1,3].x=[1,3],y=[1,4].x=[1/1.5,2/1.5,3/1.5]=[i1,i1,i2],y=[1/1.2,2/1.2,3/1.2,4/1.2]=[j1,j2,j3,j3].,,圖像放大,圖像不等比例放大,,MATLAB中有imresize這個(gè)函數(shù)可以實(shí)現(xiàn)圖像的縮放。調(diào)用格式為imresize(A,k,’method’)A是圖像,k是縮放比例,“method”是插值方式,“nearest”或者“bilinear”另一種格式為imresize(A,[m,n],’method’)[m,n]是輸出圖像的尺寸,c=imread(cameraman.tif);>>head=c(33:96,90:153);>>imshow(head)>>head4n=imresize(head,4,nearest);figure,imshow(head4n)>>head4b=imresize(head,4,bilinear);figure,imshow(head4b),對(duì)比上面兩種插值效果能夠看出來(lái),最近鄰法有嚴(yán)重的馬賽克效應(yīng)。雙線性內(nèi)插法具有低通濾波性質(zhì),使高頻分量受損,圖象輪廓模糊。,6.3一般插值方法,雖然最近鄰法和雙線性插值法看起來(lái)不太一樣,但它們都屬于一般插值的特殊情況。下面來(lái)看一下一般插值的想法。假設(shè)我們要求,,設(shè),定義一個(gè)插入函數(shù)R(u)。,圖6.10說(shuō)明了這式子的由來(lái)。R(u)的中心在處,對(duì)應(yīng)著,對(duì)應(yīng)著現(xiàn)在有兩種類型的R函數(shù)R0和R1,分別對(duì)應(yīng)著圖6.11中的結(jié)構(gòu),并且只定義了的區(qū)間。,函數(shù)形式分別為,現(xiàn)在,用R0代替公式中的R,將得到最近鄰法插值的結(jié)果。若用R1代替R,將得到線性插值的結(jié)果。,另外還有一種插值方法——三次插值該方法利用三次多項(xiàng)式S(x)來(lái)逼近理論上的最佳插值函數(shù)sin(x)/x。其數(shù)學(xué)表達(dá)式為:,定義的區(qū)間為,用的已知點(diǎn)也多了,用R3代替R有,這里位于之間。,,,(i-1,j-1),(i-1,j+2),(i+2,j-1),(i+2,j+2),(x,y),,u,v,,,,,,,,,,,,,,,,,,,,,,,,應(yīng)用到圖像中,其中A=[s(1+v)s(v)s(1-v)s(2-v)],,C=[s(1+u)s(u)s(1-u)s(2-u)]T,待求像素(x’,y’)的灰度值由其周圍十六個(gè)點(diǎn)的灰度值加權(quán)內(nèi)插得到??赏茖?dǎo)出待求像素的灰度計(jì)算式如下:f(x’,y’)=A?B?C,head4c=imresize(head,4,bicubic);figure,imshow(head4c),這種方法應(yīng)用于圖像稱為雙三次差值。該算法計(jì)算量最大,但內(nèi)插效果最好,精度最高。,6.4利用空域?yàn)V波器實(shí)現(xiàn)圖像擴(kuò)大,如果我們僅僅希望得到一個(gè)擴(kuò)大兩倍的圖像,這里有一種既快速又直接的方法利用線性濾波。通過(guò)例子來(lái)說(shuō)明,一個(gè)4*4的圖像,m=magic(4)m=16231351110897612414151,第一步,通過(guò)插入0實(shí)現(xiàn)變形,主要是在行與行之間和列與列之間插入全為零的行和列。如果m2是m做0插入后的矩陣,那么可以將其定義為,functionout=zeroint(a)%%[m,n]=size(a);a2=reshape([a;zeros(m,n)],m,2*n);out=reshape([a2;zeros(2*n,m)],2*n,2*m);,m2=zeroint(m)m2=16020301300000000050110100800000000090706012000000000401401501000000000,現(xiàn)在,我們可以分別用兩個(gè)空域?yàn)V波器來(lái)實(shí)現(xiàn)最近鄰插值和雙線性插值。濾波模板分別為,filter2([110;110;000],m2)ans=16162233131316162233131355111110108855111110108899776612129977661212441414151511441414151511,m2b=imresize(m,[8,8],nearest);m2bm2b=16162233131316162233131355111110108855111110108899776612129977661212441414151511441414151511,m2b=imresize(m,[7,7],bilinear);m2bm2b=16.000011.00003.00002.50003.71439.428613.000012.07149.62245.70415.35715.90829.173511.21435.78577.418410.03069.92869.41848.76538.35717.00007.71438.85718.50008.14299.285710.00008.64298.23477.58167.07146.96949.581611.21435.78577.826511.091811.642911.29597.37764.92864.00007.571413.285714.500014.00006.00001.0000,這里用7*7的輸出矩陣是為了確保插值點(diǎn)都位于原圖像的兩點(diǎn)之中點(diǎn)。,可用如下的矩陣模擬雙三插值,分別用空域?yàn)V波的方法將head擴(kuò)大兩倍,6.5縮小,分為按比例縮小和不按比例縮小兩種。圖像縮小之后,因?yàn)槌休d的信息量小了,所以畫布可相應(yīng)縮小。,,(a)按比例縮小(b)不按比例縮小,圖像縮小實(shí)際上就是對(duì)原有的多個(gè)數(shù)據(jù)進(jìn)行挑選或處理,獲得期望縮小尺寸的數(shù)據(jù),并且盡量保持原有的特征不丟失。最簡(jiǎn)單的方法就是等間隔地選取數(shù)據(jù)。,,設(shè)原圖像大小為M*N,縮小為k1M*k2N,(k1<1,k2<1)。算法步驟如下:1)設(shè)原圖為F(i,j),i=1,2,…,M,j=1,2,…,N.壓縮后圖像是G(x,y),x=1,2,…,k1M,y=1,2,…,k2N.2)G(x,y)=F(c1*x,c2*y)其中,c1=1/k1c2=1/k2,圖像縮小——例題,,,,K1=0.6,k2=0.74,i=[1,6],j=[1,6].x=[1,6*06]=[1,4],y=[1,6*0.75]=[1,5].x=[1/0.6,2/0.6,3/0.6,4/0.6]=[1.67,3.33,5,6.67]=[i2,i3,i5,i6],y=[1/0.75,2/0.75,3/0.75,4/0.75,5/0.75]=[j1,j3,j4,j5,j6].,,,,,,,,,,在實(shí)現(xiàn)方法上可以用imresize將其中的參數(shù)改成<1就可以了。例子,t=zeros(1024,1024);fori=1:1024;forj=1:1024;t(i,j)=((255.5)^2>figure,imshow(tr),圖像的旋轉(zhuǎn),圖像的旋轉(zhuǎn)計(jì)算公式如下:,這個(gè)計(jì)算公式計(jì)算出的值為小數(shù),而坐標(biāo)值為正整數(shù)。這個(gè)計(jì)算公式計(jì)算的結(jié)果值所在范圍與原來(lái)的值所在的范圍不同。,因此需要前期處理:擴(kuò)大畫布,取整處理,平移處理。,圖像旋轉(zhuǎn)之前,為了避免信息的丟失,畫布的擴(kuò)大是最重要的。畫布擴(kuò)大的原則是:以最小的面積承載全部的畫面信息。,畫布擴(kuò)大的簡(jiǎn)單方法是:根據(jù)公式計(jì)算出x’和y’的最大、最小值,即x’min、x’max和y’min,y’max。畫布大小為:x’max–x’min、y’max–y’min。,,,旋轉(zhuǎn)后圖像的畫布大小為:,,例,平移量為△x’=2;△y’=0。,圖像旋轉(zhuǎn)的效果示例,,,圖像旋轉(zhuǎn)——按照確定畫布時(shí)的平移量取整,,,,,,,,,,結(jié)論:按照?qǐng)D像旋轉(zhuǎn)計(jì)算公式獲得的結(jié)果與想象中的差異很大。,對(duì)原圖的(1,1)像素,x=1,y=1,取整后,該點(diǎn)在新圖的(2,1)上。,對(duì)原圖的(1,2)像素,x=1,y=2,取整后,該點(diǎn)在新圖的(2,2)上。,,必須進(jìn)行后處理操作。,圖像旋轉(zhuǎn)后處理——旋轉(zhuǎn)后的隱含問(wèn)題分析,圖像旋轉(zhuǎn)之后,出現(xiàn)了兩個(gè)問(wèn)題:1)像素的排列不是完全按照原有的相鄰關(guān)系。這是因?yàn)橄噜徬袼刂g只能有8個(gè)方向(相鄰為45度),如下圖所示。2)會(huì)出現(xiàn)許多的空洞點(diǎn)。,,,圖像旋轉(zhuǎn)后處理——解決問(wèn)題的思路,出現(xiàn)問(wèn)題的核心是像素之間的連接是不連續(xù)的。相鄰像素的角度是無(wú)法改變的,所以只能通過(guò)增加分辨率的方法來(lái)從整體上解決這個(gè)問(wèn)題。采用某種填補(bǔ)方法來(lái)填充空洞。,,圖像旋轉(zhuǎn)的后處理——插值,最簡(jiǎn)單的方法是行插值(列插值)方法。,1)找出當(dāng)前行的最小和最大的非背景點(diǎn)的坐標(biāo),記作:(i,k1)、(i,k2)。,,,,,,,,,如右圖有:(1,3)、(1,3);(2,1)、(2,4);(3,2)、(3,4);(4,2)、(4,3)。,圖像旋轉(zhuǎn)的后處理——插值,2)在(k1,k2)范圍內(nèi)進(jìn)行插值,插值的方法是:空點(diǎn)的像素值等于前一點(diǎn)的像素值。3)同樣的操作重復(fù)到所有行。,,圖像旋轉(zhuǎn)的后處理——插值效果分析,經(jīng)過(guò)插值處理之后,圖像效果就變得自然,,旋轉(zhuǎn)在MATLAB中通過(guò)imrotate實(shí)現(xiàn)結(jié)構(gòu)imrotate(image,angle,‘method’)此處的method與imresize中相同,缺省情況下是最近鄰法。,c=imread(cameraman.tif);>>cr=imrotate(c,60);>>imshow(cr),crc=imrotate(c,60,bicubic);>>imshow(crc),crc=imrotate(c,90,bicubic);>>imshow(crc),crc=imrotate(c,180,bicubic);>>imshow(crc),crc=imrotate(c,270,bicubic);>>imshow(crc),- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 幾何 變換 數(shù)字圖象處理 漢化
鏈接地址:http://www.hcyjhs8.com/p-11521506.html