《數(shù)字圖像處理》課件第4章_第1頁
《數(shù)字圖像處理》課件第4章_第2頁
《數(shù)字圖像處理》課件第4章_第3頁
《數(shù)字圖像處理》課件第4章_第4頁
《數(shù)字圖像處理》課件第4章_第5頁
已閱讀5頁,還剩143頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章圖像的幾何變換4.1幾何變換基礎(chǔ)4.2圖像比例縮放4.3圖像平移4.4圖像鏡像4.5圖像旋轉(zhuǎn)4.6圖像復(fù)合變換4.7透視變4.8應(yīng)用實(shí)例——幾何畸變的校正習(xí)題4.1幾何變換基礎(chǔ)

4.1.1概述

圖像的幾何變換是指對原始圖像按照需要產(chǎn)生大小、形狀和位置的變化。從圖像類型來分,圖像的幾何變換有二維平面圖像的幾何變換和三維圖像的幾何變換以及由三維向二維平面投影變換等。從變換的性質(zhì)分,有平移、比例縮放、旋轉(zhuǎn)、反射和錯(cuò)切等基本變換,透視變換等復(fù)合變換,以及插值運(yùn)算等。一幅二維數(shù)字圖像可以用一組2D數(shù)組g(x,y)來表示,其中x和y表示2D空間xoy中一個(gè)坐標(biāo)點(diǎn)的位置,g代表圖像在點(diǎn)(x,y)的某種性質(zhì)F的數(shù)值,若處理對象為灰度圖,則

g表示灰度值,此時(shí),g、x、y都在整數(shù)集合中取值。因此,除了插值運(yùn)算外,常見的圖像幾何變換可以通過將與之對應(yīng)的線性變換的矩陣來實(shí)現(xiàn)。本章僅討論2D圖像的幾何變換。4.1.2齊次坐標(biāo)

將點(diǎn)P0(x0,y0)平移到P(x,y),其中x、y方向的平移量分別為Δx、Δy。則點(diǎn)P(x,y)的坐標(biāo)為(4-1)如圖4-1所示。式(4-1)可以用矩陣的形式表示為(4-2)圖4-1點(diǎn)的平移因平面上點(diǎn)的變換矩陣

中無平移常量,無論a、b、c、d取任何值,均無法實(shí)現(xiàn)上述平移變換。故需要使用2×3階變換矩陣,其形式為式(4-3)所示變換矩陣T的第1、2列構(gòu)成單位矩陣,第3列元素為平移常量。對2D圖像進(jìn)行幾何變換,只需用變換矩陣乘以圖像中所有像素點(diǎn)坐標(biāo),2D圖像坐標(biāo)矩陣為2×n,而上式擴(kuò)展后的變換矩陣是2×3階矩陣,這不符合矩陣相乘時(shí)要求前者列數(shù)與后者行數(shù)相等的規(guī)則。所以,需要在點(diǎn)的坐標(biāo)列矩陣[x

y]T中引入第3個(gè)元素,增加一個(gè)附加坐標(biāo),擴(kuò)展為3×1的列矩陣[x

y1]T,這樣用三維空間點(diǎn)(x

y1)表示二維空間點(diǎn)(x,y),即采用一種特殊的坐標(biāo),可以實(shí)現(xiàn)平移變換,變換結(jié)果為(4-4)由此可得平移變換矩陣為(4-5)因此,2D圖像中的點(diǎn)坐標(biāo)(x,y)通常表示成齊次坐標(biāo)(Hx,Hy,H),其中H表示非零的任意實(shí)數(shù),當(dāng)H=1時(shí),稱(x,y,1)為點(diǎn)(x,y)的規(guī)范化齊次坐標(biāo)。

齊次坐標(biāo)的幾何意義相當(dāng)于點(diǎn)(x,y)落在3D空間H=1的平面上,如圖4-2所示。如果將xoy平面內(nèi)的三角形abc的各頂點(diǎn)表示成齊次坐標(biāo)(xi,yi,1)(i=1,2,3)的形式,則變換后便成為H=1平面內(nèi)的三角形a1b1c1的各頂點(diǎn)。下面再驗(yàn)證點(diǎn)P(x,y)按照3×3的變換矩陣T平移變換的結(jié)果。由式(4-5)可見,引入附加坐標(biāo)后,擴(kuò)充了矩陣的第3行,變換結(jié)果未受影響。這種用n+1維向量表示n維向量的方法稱為齊次坐標(biāo)表示法。(4-5)圖4-2齊次坐標(biāo)的幾何意義4.1.3二維圖像幾何變換的矩陣

利用齊次坐標(biāo)及改成3×3階的變換矩陣T,實(shí)現(xiàn)2D

圖像幾何變換的基本過程為:將2×n階的二維矩陣

[x0i

y0i]T2×n表示成齊次坐標(biāo)[x0i

y0i1]T3×n的形式,然后乘以相應(yīng)的變換矩陣即可完成,即(4-5)設(shè)變換矩陣T為(4-6)則上述變換可由式(4-7)表示為(4-7)圖像上各點(diǎn)的新齊次坐標(biāo)規(guī)范化后的矩陣為引入齊次坐標(biāo)后,完善了2D圖像幾何變換的3×3矩陣的功能,可用它完成2D圖像的各種幾何變換。下面討論如式(4-6)所示3×3階變換矩陣中各元素在變換中的功能。

3×3的階矩陣T可以分成4個(gè)子矩陣。其中,2×2階子矩陣可使圖像實(shí)現(xiàn)以坐標(biāo)原點(diǎn)為變換中心的恒等、比例、反射(或鏡像)、錯(cuò)切和旋轉(zhuǎn)變換。[p

q]T子矩陣可以實(shí)現(xiàn)圖像的平移變換,s元素可以使圖像實(shí)現(xiàn)全比例變換(放大、縮小或保持不變)。例如,將圖像進(jìn)行全比例變換,即4.2圖像比例縮放

4.2.1圖像比例縮放變換

圖像比例縮放是指將給定的圖像在x、y軸方向按比例分別縮放fx倍和fy倍,從而獲得一幅新的圖像。如果fx=fy,即在x軸和y軸方向縮放的比率相同,該比例縮放稱為圖像的全比例縮放。如果fx≠fy,圖像的比例縮放會(huì)改變原始圖像的像素間的相對位置,產(chǎn)生幾何畸變。設(shè)原圖像中的點(diǎn)P0(x0,y0)比例縮放后,在新圖像中的對應(yīng)點(diǎn)為P(x,y),則P0(x0,y0)和P(x,y)之間的對應(yīng)關(guān)系如圖4-3所示。圖4-3比例縮放比例縮放前后P0(x0,y0)和P(x,y)之間的關(guān)系用矩陣形式可表示為(4-8)式(4-8)的逆運(yùn)算為(4-9)即比例縮放后圖像中的像素在原圖像中可能找不到對應(yīng)的像素點(diǎn),則此時(shí)需要進(jìn)行插值處理。常用的兩種插值處理方法:一種是直接賦值為與它最相近的像素值,稱為最鄰近插值法(NearestNeighborInterpolation)或者最近鄰域法;另一種是通過插值算法計(jì)算相應(yīng)的像素值。前一種方法是一種最基本、最簡單的圖像插值算法,但效果不佳。采用這種方法放大后的圖像有很嚴(yán)重的馬賽克,而縮小后的圖像會(huì)出現(xiàn)嚴(yán)重的失真。其原因在由目標(biāo)圖的坐標(biāo)反推得到的源圖的坐標(biāo)是一個(gè)浮點(diǎn)數(shù)時(shí),直接采用四舍五入的方法將目標(biāo)的坐標(biāo)值設(shè)定為源圖像中最接近的像素值。比如:當(dāng)推得坐標(biāo)值為0.75的時(shí)候,不應(yīng)該簡單的取為1,既然是0.75,比1要小0.25,比0要大0.75,那么目標(biāo)像素值應(yīng)該根據(jù)這個(gè)源圖中虛擬點(diǎn)四周的四個(gè)真實(shí)點(diǎn)來按照一定的規(guī)律進(jìn)行計(jì)算,這樣才能達(dá)到更好的縮放效果。后一種有如雙線性內(nèi)插值算法,雙線性內(nèi)插值算法是一種比較好的圖像插值算法,它充分地利用了源圖中虛擬點(diǎn)四周的四個(gè)真實(shí)存在的像素值來共同決定目標(biāo)圖中的一個(gè)像素值,因此縮放效果比簡單的最鄰近插值要好很多。

1.圖像的比例縮小

最簡單的比例縮小是當(dāng)fx=fy=1/2時(shí),圖像被縮到1/4大小,縮小后圖像中的(0,0)像素對應(yīng)于原圖像中的(0,0)像素;(0,1)像素對應(yīng)于原圖像中的(0,2)像素;(1,0)像素對應(yīng)于原圖像中的(2,0)像素,以此類推。即取原圖的偶(奇)數(shù)行和偶(奇)數(shù)列構(gòu)成新的圖像,如圖4-4

所示。圖4-4圖像縮小一半若圖像按任意比例縮小,則需要計(jì)算選擇的行和列。將M×N大小的原圖像F(x,y)縮小為kM×kN大?。╧<1)的新圖像I(x,y)時(shí),則

I(x,y)=F(int(c×x),int(c×y)) (4-9)

式中,c=1/k。由式(4-9)可以構(gòu)造出新圖像,如圖4-5

所示。圖4-5圖像按任意比例縮小

2.圖像非比例縮小

當(dāng)fx≠fy(fx,fy<1)時(shí),因?yàn)樵趚和y方向的縮小比例不同,一定會(huì)產(chǎn)生圖像的幾何畸變。圖像不按比例縮小的方法是:如果M×N大小的原圖像F(x,y)縮小為k1M×K2n大?。╧1<1,k2<1)的新圖像I(x,y)時(shí),則

I(x,y)=F(int(c1×x),int(c2×y)) (4-10)

式中:c1=1/k1,c2=1/k2。

3.圖像的比例放大

在圖像的放大操作中,會(huì)產(chǎn)生多出來的像素空格,故需要確定其像素值,這是信息的估計(jì)問題。同理,當(dāng)fx=fy=2時(shí),圖像被按全比例放大兩倍,放大后圖像中的(0,0)像素對應(yīng)于原圖中的(0,0)像素;(0,1)像素對應(yīng)于原圖中的(0,0.5)像素,該像素不存在,可以近似為(0,0)也可以近似為(0,1);(0,2)像素對應(yīng)于原圖像中的(0,1)像素;(1,0)像素對應(yīng)于原圖中的(0.5,0)像素,它的像素值近似為(0,0)或(1,0)像素;(2,0)像素對應(yīng)于原圖中的(1,0)像素,以此類推。其實(shí)是將原圖像每行中的像素重復(fù)取值一遍,然后每行重復(fù)一次。圖4-6是原始圖像,圖4-7和圖4-8是分別采用上述兩種近似方法放大后的圖像。圖4-6放大前的圖像圖4-7最近鄰域法放大4倍的圖像圖4-8插值法放大4倍的圖像一般地,按比例將原圖像放大k×k倍時(shí),若按最近鄰域法則需要將一個(gè)像素值添在新圖像的k×k子塊中。如圖

4-9所示。顯然,如果放大倍數(shù)太大,會(huì)出現(xiàn)馬賽克效應(yīng)。當(dāng)fx≠fy(fx,fy>1)時(shí),圖像在x和y方向按不同比例放大,此時(shí),該操作由于x和y方向的放大倍數(shù)不同,會(huì)產(chǎn)生圖像的幾何畸變。放大的方法是將原圖像的一個(gè)像素添到新圖像的一個(gè)k×k的子塊中去。圖4-9按最近鄰域法放大5倍的圖像為了提高幾何變換后圖像的質(zhì)量,常采用線性插值法。該方法的原理是:當(dāng)求出的分?jǐn)?shù)地址與像素點(diǎn)不一致時(shí),求出其與周圍4個(gè)像素點(diǎn)的距離比,根據(jù)該比率,由4個(gè)鄰域的像素灰度值進(jìn)行雙線性插值,如圖4-10所示。簡化后的插值點(diǎn)(x,y)處的灰度值可由式(4-11)計(jì)算:(4-11)圖4-10線性插值法示意圖在遙感圖像、醫(yī)學(xué)圖像、視頻序列圖像分析等計(jì)算機(jī)視覺研究領(lǐng)域中,研究者往往需要高分辨率圖像來提供更多的細(xì)節(jié)以提高模式識別的性能。圖像超分辨率重建可以實(shí)現(xiàn)由一幅低分辨率圖像或圖像序列到高分辨率圖像的轉(zhuǎn)換。采用信號處理的方法從多個(gè)可觀察到的低分辨率圖像得到高分辨率圖像也是當(dāng)前研究的熱點(diǎn)之一,其基本前提是通過同一場景獲取多幅低分辨率細(xì)節(jié)圖像,其中最為基礎(chǔ)的內(nèi)容就是利用圖像比例縮放技術(shù)改變序列圖像中目標(biāo)的尺寸。關(guān)于圖像超分辨率重建讀者可以參考有關(guān)參考文獻(xiàn)。4.2.2比例縮放的實(shí)現(xiàn)

按照式(4-8),讀者可以自行編寫一個(gè)實(shí)現(xiàn)圖像比例縮放的函數(shù)。在OpenCV中也提供了進(jìn)行圖像比例縮放的函數(shù)resize,其格式為resize(src,dst,dst_size),其中:src為源圖像,dst為目標(biāo)圖像,dst_size為縮放比例。由于圖像尺度的變換,對目標(biāo)圖像需要進(jìn)行插值處理,常用的插值方法有最近鄰插值法、雙線性插值法、像素關(guān)系重采樣法和立方插值法等,其中默認(rèn)的插值方法為雙線性插值法。利用默認(rèn)插值方法對圖4-11(a)縮放0.618倍后得到的結(jié)果如圖4-11(b)所示。圖4-11圖像的比例縮放4.3圖像平移

4.3.1圖像平移變換

將一幅圖像中的所有點(diǎn)均按照給定的偏移量分別沿

x、y軸移動(dòng),即為圖像的平移(Move)。平移后的圖像與原圖像相同,只是位置發(fā)生了變化,如圖4-12所示。圖4-12圖像的平移設(shè)點(diǎn)P0(x0,y0)平移到P(x,y),其中x、y方向的平移量分別為Δx、Δy。則點(diǎn)P(x,y)的坐標(biāo)為利用齊次坐標(biāo),變換前后圖像上的點(diǎn)P0(x0,y0)和

P(x,y)之間的關(guān)系可表示如下:(4-12)式(4-12)的逆變換為(4-13)即平移后圖像上的每一點(diǎn)均可在原圖像中找到對應(yīng)點(diǎn)。如果Δx或Δy大于0,則點(diǎn)(-Δx,-Δy)不在原圖像中。對于不在原圖像中的點(diǎn),可以直接將其像素值統(tǒng)一設(shè)置為0或者255(對應(yīng)灰度圖即為黑色或白色)。若有像素點(diǎn)不在原圖像中,表明原圖像中有點(diǎn)被移出顯示區(qū)域,可以將新圖像的寬度擴(kuò)大|Δx|,高度擴(kuò)大|Δy|,以避免丟失被移出部分的圖像。圖4-13是平移前的圖像,圖4-14是水平和垂直方向都平移50個(gè)像素后的圖像,圖4-15是平移后擴(kuò)大的圖像。圖4-13平移前的圖像圖4-14平移后的圖像圖4-15平移后擴(kuò)大的圖像4.3.2圖像平移算法

按照上述理論,用OpenCV可方便實(shí)現(xiàn)圖像的平移。對于灰度圖像,因?yàn)槊總€(gè)像素的位數(shù)正好是8位,即1個(gè)字節(jié),在進(jìn)行平移處理時(shí),可不必考慮拼湊字節(jié)的問題。而且由于灰度圖調(diào)色板的特殊性,進(jìn)行灰度圖像處理時(shí)不必考慮調(diào)色板問題,故可將重點(diǎn)放在算法本身。由于平移前后的圖像相同,而且圖像上的像素是連續(xù)放置的,所以圖像的平移也可以通過直接逐行地復(fù)制圖像來實(shí)現(xiàn)。利用OpenCV提供的圖像平移函數(shù)對圖4-13所示的圖像在水平和垂直方向均平移50個(gè)像素后的圖像如圖4-14所示,可見由于沒有擴(kuò)大圖像,平移后部分?jǐn)?shù)據(jù)丟失,對圖4-14所示的圖像進(jìn)行平移擴(kuò)大后的圖像如圖4-15所示。實(shí)現(xiàn)圖像平移的完整代碼請讀者登錄出版社網(wǎng)站下載,文件路徑:code\src\chapter04\code04-02move.cpp。彩色圖像的平移方法與灰度圖像的平移方法相類似。但彩色圖像中任一像素點(diǎn)均由R(紅)、G(綠)、B(藍(lán))3分量組合而成。因此,對彩色圖像進(jìn)行平移操作時(shí),需要對每個(gè)像素點(diǎn)的3個(gè)顏色分量分別進(jìn)行處理。

4.4圖像鏡像

4.4.1圖像鏡像變換

圖像的鏡像(Mirror)變換分為水平鏡像和垂直鏡像。圖像的水平鏡像操作是將圖像左半部分和右半部分以圖像垂直中軸線為中心進(jìn)行鏡像對換;垂直鏡像操作是將圖像上半部分和下半部分以圖像水平中軸線為中心進(jìn)行鏡像對換,但是為了編程與實(shí)現(xiàn)方便,往往對水平鏡像在x方向作一個(gè)平移(圖像寬度),對垂直鏡像在y方向作一個(gè)平移(圖像高度),如圖4-16所示。圖4-16圖像的鏡像圖像的鏡像變換可用矩陣變換表示。設(shè)點(diǎn)P0(x0,y0)進(jìn)行鏡像后的對應(yīng)點(diǎn)為P(x,y),圖像高度為fHeight,寬度

為fWidth,原圖像中P0(x0,y0)經(jīng)過水平鏡像后坐標(biāo)將變?yōu)椋╢Width-x0,y0),其矩陣表達(dá)式為(4-14)它的逆運(yùn)算矩陣表達(dá)式為(4-15)(4-16)即4.4.2圖像鏡像算法

按照式(4-14)和式(4-16)可以實(shí)現(xiàn)圖像的水平和垂直鏡像操作。和圖像平移一樣,在垂直鏡像中也可以利用位圖存儲的連續(xù)性整行復(fù)制圖像。利用OpenCV提供的Flip函數(shù)進(jìn)行圖像鏡像的大致結(jié)構(gòu)為:flip(src,dst,flip_mod)。其中,src為源圖像,dst為目標(biāo)圖像,flip_mod為圖像的鏡像方式:當(dāng)flip_mod=0時(shí)表示沿x軸進(jìn)行翻轉(zhuǎn);當(dāng)flip_mod>0

(如flip_mod=1)時(shí)表示沿Y軸進(jìn)行翻轉(zhuǎn);當(dāng)flip_mod<0(如flip_mod=-1)時(shí)表示沿x軸和y軸進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)后像素點(diǎn)的取值可按下式處理:利用上述函數(shù)對如圖4-17所示的圖像進(jìn)行鏡像處理,圖4-18和圖4-19分別為水平鏡像和垂直鏡像的結(jié)果。圖4-17原圖像圖4-18水平鏡像圖4-19垂直鏡像4.5圖像旋轉(zhuǎn)

4.5.1圖像的旋轉(zhuǎn)變換

圖像的旋轉(zhuǎn)一般是以圖像的中心為原點(diǎn),將圖像上的所有像素都旋轉(zhuǎn)一個(gè)相同的角度。旋轉(zhuǎn)變換后僅產(chǎn)生圖像位置的變化,但圖像的大小一般會(huì)改變。和圖像平移一樣,在圖像旋轉(zhuǎn)變換中既可以把轉(zhuǎn)出顯示區(qū)域的圖像截去,也可以擴(kuò)大新圖像的尺寸以顯示所有的圖像,如圖

4-20和圖4-21所示,其中圖4-21中左圖為擴(kuò)大圖像,右圖為轉(zhuǎn)出部分被截圖像。圖4-20旋轉(zhuǎn)前的圖像圖4-21旋轉(zhuǎn)θ后的圖像圖像的旋轉(zhuǎn)變換同樣可用矩陣變換表示。設(shè)點(diǎn)P0

(x0,y0)旋轉(zhuǎn)θ角后的對應(yīng)點(diǎn)為P(x,y),如圖4-22所示。

則旋轉(zhuǎn)前后點(diǎn)P0(x0,y0)、P(x,y)的坐標(biāo)分別是:(4-18)圖4-22圖像旋轉(zhuǎn)θ角矩陣表達(dá)式(4-19)其逆運(yùn)算為(4-20)用式(4-18)可以計(jì)算旋轉(zhuǎn)后圖像上像素的坐標(biāo)。例如,對圖4-23所示大小為3×3的圖像進(jìn)行旋轉(zhuǎn),當(dāng)θ=30°時(shí),式(4-18)為變換后x、y可能取的最小、最大值分別為

xmin=0.866-0.5*3=-0.634,

xmax=0.866*3-0.5=2.098,

ymin=0.866+0.5=1.366,

ymax=0.866*3+0.5*3=4.098

其變換過程如圖4-23所示。圖4-23圖像旋轉(zhuǎn)θ角(30°)用式(4-19)進(jìn)行圖像旋轉(zhuǎn)時(shí)需注意如下兩點(diǎn):

(1)為避免丟失信息,旋轉(zhuǎn)之前要平移圖像坐標(biāo)。具體方法有如圖4-24所示的兩種方法。旋轉(zhuǎn)前圖像左上角均在坐標(biāo)原點(diǎn)o處,虛線框所示為旋轉(zhuǎn)前的圖像,實(shí)線為旋轉(zhuǎn)后的圖像。其中,圖4-24(a)為按照中心點(diǎn)c旋轉(zhuǎn)方法,根據(jù)式(4-18)計(jì)算出圖像旋轉(zhuǎn)后x、y方向的最大和最小值,然后將圖像平移到點(diǎn)劃線所在的矩形位置。圖4-24(b)為坐標(biāo)軸平移方法,同樣,根據(jù)式(4-18)在xoy坐標(biāo)系中計(jì)算出原圖像旋轉(zhuǎn)后x、y方向的最大和最小值,然后新建一個(gè)坐標(biāo)系x1o1y1,在新的坐標(biāo)系中重新得到平移后的圖像,坐標(biāo)軸平移方法無須考慮旋轉(zhuǎn)中心的位置,因此具有更好的適用性。圖4-24圖像旋轉(zhuǎn)之前進(jìn)行的平移(2)根據(jù)式(4-18)可知,圖像旋轉(zhuǎn)之后,隨著坐標(biāo)取值的不同,圖像會(huì)出現(xiàn)空洞點(diǎn),如圖4-23中(x′=2,y′=3)位置所示的白色方格。因此需對空洞點(diǎn)進(jìn)行填充處

理,否則邊緣將會(huì)出現(xiàn)鋸齒從而影響畫面效果。填充空洞點(diǎn)可用插值處理,最簡單的方法是行插值或列插值方法:圖像旋轉(zhuǎn)前某一點(diǎn)(x,y)的像素值,除了填充在旋轉(zhuǎn)后坐標(biāo)(x′,y′)上外,還要填充坐標(biāo)為(x′+1,y′)和(x′,y′+1)上的點(diǎn)。按照上述行插值或列插值方法,原像素點(diǎn)(x=1,y=2)

經(jīng)旋轉(zhuǎn)30°后得到變換后的點(diǎn)(x′=2,y′=2),其后的空洞點(diǎn)(x′,y′+1)可以填充為(x′,y′),即空洞點(diǎn)(2,3)可以用(2,2)點(diǎn)的值來代替。當(dāng)然,采用不同的插值方法所得到的空洞點(diǎn)的值是不同的,也可以采用其他方法處理得到不同的空洞點(diǎn)填充效果。圖4-25圖4-23中的圖像處理后的效果上述所討論的旋轉(zhuǎn)是繞坐標(biāo)軸原點(diǎn)(0,0)進(jìn)行的。如果圖像繞一個(gè)指定點(diǎn)(a,b)旋轉(zhuǎn),則先要將坐標(biāo)系平移到該點(diǎn),再進(jìn)行旋轉(zhuǎn),然后將旋轉(zhuǎn)后的圖像平移回原來的坐標(biāo)原點(diǎn)。該旋轉(zhuǎn)其實(shí)為圖像的復(fù)合變換,將在圖像的復(fù)合變換中討論。4.5.2圖像旋轉(zhuǎn)的實(shí)現(xiàn)

由式(4-19)計(jì)算得旋轉(zhuǎn)后的坐標(biāo)并用雙線性插值方法充填空洞點(diǎn),可以用OpenCV編寫一個(gè)實(shí)現(xiàn)圖像旋轉(zhuǎn)的函數(shù)

rotateImage()。該函數(shù)的結(jié)構(gòu)和主要算法大致如下。

(1)讀入源圖像:

Matsrc;

src=imread(“4-26.jpg”);

(2)計(jì)算圖像中心:

Point2fcenter(src.cols/2,src.rows/2);(3)構(gòu)建變換矩陣:

Matrotmat=getRotationMatrix2D(center,30,1);

//第3個(gè)變量大于0表示逆時(shí)針旋轉(zhuǎn);小于0表示順時(shí)針旋轉(zhuǎn)。

Matdst(src.cols,src.rows,src.type());

(4)進(jìn)行變換:

warpAffine(src,dst,rotmat,

dst.size(),

INTER_LINEAR,BORDER_CONSTANT,Scalar(0));用上述函數(shù)對圖4-26所示的原始圖像旋轉(zhuǎn)15°,并按式(4-11)進(jìn)行雙線性插值處理后的結(jié)果如圖4-27。將如圖4-28所示的圖像旋轉(zhuǎn)30°,并將局部放大后如圖4-29所示,由圖4-29可見,旋轉(zhuǎn)后的圖像在邊緣會(huì)產(chǎn)生鋸齒現(xiàn)象。實(shí)現(xiàn)圖像旋轉(zhuǎn)的完整代碼請讀者登錄出版社網(wǎng)站下載,文件路徑:code\src\chapter04\code0404rotateImage.cpp。圖4-26旋轉(zhuǎn)前的圖像圖4-27旋轉(zhuǎn)15°并插值圖4-28旋轉(zhuǎn)前圖像圖4-29旋轉(zhuǎn)30°后的局部放大圖4.6圖像復(fù)合變換

4.6.1圖像的復(fù)合變換

圖像的復(fù)合變換是指對給定的圖像連續(xù)進(jìn)行若干次平移、鏡像、比例縮放、旋轉(zhuǎn)等基本變換。變換矩陣仍可用3階矩陣表示,且可用數(shù)學(xué)證明:復(fù)合變換的矩陣等于基本變換的矩陣按順序依次相乘得到的矩陣乘積。設(shè)對給定的圖像依次進(jìn)行了基本變換F1,F(xiàn)2,…,F(xiàn)N,其變換矩陣分別為T1,T2,…,TN,按照式(4-8)~式(4-16)的表示形式,圖像的復(fù)合變換的矩陣T可以表示為:T=TN

TN-1…T1。常見的復(fù)合變換有兩類:一類是同一種基本變換依次連續(xù)進(jìn)行若干次,例如復(fù)合平移、復(fù)合比例縮放、復(fù)合旋轉(zhuǎn)等;另一類是含有不同類型的基本變換,例如圖像的轉(zhuǎn)置、繞任意點(diǎn)的比例縮放、繞任意點(diǎn)的旋轉(zhuǎn)等。下面首先討論第一類圖像復(fù)合變換。

1.復(fù)合平移

設(shè)原圖像先平移到新的位置P1(x1,y1)后,再將圖像平移到P2(x2,y2)的位置,則復(fù)合平移變換的矩陣為(4-21)

由式(4-21)可見,盡管按順序?qū)D像進(jìn)行了兩次平移,但在復(fù)合平移矩陣中,只需對平移常量作加法運(yùn)算。

2.復(fù)合比例

對給定圖像連續(xù)進(jìn)行比例變換,最后合成的復(fù)合比例變換矩陣只要對比例常量作乘法運(yùn)算即可。復(fù)合比例變換矩陣如下:(4-22)

3.復(fù)合旋轉(zhuǎn)

對給定圖像連續(xù)進(jìn)行兩次旋轉(zhuǎn)變換,得到的旋轉(zhuǎn)變

換矩陣等于兩次旋轉(zhuǎn)角度的和,復(fù)合旋轉(zhuǎn)變換矩陣如式(4-23)。(4-23)上述圖像變換均為相對原點(diǎn)(圖像中心)作平移、比例縮放、旋轉(zhuǎn)等,若要相對某一個(gè)參考點(diǎn)作變換,則需使用含有不同種基本變換的復(fù)合變換。不同的復(fù)合變換其變換過程不同,但均可以分解成一系列的基本變換。相應(yīng)地,使用齊次坐標(biāo)后,圖像復(fù)合變換的矩陣由一系列圖像的基本幾何變換矩陣依次相乘而得到。下面通過一個(gè)例子討論圖像的復(fù)合變換。在進(jìn)行圖像的比例縮放、旋轉(zhuǎn)變換時(shí),整個(gè)變換過程由兩部分組成,即需要兩個(gè)獨(dú)立的算法。首先,需要一個(gè)算法來完成幾何變換本身,用它描述每個(gè)像素如何從其初始位置變換到最終位置,即每個(gè)像素的變換;同時(shí),還需要一個(gè)用于灰度級插值的算法,這是因?yàn)樵谝话闱闆r下,原始圖像的位置坐標(biāo)(x,y)為整數(shù),而變換后圖像的位置坐標(biāo)為非整數(shù),即產(chǎn)生“空穴”,反過來也是如此。故需要進(jìn)行灰度級插值的處理。實(shí)現(xiàn)圖像的灰度級插值處理時(shí),可采用兩種方法。第一種方法為像素移交(PixelCarryover)或向前映射法,可以把幾何變換想象成將輸入圖像的灰度值一個(gè)一個(gè)像素地轉(zhuǎn)移到輸出圖像中。如果一個(gè)輸入像素被映射到4個(gè)輸出像素之間的位置,則其灰度值就按插值算法在4個(gè)輸出像素之間進(jìn)行分配,如圖4-30(a)所示。圖4-30灰度級插值處理(像素變換)第二種插值處理方法是像素填充(PixelFilling)或稱

為向后映射算法。該算法將輸出像素一次一個(gè)地映射回到原始(輸入)圖像中,以便確定其灰度級。如果一個(gè)輸出像素被映射到4個(gè)輸入像素之間,則其灰度值由灰度級插值決定,如圖4-30(b)所示,向后空間變換是向前變換的逆。像素填充法切實(shí)可行,且更為有效。在像素填充法中,變換后圖像的像素通常被映射到原始圖像中的非整數(shù)位置,即位于4個(gè)輸入像素之間。因此,為了確定與該位置相對應(yīng)的灰度值,須進(jìn)行插值運(yùn)算。最簡單的插值方法是最近鄰域插值法(參見4.2節(jié))。雙線性插值法和最近鄰插值法相比效果更好,其原理如圖4-10和圖4-31所示,插值計(jì)算公式如式(4-11)所示。圖4-31雙線性插值為提高雙線性插值的速度,雙線性插值也可以分解為3個(gè)線性插值來實(shí)現(xiàn),公式如下:(4-24)因?yàn)槭剑?-11)用到4次乘法、8次加/減法運(yùn)算,而式(4-24)表示的方法只需3次乘法和6次加/減法,所以幾何變換程序一般選擇式(4-24)表示的方法。在幾何運(yùn)算中,雙線性灰度插值的平滑作用可能會(huì)使圖像的細(xì)節(jié)產(chǎn)生退化,尤其在圖像放大處理時(shí)影響更為明顯。通過三次樣條、Legendre中心函數(shù)和sin(ax)/ax函數(shù)(即sinc(ax)函數(shù))等高階插值可以消除上述影響,但會(huì)增加計(jì)算量。高階插值常用卷積來實(shí)現(xiàn),請參考相關(guān)文獻(xiàn)。4.6.2圖像復(fù)合變換的示例

如果圖像繞一個(gè)指定點(diǎn)(a,b)旋轉(zhuǎn),則先要將坐標(biāo)系平移到該點(diǎn),再進(jìn)行旋轉(zhuǎn),然后將旋轉(zhuǎn)后的圖像平移回原來的坐標(biāo)原點(diǎn)。下面推導(dǎo)圖像復(fù)合變換公式。

首先推導(dǎo)坐標(biāo)系平移的轉(zhuǎn)換公式。如圖4-32所示,將坐標(biāo)系Ⅰ平移到坐標(biāo)系Ⅱ處,其中坐標(biāo)系Ⅱ的原點(diǎn)在坐標(biāo)系Ⅰ中的坐標(biāo)為(a,b)。圖4-32坐標(biāo)系的平移兩個(gè)坐標(biāo)系之間的坐標(biāo)變換矩陣表達(dá)式為(4-25)它的逆變換矩陣表達(dá)式為(4-26)為了簡單起見,假設(shè)圖像未旋轉(zhuǎn)時(shí)中心坐標(biāo)為(a,b),旋轉(zhuǎn)后中心坐標(biāo)為(c,d)(在新的坐標(biāo)系下旋轉(zhuǎn)后新圖像左上角為原點(diǎn)),則旋轉(zhuǎn)變換矩陣表達(dá)式為(4-27)其逆變換表達(dá)式為(4-28)即(4-29)因此(4-30)式(4-27)表明繞任意點(diǎn)(a,b)旋轉(zhuǎn)的圖像幾何變換是由3個(gè)基本變換平移、旋轉(zhuǎn)、平移所構(gòu)成,即先要將坐標(biāo)系平移到點(diǎn)(a,b),再進(jìn)行旋轉(zhuǎn),然后將旋轉(zhuǎn)后的圖像平移回原來的坐標(biāo)原點(diǎn)。利用式(4-27)~式(4-30),可以編寫實(shí)現(xiàn)圖像旋

轉(zhuǎn)的OpenCV函數(shù)。首先應(yīng)計(jì)算出公式中需要的幾個(gè)參數(shù):a,b,c,d和旋轉(zhuǎn)后新圖像的高度和寬度。設(shè)圖像的原始寬度為lWidth,高度為lHeight,以圖像中心為坐標(biāo)系原點(diǎn),則原始圖像4個(gè)角的坐標(biāo)分別為按照式(4-27)~式(4-29),在旋轉(zhuǎn)后的新圖像中,該4個(gè)點(diǎn)坐標(biāo)分別為則新圖像的寬度lNewWidth和高度lNewHeight為如果令(4-31)由已知及假設(shè)所以由式(4-30),得(4-33)式(4-32)和式(4-33)即為圖像繞任意點(diǎn)(a,b)旋轉(zhuǎn)的變換公式,由此可編寫實(shí)現(xiàn)該變換的OpenCV程序。事實(shí)上,只要先按上述公式計(jì)算出旋轉(zhuǎn)后新圖像的高度和寬度以及常數(shù)f1和f2,并按照公式(4-33)計(jì)算出變換后圖像上的點(diǎn)(i0,j0):

//計(jì)算該像素在源圖像中的坐標(biāo)

i0=-((float)j)*fsina+((float)i)*fcosa+f2;

j0=((float)j)*fcosa+((float)i)*fsina+f1;

再對4.5.2節(jié)中的旋轉(zhuǎn)函數(shù)稍加修改,便可實(shí)現(xiàn)繞任意點(diǎn)

(a,b)旋轉(zhuǎn)的圖像復(fù)合變換。4.7透視變換

4.7.1透視變換

把空間坐標(biāo)系中的三維物體或?qū)ο筠D(zhuǎn)變?yōu)槎S圖像表示的過程稱為投影變換。根據(jù)視點(diǎn)(投影中心)與投影平面之間距離的不同,投影可分為平行投影和透視投影,透視投影即透視變換。平行投影的視點(diǎn)(投影中心)與投影平面之間的距離為無窮大,而對透視投影(變換),此距離是有限的。透視投影具有透視縮小效應(yīng)的特點(diǎn),即三維物體或?qū)ο笸敢曂队暗拇笮∨c形體到視點(diǎn)(投影中心)的距離成反比。例如,等長的兩直線段都平行于投影面,但離投影中心近的線段透視投影大,而離投影中心遠(yuǎn)的線段透視投影小。該效應(yīng)所產(chǎn)生的視覺效果與人的視覺系統(tǒng)類似。與平行投影相比,透視投影的深度感更強(qiáng),看上去更真實(shí),但透視投影圖不能真實(shí)地反映物體的精確尺寸和形狀。對于透視投影,一束平行于投影面的平行線的投影可保持平行,而不平行于投影面的平行線的投影會(huì)聚集到一個(gè)點(diǎn),該點(diǎn)稱為滅點(diǎn)(VanishingPoint)??蓪琰c(diǎn)看作是無限遠(yuǎn)處一點(diǎn)在投影面上的投影。透視投影的滅點(diǎn)可以有無限多個(gè),不同方向的平行線在投影面上就能形成不同的滅點(diǎn),坐標(biāo)軸方向的平行線在投影面上形成的滅點(diǎn)又稱作主滅點(diǎn)。因?yàn)橛?x,y)和z3個(gè)坐標(biāo)軸,故主滅點(diǎn)最多有3個(gè)。透視投影按主滅點(diǎn)的個(gè)數(shù)可分為一點(diǎn)透視、二點(diǎn)透視和三點(diǎn)透視,如圖4-33所示。圖4-33透視變換下面討論一點(diǎn)透視。一點(diǎn)透視只有一個(gè)主滅點(diǎn),即投影面與一個(gè)坐標(biāo)軸正交,與另外兩個(gè)坐標(biāo)軸平行,如圖4-33(a)所示。進(jìn)行一點(diǎn)透視投影變換,要很好地考慮圖面布局,以避免三維形體或?qū)ο蟮钠矫嬗蚧蛑本€積聚成點(diǎn)而影響直觀性。具體地說,就是要考慮下列幾點(diǎn):①三維形體或?qū)ο笈c畫面的相對位置;②視距,即視點(diǎn)(投影中心)與投影面的距離;③視點(diǎn)的高度。據(jù)此,假設(shè)視點(diǎn)(投影中心)在坐標(biāo)原點(diǎn),z坐標(biāo)軸

方向與觀察方向重合一致,三維形體或?qū)ο笊夏骋稽c(diǎn)為

P(x,y,z),一點(diǎn)透視變換后在投影面(觀察平面)UO′V上的對應(yīng)點(diǎn)為P′(x′,y′,z′),投影面與z軸垂直,且與視點(diǎn)的距離為d,z軸過投影面窗口的中心,窗口是邊長為2S的正方形,如圖4-34所示。圖4-34一點(diǎn)透視變換根據(jù)相似三角形對應(yīng)邊成比例的關(guān)系,有(4-34)利用齊次坐標(biāo),與二維幾何變換類似,將該過程寫成變換矩陣的形式為(4-35)將式(4-35)右邊相乘的結(jié)果進(jìn)行齊次坐標(biāo)的規(guī)范化后,得式(4-35)與式(4-34)的結(jié)果相一致。故式(4-35)即為一點(diǎn)透視變換,當(dāng)然也可以作為圖像的透視變換。一般,對于視點(diǎn)不在原點(diǎn),投影平面是任意平面的情況,一點(diǎn)透視變換的矩陣可以用一個(gè)4×4的矩陣表示。根據(jù)式(4-35)求出它的逆變換后,可以用OpenCV編寫實(shí)現(xiàn)圖像透視變換的程序,詳細(xì)內(nèi)容請參考有關(guān)文獻(xiàn)。

4.7.2其他變換

如前所述,齊次坐標(biāo)為確定各種基本變換和復(fù)合變換提供了一種簡單的方法。然而,圖像處理所需的幾何變換有些無法用簡便的數(shù)學(xué)公式來表達(dá),此外,所需幾何變換經(jīng)常要從對實(shí)際圖像的測量中獲得,因此更希望用這些測量結(jié)果而不是函數(shù)形式來描述幾何變換。圖像幾何變換的一個(gè)重要應(yīng)用是消除由于攝像機(jī)導(dǎo)致的數(shù)字圖像的幾何畸變。在圖像采集、處理、傳輸和顯示過程中,由于光電成像系統(tǒng)(例如光學(xué)系統(tǒng)的像差等)或目標(biāo)本身等所導(dǎo)致的成像系統(tǒng)中的像與目標(biāo)之間的不相似現(xiàn)象,稱作幾何畸變(幾何失真或變形),如圖4-35所示。通過計(jì)算機(jī)圖像處理系統(tǒng)將幾何失真的圖像恢復(fù)到正常狀態(tài),即為圖像畸變的幾何校正。圖4-35圖像的畸變對攝像機(jī)拍攝的有幾何畸變的圖像進(jìn)行幾何校正時(shí),首先應(yīng)將一個(gè)矩形柵格目標(biāo)數(shù)字化并顯示出來。因?yàn)閿z像機(jī)中有幾何變形,所顯示的圖案不會(huì)是準(zhǔn)確的矩形,因此所求幾何變換應(yīng)能使其柵格圖案再次被復(fù)原為準(zhǔn)確的矩形,從而修正了攝像機(jī)產(chǎn)生的畸變。采用同樣的幾何變換可用于校正同一攝像機(jī)生成的數(shù)字化圖像(假定畸變與景物無關(guān)),由此可得到不產(chǎn)生畸變的圖像。

1.非矩形像素坐標(biāo)的轉(zhuǎn)換

當(dāng)需要從數(shù)字圖像中得到定量的空間測量數(shù)據(jù)時(shí),幾何校正被證明是十分重要的。衛(wèi)星或航空遙感得到的圖像均有相當(dāng)嚴(yán)重的幾何變形,需要先經(jīng)過幾何校正后,才能對其內(nèi)容做出解釋。一些圖像系統(tǒng)使用非矩形的像素坐標(biāo),例如極坐標(biāo)、柱坐標(biāo)和球面坐標(biāo)等,用普通的顯示設(shè)備觀察這些圖像時(shí),必須先對它們進(jìn)行校正,也就是說,將其轉(zhuǎn)換為矩形像素坐標(biāo)。例如,在油(水)井套管缺陷識別中,有時(shí)需要將極坐標(biāo)系中的內(nèi)窺鏡圖像(圖4-36)轉(zhuǎn)換為直角坐標(biāo)系中的圖像(圖4-37),然后進(jìn)行處理與分析。圖4-36極坐標(biāo)系中的內(nèi)窺鏡圖像圖4-37轉(zhuǎn)換為直角坐標(biāo)系中的圖像

2.圖像錯(cuò)切

圖像錯(cuò)切實(shí)際上是平面景物在投影平面上的非垂直投影。錯(cuò)切可以使圖像中的圖形產(chǎn)生扭變,一般來講,圖像錯(cuò)切可以分為水平方向錯(cuò)切和垂直方向錯(cuò)切兩種形式。

水平方向錯(cuò)切的表達(dá)式為(4-36)式中,(x,y)為原圖像中像素點(diǎn)的坐標(biāo);(x′,y′)為變換后的像素點(diǎn)坐標(biāo);dx為錯(cuò)切系數(shù)。同理,可以得到垂直方向錯(cuò)切的表達(dá)式:(4-37)用式(4-36)對圖4-38(a)所示的Lena圖像進(jìn)行dx=0.5的錯(cuò)切圖像如圖4-38(b)所示。由圖4-38(b)可以看出,錯(cuò)切之后原圖像的像素排列方向發(fā)生改變。與前述圖像旋轉(zhuǎn)不同,在圖像錯(cuò)切中,x方向與y方向獨(dú)立變化。圖4-38水平方向錯(cuò)切示例

3.圖像卷繞

圖像卷繞是通過指定一系列控制點(diǎn)的位移來定義空間變換的圖像變形的處理技術(shù),非控制點(diǎn)的位移則通過控制點(diǎn)進(jìn)行插值處理。一般情況下,由控制點(diǎn)將圖像分成若干多邊形區(qū)域,然后在各個(gè)變形區(qū)域使用雙線性插值函數(shù)來完成非控制點(diǎn)的填充。在圖像拼接等研究領(lǐng)域,將拼接圖像卷繞至柱面并對拼接后的圖像進(jìn)行融合處理以得到柱面全景圖是非常必要的。圖像卷繞操作一般包括控制點(diǎn)選擇及插值處理兩個(gè)部分,其處理過程如圖4-39所示。圖4-39圖像卷繞示例圖幾何變換的另一個(gè)應(yīng)用是對相似的圖像進(jìn)行配準(zhǔn)以便進(jìn)行圖像比較,典型的應(yīng)用是利用圖像相減來檢測運(yùn)動(dòng)或變化。有時(shí),為便于解釋需要將圖像以另一種樣式表示,這時(shí)也會(huì)用到幾何變換。另外,地圖繪制中的圖像投影也會(huì)用到幾何變換,例如,在利用從宇宙飛船上傳回來的圖像拼成地球、月球及行星的航拍鑲嵌地圖時(shí),就必須用幾何變換。有關(guān)這些變換及其應(yīng)用的詳細(xì)內(nèi)容請參閱書后的參考文獻(xiàn)。

4.8應(yīng)用實(shí)例——幾何畸變的校正

下面以圖像幾何畸變校正為例,介紹圖像幾何變換的應(yīng)用。由于幾何畸變影響圖像的質(zhì)量,給進(jìn)一步的處理

與分析帶來困難,而且一些非線性畸變(如廣角鏡頭的徑向畸變)用簡單方法難以消除,因此人們提出了許多進(jìn)行幾何畸變校正的方法。幾何畸變及其校正的基本過程如圖4-40所示。圖4-40幾何畸變及其校正示意圖畸變圖像幾何校正的主要步驟有建立校正函數(shù)、對圖像中的像素逐個(gè)進(jìn)行幾何變換以及灰度重采樣等,其流程如圖4-41所示。幾何畸變校正包括兩個(gè)關(guān)鍵的內(nèi)容:①圖像空間像素坐標(biāo)的幾何變換——空間變換;②變換后的標(biāo)準(zhǔn)圖像空間的各像素灰度值的計(jì)算——灰度值計(jì)算。圖4-41幾何畸變校正的流程圖任何幾何失真都可以由非失真坐標(biāo)系(x,y)變換到失真坐標(biāo)系(u,v)的方程來定義。方程的一般形式為(4-38)式中:gu(x,y)和gv(x,y)表示產(chǎn)生幾何畸變圖像的兩個(gè)空間變換。在透視畸變的情況下,變換是線性的,gu(x,y)和gv(x,y)可寫為(4-39)若知道gu(x,y)和gv(x,y)的解析表達(dá)式,則可以用其反變換恢復(fù)理想的圖像。但實(shí)際應(yīng)用中通常無法知道其解析表達(dá)式,為此,只能通過在輸入圖像(畸變圖像)和輸出圖像(校正圖像)上找一些位置已知的點(diǎn)(稱為約束對應(yīng)點(diǎn)),然后,利用這些點(diǎn)建立兩幅圖像間其他像素空間位置的對應(yīng)關(guān)系,從而建立起函數(shù)關(guān)系式,將失真圖像的坐標(biāo)系(u,v)變換到標(biāo)準(zhǔn)圖像坐標(biāo)系(x,y),以實(shí)現(xiàn)失真圖像按標(biāo)準(zhǔn)圖像的幾何位置校正,使失真圖中的每一像點(diǎn)都可以在標(biāo)準(zhǔn)圖中找到對應(yīng)像點(diǎn)。具體的實(shí)現(xiàn)步驟是:

(1)利用控制點(diǎn)對圖像數(shù)據(jù)建立一個(gè)模擬幾何畸變的數(shù)學(xué)模型,以建立畸變圖像空間與標(biāo)準(zhǔn)空間的對應(yīng)關(guān)系;

(2)用這種對應(yīng)關(guān)系把畸變空間中的全部元素變換到標(biāo)準(zhǔn)空間中去。

在圖像的幾何畸變校正中,需要對輸入的畸變圖像進(jìn)行重采樣,以便得到消除了幾何畸變的圖像。重采樣的方法有直接成圖法和間接成圖法,如圖4-42所示。圖4-42重采樣的直接成圖法和間接成圖法

1.直接成圖法

從畸變圖像陣列出發(fā),按行列的順序依次對每個(gè)畸變圖像的像素位置(u,v)求其在標(biāo)準(zhǔn)圖像空間中的正確位置:(4-40)式中:fx(u,v)、fy(u,v)為直接校正畸變函數(shù)。并把畸變圖像的像素亮度值g(u,v)移到該正確的位置上,即g(u,v)→f(x,y)。

2.間接成圖法(重采樣成圖法)

間接成圖法首先從空白的輸出圖像陣列(校正后的圖像)出發(fā)建立空間轉(zhuǎn)換關(guān)系,即式(4-38),然后把由式(4-38)算出的畸變圖像點(diǎn)位上的亮度值取出填回到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論