




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章數(shù)字圖像處理基礎(chǔ)2.1圖像數(shù)字化技術(shù)2.2
色度學基礎(chǔ)與顏色模型2.3數(shù)字圖像類型2.4圖像文件格式2.5OpenCV編程簡介
2.1圖像數(shù)字化技術(shù)
圖像的數(shù)字化包括采樣和量化兩個過程。設(shè)連續(xù)圖像f(x,y)經(jīng)數(shù)字化后,可以用一個離散量組成的矩陣g(即二維數(shù)組)來表示:
矩陣g中的每一個元素稱為像元、像素或圖像元素。而f(i,j)代表(i,j)點的灰度值,即亮度值。對式(2-1)有如下幾點說明:
(1)由于f(i,j)代表該點圖像的光強度,而光是能量的一種形式,故f(i,j)必須大于零,且為有限值,即0<f(i,j)<∞。
(2)數(shù)字化采樣一般是按正方形點陣取樣的,除此之外還有三角形點陣、正六邊形點陣取樣。圖2-1所示為正方形和正六邊形采樣網(wǎng)格。
(3)式(2-1)用f(i,j)的數(shù)值表示(i,j)位置點上灰度值的大小,只反映了黑白灰度的關(guān)系,若為彩色圖像,各點的數(shù)值還應當反映色彩的變化,可用f(i,j,λ)表示,其中λ是波長。若為運動圖像(視頻),還應是時間t的函數(shù),即可表示為f(i,j,λ,t)。
圖2-1采樣網(wǎng)格
2.1.1采樣
圖像在空間上的離散化稱為采樣,也就是用空間上部分點的灰度值代表圖像,這些點稱為采樣點。由于圖像是一種二維分布的信息,為進行采樣操作,需要先將二維信號變?yōu)橐痪S信號,再對一維信號完成采樣。具體做法是,先沿垂直方向按一定間隔從上到下順序地沿水平方向直線掃描,取出各水平行上灰度值的一維掃描,而后再對一維掃描線信號按一定間隔采樣得到離散信號。即先沿垂直方向采樣,再沿水平方向采樣,分兩個步驟完成采樣操作。對于運動圖像(即時間域上的連續(xù)圖像),需先在時間軸上采樣,再沿垂直方向采樣,最后再沿水平方向采樣,分三個步驟完成采樣操作。
對一幅圖像采樣時,若每行(即橫向)像素為M個,每列(即縱向)像素為N個,則圖像大小為M×N個像素。
在采樣時,采樣點間隔的選取非常重要,它決定了采樣后圖像的質(zhì)量,即忠實于原圖像的程度。采樣間隔的大小選取要依據(jù)原圖像中包含的細微變化程度來決定。一般,圖像中細節(jié)越多,采樣間隔應越小。
根據(jù)一維采樣定理,若一維信號g(t)的最大頻率為ω,以
T≤1/(2ω)為間隔進行采樣,則能夠根據(jù)采樣結(jié)果g(iT)(i=…,-1,0,1,…)完全恢復g(t),即
式中
采樣示意圖如圖2-2所示。
圖2-2-采樣示意圖
2.1.2-量化
模擬圖像經(jīng)過采樣后,在空間上離散化為像素。但采樣所得的像素值(即灰度值)仍是連續(xù)量。把采樣得到的各像素的灰度值從模擬量到離散量的轉(zhuǎn)換稱為圖像灰度的量化。圖
2-3(a)說明了量化過程。若連續(xù)灰度值用z來表示,對于滿足zi≤z≤zi+1的z值,都量化為整數(shù)qi。qi稱為像素的灰度值。z與qi的差稱為量化誤差。像素值量化后一般用一個字節(jié)(8位)來表示。如圖2-3(b)所示,把黑—灰—白的連續(xù)變化的灰度值,量化為0~255共256級。
圖2-3量化示意圖
將連續(xù)灰度值量化為灰度級有兩種方法,一種是等間隔量化(也叫均勻量化或線性量化),另一種是非等間隔量化(也叫非均勻量化)。等間隔量化就是簡單地把采樣值的灰度范圍等間隔地分割并進行量化。對于像素灰度值在黑—白范圍較均勻分布的圖像,其量化誤差較小。
若用均勻量化方法對像素灰度值分布不均勻的圖像進行量化,則量化誤差較大。為了減小量化誤差,可采用非均勻量化方法。非均勻量化是指依據(jù)一幅圖像灰度值分布的概率密度函數(shù),按總量化誤差最小的原則來進行量化。具體做法是對圖像中像素灰度值頻繁出現(xiàn)的灰度值范圍,取小的量化間隔,而對像素灰度值極少出現(xiàn)的范圍,取較大的量化間隔。
2.1.3采樣與量化參數(shù)的選擇
在對一幅圖像進行采樣時,行、列的采樣點與量化時每個像素量化的級數(shù),既影響數(shù)字圖像的質(zhì)量,也影響數(shù)據(jù)量的大小。假定圖像取M×N個樣點,每個像素量化后的灰度級為Q(一般Q總是取為2的整數(shù)冪,即Q=2k),則存儲一幅數(shù)字圖像所需的二進制位數(shù)b為
字節(jié)數(shù)為
對于一幅圖像,當量化級數(shù)Q一定時,采樣點數(shù)M×N對圖像質(zhì)量有顯著的影響。如圖2-4所示,采樣點數(shù)越多,圖像質(zhì)量越好;當采樣點數(shù)減少時,圖中的塊狀效應逐漸明顯。同理,當圖像采樣點數(shù)一定時,采用不同量化級數(shù)的圖像質(zhì)量也不同。如圖2-5所示,量化級數(shù)越多,圖像質(zhì)量越好;量化級數(shù)越少,圖像質(zhì)量越差。量化級數(shù)最小的極端情況就是二值圖像,此時圖像出現(xiàn)假輪廓。
圖2-4不同采樣點數(shù)對圖像質(zhì)量的影響
圖2-5不同量化級數(shù)對圖像質(zhì)量的影響
一般,當限定數(shù)字圖像的大小時,采用如下原則,可得到質(zhì)量較好的圖像:
(1)對緩變的圖像,應該細量化、粗采樣,以避免出現(xiàn)假輪廓;
(2)對細節(jié)豐富的圖像,應細采樣、粗量化,以避免出現(xiàn)模糊(混疊)。
2.1.4圖像數(shù)字化設(shè)備
1.圖像數(shù)字化設(shè)備的組成
如前所述,采樣和量化是數(shù)字化圖像的兩個基本過程。即把圖像劃分為若干圖像元素(像素)并給出它們的地址(采樣);度量每一像素的灰度,并把連續(xù)的度量結(jié)果量化為整數(shù)(量化);最后將這些整數(shù)結(jié)果寫入存儲設(shè)備。為完成這些功能,圖像數(shù)字化設(shè)備必須包含以下五個部分:
(1)采樣孔:使數(shù)字化設(shè)備實現(xiàn)對特定圖像元素的觀測,不受圖像其他部分的影響。
(2)圖像掃描機構(gòu):使采樣孔按照預先定義的方式在圖像上移動,從而按順序觀測每一個像素。
(3)光傳感器:通過采樣檢測圖像的每一個像素的亮度,通常采用CCD陣列。
(4)量化器:將光傳感器輸出的連續(xù)量轉(zhuǎn)化為整數(shù)值。典型的量化器是A/D轉(zhuǎn)換電路,它產(chǎn)生一個與輸入電壓或電流成比例的數(shù)值。
(5)輸出存儲裝置:將量化器產(chǎn)生的顏色值(灰度或彩色)按某種格式存儲。
2.圖像數(shù)字化設(shè)備的性能
雖然各種圖像數(shù)字化設(shè)備的組成各不相同,但可從如下幾個方面比較和評價其性能:
(1)像素大小。采樣孔的大小和相鄰像素的間距是兩個重要的性能指標。如果數(shù)字化設(shè)備是在一個放大率可變的光學系統(tǒng)上,則采樣點大小和采樣間距也是可變的。
(2)量化級數(shù)(顏色數(shù))。量化級數(shù)即將圖像量化為多少級灰度,它也是重要的參數(shù)。圖像的量化級數(shù)經(jīng)歷了早期的黑白二值圖像、灰度圖像、彩色及真彩色圖像。顯然,量化
級數(shù)越高,存儲像素信息需要的字節(jié)數(shù)越多。
(3)圖像大小。圖像大小即數(shù)字化設(shè)備所允許的最大輸入圖像尺寸。
(4)線性度。對光強進行數(shù)字化時,灰度正比于圖像亮度的精確程度用線性度表示。非線性的數(shù)字化設(shè)備會影響數(shù)字圖像的質(zhì)量。
(5)噪聲。數(shù)字化設(shè)備產(chǎn)生的噪聲是圖像質(zhì)量下降的根源之一。例如,數(shù)字化一幅灰度值恒定的圖像,雖然輸入亮度是一個常量,但是數(shù)字化設(shè)備中的固有噪聲卻會使圖像的灰度發(fā)生變化。因此,應當使噪聲小于圖像內(nèi)的反差點(即對比度)。
2.2
色度學基礎(chǔ)與顏色模型
2.2.1色度學基礎(chǔ)灰度圖像的像素值是光強,即二維空間變量的函數(shù)f(x,y)。如果把灰度值看成是二維空間變量和光譜變量的函數(shù)f(x,y,λ),即多光譜圖像,那么它也就是通常所說的彩色圖像。計算機顯示一幅彩色圖像時,每一個像素的顏色是通過3種基本顏色(即紅、綠、藍)合成的,即最常見的RGB顏色模型。
1.三色原理
在人的視覺系統(tǒng)中存在著桿狀細胞和錐狀細胞兩種感光細胞。桿狀細胞為暗視器官,主要功能是辨別亮度信息;錐狀細胞是明視器官,在照度足夠高時起作用,其功能是分辨顏色。錐狀細胞將電磁光譜的可見部分分為3個波段:紅、綠、藍。故這3種顏色被稱為三基色,圖2-6表示了人類視覺系統(tǒng)3類錐狀細胞的光譜敏感曲線。
圖2-6人類感光細胞的敏感曲線
2.顏色的3個屬性
顏色是外界光刺激作用于人的視覺器官而產(chǎn)生的主觀感覺。顏色分兩大類:非彩色和彩色。非彩色是指黑色、白色和介于這二者之間深淺不同的灰色,也稱為無色系列。彩色是指除了非彩色以外的各種顏色。顏色有3個基本屬性,分別是色調(diào)、飽和度和亮度。
2.2.2-顏色模型
視覺顏色模型是指與人眼對顏色感知的視覺模型相似的模型,它主要用于色彩的理解。常見的HSI模型、HSV模型和HSL模型均屬此類。
1.RGB模型
RGB模型采用CIE規(guī)定的三基色構(gòu)成表色系統(tǒng)。自然界的任一顏色都可通過這三基色按不同比例混合而成。由于RGB模型將三基色同時加入產(chǎn)生新的顏色,所以它是一個加色系統(tǒng)。
RGB顏色模型可用一個三維空間中的單位立方體來表示,如圖2-7所示。圖2-7RGB顏色模型單位立方體
2.CIEXYZ模型
采用RGB模型表示各種不同顏色時,存在有負值表示顏色的情況。為此,CIE在1931年制定了XYZ模型,其中,X、Y、Z分別表示3種標準原色。對于可見光中的任一種顏色F,可以找到一組權(quán)值,使得下式成立:
式中:x、y、z稱為標準計色系統(tǒng)下的色度坐標,可表示為
顯然,x+y+z≡1。
x、y、z中,只有兩個是相互獨立的,因此,表示某種顏色只需兩個坐標即可。據(jù)此,CIE制定了如圖2-8所示的色度圖。圖中橫軸代表標準紅色分量x,縱軸代表標準綠色分量y,標準藍色分量z=1-(x+y)。
圖2-8CIEXYZ色度圖
CIEXYZ模型與RGB模型之間可以相互轉(zhuǎn)換,其轉(zhuǎn)換公式為
3.Lab顏色模型
Lab顏色模型是CIE于1976年制定的等色空間。Lab顏色由亮度或光亮度分量L和a、b兩個色度分量組成。其中,a在正向的數(shù)值越大表示越紅,在負向的數(shù)值越大則表示越綠;b在正向的數(shù)值越大表示越黃,在負向的數(shù)值越大則表示越藍。Lab顏色與設(shè)備無關(guān),無論使用何種設(shè)備(如顯示器、打印機、計算機或掃描儀)創(chuàng)建或輸出圖像,該模型均能生成一致的顏色。
Lab模型與XYZ模型的轉(zhuǎn)換公式為
式中:X0、Y0、Z0為標準白色對應的X、Y、Z值。
4.HSI顏色模型
HSI顏色模型由美國色彩學家孟塞爾(H.A.Munseu)于1915年提出,它反映了人的視覺系統(tǒng)感知色彩的方式,即以色調(diào)、飽和度和強度3種基本特征量來感知顏色。
色調(diào)H(Hue):與光波的波長有關(guān),它表示人的感官對不同顏色的感受,如紅色、綠色、藍色等,它也可表示一定范圍的顏色,如暖色、冷色等。
飽和度S(Saturation):表示顏色的純度。純光譜色是完全飽和的,加入白光會稀釋飽和度。飽和度越大,顏色看起來就會越鮮艷,反之亦然。
強度I(Intensity):對應成像亮度和圖像灰度,是顏色的明亮程度。
HSI模型的建立基于兩個重要的事實:
(1)I分量與圖像的彩色信息無關(guān);
(2)H和S分量與人感受顏色的方式是緊密相連的。
這些特點使得HSI模型非常適合彩色特性檢測與分析。
若將RGB單位立方體沿主對角線進行投影,則可得到圖2-9(a)所示的六邊形。投影后原來沿主對角線的灰色都投影到中心白色點,而紅色點(1,0,0)則位于右邊的角上,綠色點(0,1,0)則位于左上角,藍色點(0,0,1)則位于左下角。
圖2-9(b)是HSI顏色模型的雙六棱錐表示,I是強度軸,色調(diào)H的角度范圍為[0,2π],其中,純紅色的角度為0,純綠色的角度為2π/3,純藍色的角度為4π/3。飽和度S是顏色空間任一點距I軸的距離。當然,若用圓表示RGB模型的投影,則HSI色度空間為雙圓錐3D表示。
注意:當強度I=0時,色調(diào)H、飽和度S無定義;當S=0時,色調(diào)H無定義。
圖2-9HSI顏色模型
HSI模型也可用如圖2-10所示的圓柱來表示。若將其展開,并按圖2-11進行定義,可得到HSI調(diào)色板。圖2-10圓柱HSI模型
圖2-11HSI調(diào)色板
由式(2-13)~式(2-15)計算出的r、g、b值的范圍為[0,1],為便于理解與顯示,常將其轉(zhuǎn)換為[0,255]:
例如,有一像素的顏色為RGB(100,150,200),求其對應H、S、I值的步驟如下:
(1)歸一化處理:
(2)用式(2-9)計算h,由于b>g,故
(3)計算s:
(4)計算H,S,I:
再如,若一像素的顏色為HSI(210°,33.3,150),求其對應R、G、B值的步驟如下:
(1)計算h,s,i:
(2)由于h∈[2π/3,4π/3),故
(3)計算R,G,B:
不同應用系統(tǒng)采用的HSI、HSV、HLS模型不完全一樣,表2-1是這三種模型在常見系統(tǒng)中的應用。
5.CMY顏色模型
CMY模型也是一種常用的顏色表示方式。印刷工業(yè)常采用CMY色彩系統(tǒng),它是通過顏色相減來產(chǎn)生其他顏色的,所以,稱這種方式為減色合成法(SubtractiveColorSynthesis)。
CMY與RGB的轉(zhuǎn)換關(guān)系為
式中:C、M、Y,R、G、B均歸一化到[0,1]范圍。
6.YUV電視信號彩色坐標系統(tǒng)
彩色電視信號傳輸時,將RGB改組成亮度信號和色度信號。PAL制式將RGB三色信號改組成YUV信號,其中,Y表示亮度信號,U、V表示色差信號。
RGB與YUV之間的對應關(guān)系如下:
7.YCbCr模型
YCbCr模型充分考慮了人眼視覺特性,可降低彩色數(shù)字圖像存儲量,是一種適合于彩色圖像壓縮的模型。
YCbCr模型與YUV模型一樣,由亮度Y、色差Cb、色差Cr構(gòu)成。與YUV模型不同的是,在構(gòu)造色差信號時,YCbCr充分考慮了RGB3個分量在視覺感受中的不同重要性。
YCbCr與RGB之間的對應關(guān)系如下:
2.2.3顏色變換
1.基本變換
顏色變換模型為
式中:f(x,y)是彩色輸入圖像,g(x,y)是變換或處理后的彩色圖像,T是在空間域上對f的操作。這里,像素值是從彩色空間選擇的3元組或4元組。
顏色變換關(guān)系可用下式表示:
式中:ri、si為f(x,y)和g(x,y)在圖像中任一點的彩色分量值;{T1,T2,…,Tn}為變換函數(shù)集。n的值由顏色模型而定,若選擇RGB模型,則n=3;r1、r2、r3分別表示輸入圖像的紅、綠、藍分量;若選擇CMYK模型,則n=4。
例如,要改進圖像的亮度,可使用
式中:k為改進亮度的常數(shù),且0<k<1。
理論上,式(2-23)可用于任何顏色模型,然而某一特定變換對特定的顏色模型會比較適用。圖2-12為直方圖均衡化處理效果,若采用HSI模型,通過對I進行處理,其結(jié)果正常,而若采用RGB模型分別對3通道進行處理,會產(chǎn)生顏色畸變(偏色)現(xiàn)象。
圖2-12-彩色圖像直方圖均衡化處理效果
2.彩色切片
彩色切片是指通過識別圖像中感興趣的顏色,然后將其作為一個整體從圖像中分離出來。圖2-13(a)的圖像中包含了不同顏色的區(qū)域,利用彩色切片技術(shù)可將黃色區(qū)域分離出來,如圖2-13(b)所示,其余部分均被設(shè)置成灰色。
圖2-13彩色切片效果
如果感興趣的顏色由寬為W,中心在平均值點,且由分量(a1,a2,…,an)構(gòu)成的立方體(或超立方體,n>3)所包圍,則完成彩色切片的變換函數(shù)為
式(2-27)使立方體范圍內(nèi)的顏色保持為指定的顏色,從而突出了感興趣的顏色。圖2-13(b)即為用式(2-27)進行顏色切片處理得到的效果。
當然,也可以采用球體實現(xiàn)彩色切片變換:
式(2-28)中,顏色范圍由半徑為R0的球體(或超球體,n>3)所包圍。
2.3數(shù)字圖像類型數(shù)字圖像以位圖(Bitmap)的方式進行存儲,位圖也稱為柵格圖像。
2.3.1位圖1.線畫稿線畫稿只有黑白兩種顏色。用掃描儀掃描圖像,當設(shè)置成LineArt格式時,掃描儀用一位顏色模式表示圖像。若樣點顏色為黑,則掃描儀將相應的像素位元置為0,否則置為1。線畫稿適合于由黑白兩色構(gòu)成而沒有灰度陰影的圖像。圖2-14是一幅線畫稿圖。
圖2-14線畫稿圖
2.灰度圖像
灰度圖像像素的灰度級用8位表示,每個像素都是介于黑白之間的256(28=256)種灰度中的一種?;叶葓D像只有濃淡不同的灰色而沒有彩色。常見的黑白照片便包含了黑白之
間的所有灰度色調(diào),其實就是具有256種灰度色域的單色圖像。
3.索引顏色圖像
在24位真彩色出現(xiàn)以前,由于技術(shù)和價格的原因,計算機并未達到處理每像素24位的水平。為此,人們創(chuàng)造了索引顏色(也稱為映射顏色、調(diào)色板)。在這種模式下,預先定義好每種顏色,且可供選用的一組顏色數(shù)最多為256種。一幅索引顏色圖像在圖像文件里定義,當打開該文件時,構(gòu)成該圖像具體顏色的索引值被讀入程序,然后根據(jù)索引值在調(diào)色板中找到對應的顏色。
4.真彩色圖像
“真彩色”是RGB顏色的另一種叫法。從技術(shù)角度考慮,真彩色是指寫到磁盤上的圖像類型,而RGB顏色是指顯示器的顯示模式。RGB圖像的顏色是非映射的,它可以從系統(tǒng)的“顏色表”里自由獲取所需的顏色,這種圖像文件里的顏色直接與PC機上的顯示顏色相對應。在真彩色圖像中,每一個像素由紅、綠和藍3個字節(jié)組成,每個字節(jié)為8位,表示0到255之間的不同的亮度值,這3個字節(jié)組合,可以產(chǎn)生1670萬種不同的顏色.
2.3.2-位圖的有關(guān)術(shù)語
1.像素(Pixel)、點(Dot)和樣點(Sample)
在計算機中,圖像是由顯示器上的許多光點組成的,將顯示在顯示器上的這些點(光的單元)稱為像素。像素的分割常采用正方形網(wǎng)格點陣分割方案,這是因為其像素網(wǎng)格點陣規(guī)范,并易于在圖像輸入、輸出設(shè)備上實現(xiàn)。
2.分辨率
分辨率是指數(shù)字圖像在單位長度內(nèi)所含有的像素數(shù)。與數(shù)字圖像有關(guān)的分辨率有以下幾種類型:
(1)圖像分辨率。
(2)屏幕分辨率。
(3)打印機分辨率。
(4)掃描儀分辨率。
2.4圖像文件格式
2.4.1BMP圖像文件格式BMP(BitMapPicture)文件格式是Windows系統(tǒng)交換圖形、圖像數(shù)據(jù)的一種標準格式。BMP圖像的數(shù)據(jù)由4部分組成,如表2-2所示。
下面兩點需特別注意:
(1)圖像數(shù)據(jù)每一行的字節(jié)數(shù)必須是4的整倍數(shù),否則需要補齊。
(2)BMP文件的數(shù)據(jù)存放是從下到上、從左到右的。也就是說,圖像數(shù)據(jù)是倒置的,讀取BMP文件時,先讀取最下面的數(shù)據(jù),然后依次從下往上讀取數(shù)據(jù)。
DIB(DeviceIndependentBitmap)圖像格式是設(shè)備無關(guān)位圖文件格式,其描述圖像的能力基本與BMP相同,并且能運行于多種硬件平臺,只是文件較大。
2.4.2-其他文件格式
1.TIF圖像文件格式
標記圖像文件格式(TagImageFileFormat,TIF)提供存儲各種信息的完備手段,可以存儲專門的信息而不違反格式宗旨,是目前流行的圖像文件交換標準之一。TIF文件格式是圖像文件格式中最復雜的一種,要求用更多的代碼來控制它,會導致文件讀寫速度慢。TIF文件由文件頭結(jié)構(gòu)、參數(shù)指針表、參數(shù)塊結(jié)構(gòu)和圖像數(shù)據(jù)4部分組成,其中前3部分的說明如表2-3~表2-5所示。
2.GIF圖像文件格式
CompuServe開發(fā)的圖形交換文件格式GI,可在不同的系
統(tǒng)平臺上交流和傳輸。GIF圖像文件采取LZW壓縮算法,存儲效率高,支持多幅圖像定序或覆蓋、交錯多屏幕繪圖以及文本覆蓋。它也是Web上常用的文件格式之一,用于超文本標記語言(HTML)文檔中的索引顏色圖像,但圖像最大不能超過64M,顏色最多為256色。
GIF主要是為數(shù)據(jù)流設(shè)計的一種傳輸格式。換句話說,它具有順序的組織形式。GIF有5個主要部分以固定順序出現(xiàn),所有部分均由一個或多個塊(Block)組成。每個塊第1個字節(jié)中存放標識碼或特征碼標識。這些部分的順序為:文件標志塊、邏輯屏幕描述塊、可選的“全局”色彩表塊(調(diào)色板)、各圖像數(shù)據(jù)塊(或?qū)S玫膲K)以及尾塊(結(jié)束碼)。GIF圖像文件格式如表2-6所示。
3.PBM、PGM、PPM文件
PBM(PortableBitMap)、PGM(PortableGreyMap)、PPM(PortablePixMap)是可交換式位圖(灰度、像素)映射文件格式,通常作為各種圖像格式文件之間的轉(zhuǎn)換平臺。PBM、PGM、PPM和BMP文件一樣,圖像數(shù)據(jù)均不壓縮,但前3者的文件頭信息非常簡單,文件頭以ASCII方式編碼,圖像數(shù)據(jù)以ASCII碼或字節(jié)形式編碼。第4項的第1項是格式標識符,表示圖像的類型及存儲格式;第2至第4項分別為圖像的寬度和高度、圖像顏色可能的最大值和注釋。第4項之后為圖像數(shù)據(jù)。表2-7是PBM、PGM、PPM圖像文件格式的詳細描述。
圖2-15是一個實際的PGM圖像文件,可以看出,PGM格式簡單,用戶讀寫非常容易。圖2-15一個實際的PGM圖像文件
4.PCX文件
PCX文件格式由ZSoft公司設(shè)計。各種掃描儀掃描得到的圖像均能保存成PCX格式。PCX格式支持256種顏色,不如TIF等格式功能強,但結(jié)構(gòu)較簡單,存取速度快,壓縮比適中,適合于一般軟件的使用。
PCX格式支持RGB、索引顏色、灰度和位圖顏色模式,但不支持alpha通道。PCX格式支持RLE壓縮方法,圖像顏色位數(shù)可為1、4、8或24。
5.JPEG圖像格式
JPEG(JointPhotographer’sExpertsGroup,聯(lián)合圖像專家組)格式,是由ISO和CCITT為靜態(tài)圖像所建立的第一個國際數(shù)字圖像壓縮標準。由于JPEG具有高壓縮比和良好的圖像質(zhì)量,被廣泛應用于多媒體和網(wǎng)絡程序中。JPEG和GIF成為HTML語法選用的圖像格式。
JPEG格式支持24位顏色,并保留照片和其他連續(xù)色調(diào)圖像中存在的亮度和色相的顯著和細微變化。
JPEG一般基于DCT變換的順序型模式壓縮圖像。JPEG通過有選擇地減少數(shù)據(jù)來壓縮文件大小。因為它會棄用數(shù)據(jù),故JPEG壓縮為有損壓縮。
2.5OpenCV編程簡介
2.5.1OpenCV簡介OpenCV的第一個預覽版本于2000年在IEEEConferenceonComputerVisionandPatternRecognition公開,并且后續(xù)提供了5個測試版本。2006年發(fā)布OpenCV1.0版,2009年10月發(fā)布OpenCV2.0版,2015年6月發(fā)布OpenCV3.0版,2018年11月發(fā)布OpenCV4.0版。
OpenCV的內(nèi)建模塊功能強大且靈活多樣,這些模塊能夠解決計算機視覺系統(tǒng)中的大多數(shù)問題??梢詫崿F(xiàn)人機互動、物體識別、圖像分割、人臉識別、動作識別、運動跟蹤、機
器人視覺、運動分析、機器視覺、結(jié)構(gòu)分析等各種應用領(lǐng)域的需求。OpenCV提供了合理的編程架構(gòu)、內(nèi)存管理及GPU支持。
OpenCV的內(nèi)建模塊經(jīng)過高度優(yōu)化,以實現(xiàn)多平臺下實時處理應用系統(tǒng)。OpenCV提供的內(nèi)建模塊可粗略分類,如表2-8所示。
2.5.2-OpenCV的安裝與配置
1.OpenCV的安裝
鑒于Code∷Blocks為輕量級跨平臺集成開發(fā)環(huán)境(IDE),本書以64位Windows10操作平臺為例,Code∷Blocks為IDE(對于其他諸如VisualStudio開發(fā)環(huán)境的安裝與配置,
可參考給出的安裝指南進行安裝)進行OpenCV的配置。
用戶首先需從Code∷Blocks官網(wǎng)/downloads/binaries/下載自帶
GCC/G++編譯器和GDB調(diào)試器的mingw安裝版codeblocks-20.03mingw-setup.exe,并安裝到本地磁盤如C:\ProgramFiles\;然后從官網(wǎng)/download/下載跨平臺構(gòu)建工具CMake(安裝文件對應為cmake-3.23.0-rc4-windows-x86_64.msi)并完成安裝;最后從OpenCV網(wǎng)站下載最新版OpenCV4.5.5releasesWindows版文件opencv-4.5.5-
vc14_vc15.exe,雙擊該文件,將其解壓到本地磁盤如C:\OpenCV\,如圖2-16所示。
圖2-16解壓OpenCV文件
解壓后,OpenCV目錄下包含build和sources兩個文件夾,其中build文件夾是已編好的VC++版OpenCV庫文,sources文件夾是OpenCV源代碼文件,因為本書采用
跨平臺編譯器GCC/G++,需在Code∷Blocks環(huán)境下結(jié)合CMake用GCC/G++編譯鏈接以生成需要的靜態(tài)庫文件(.a文件)和動態(tài)鏈接庫文件(.dll文件)。編譯步驟如下:
(1)設(shè)置GCC/G++環(huán)境變量。如圖2-17所示,右鍵單擊“我的電腦”→“屬性”→“高級”→“環(huán)境變量”→“系統(tǒng)變量”,將Code∷Blocks安裝目錄下mingw的bin目錄C:\
ProgramFiles\CodeBlocks\MinGW\bin添加到系統(tǒng)變量Path。
圖2-17添加目錄至系統(tǒng)變量Path
(2)運行CMake生成Code∷Blocks環(huán)境下的OpenCV庫項目文件。如圖2-18所示,在CMake中設(shè)置OpenCV源文件目錄為先前設(shè)定的C:\opencv\sources,自定義編譯生成的庫文件目錄名如C:\opencv\build\x64\mingw,點擊“Configure”選擇目標項目文件類型為“Code∷BlocksMakefiles”,然后選擇“Specifynativecompilers”,在新窗口中指定C/C++對應的編譯器GCC/G++的位置,如C:\ProgramFiles\CodeBlocks\MinGW\bin\gcc.exe和C:\ProgramFiles\CodeBlocks\MinGW\bin\g++.exe。設(shè)定完畢后,再次點擊“Configure”,配置結(jié)束后點擊“Generate”將在C:\opencv\build\x64\mingw目錄下生成Code∷Blocks環(huán)境下的OpenCV庫項目文件OpenCV.cbp。
圖2-18配置生成Code∷Blocks環(huán)境下的OpenCV庫工程文件
(3)在Code∷Blocks環(huán)境下編譯OpenCV庫文件。如圖2-19所示,雙擊OpenCV.cbp在Code∷Blocks下直接載入OpenCV.cbp項目文件,然后選擇“Build”→“Buildandrun”
對OpenCV源代碼進行編譯生成庫文件。產(chǎn)生的靜態(tài)庫文件和動態(tài)鏈接庫文件將分別存儲在C:\opencv\build\x64\mingw目錄下的lib和bin目錄。
圖2-19編譯OpenCV庫文件
除了可以從源代碼直接編譯鏈接生成OpenCV靜態(tài)庫文件和動態(tài)鏈接庫文件外,也可以通過網(wǎng)絡直接下載第三方針對不同操作平臺和開發(fā)工具鏈以構(gòu)建完整的OpenCV
靜態(tài)庫文件和動態(tài)鏈接庫文件,如github開源倉庫/huihut/OpenCV-MinGW-Build就提供了在Windows平臺下用MinGW構(gòu)建的32位和64位,從
OpenCV3.3.1到OpenCV4.5.5(目前最新版)的OpenCV二進制庫文件的打包下載。但在使用時,需要單擊其“Configuration”打開其構(gòu)建的log日志,以查看該版本庫文件使用的工具鏈及操作平臺,如圖2-20所示。由圖2-20可知,該倉庫中的OpenCV-4.5.2-x64版是與Code∷Blocks20.03所匹配的版本。
圖2-20OpenCV-MinGW構(gòu)建日志
2.Code∷Blocks開發(fā)環(huán)境配置
Code∷Blocks20.03開發(fā)環(huán)境配置的目的是告訴Code∷Blocks去什么地方尋找OpenCV的頭文件和庫文件。
若直接編譯,將提示頭文件或庫文件不存在等編譯錯誤,因為當前還未完成OpenCV頭文件和庫文件的配置。具體配置步驟如下:
(1)右鍵單擊新建項目“OpenCVTest”→“Buildoptions”設(shè)置編譯選項,如圖2-21所示。
圖2-21編譯選項設(shè)置
(2)在對話框中,選擇“OpenCVTest”→“Searchdirectories”→“Compiler”→“Add”設(shè)置OpenCV包含文件include路徑名為C:\opencv\build\include,再選擇“Searchdirecto-ries”→“Linker”→“Add”設(shè)置OpenCV庫文件lib路徑名為C:\opencv\build\x64\mingw
\lib,如圖2-22所示。
圖2-22-設(shè)置OpenCV包含文件include和庫文件lib對應路徑
(3)如圖2-23所示,點擊“Linkersettings”,在“Otherlinkeroptions”中添加C:\
opencv\build\x64\mingw\lib文件夾下的所有庫文件名:
圖2-23設(shè)置鏈接庫文件名
(4)完成配置后,為便于創(chuàng)建新的OpenCV項目,可將當前配置好的項目設(shè)為模板。
選擇菜單“File”→“Saveprojectastemplate”,下次新建項目時直接選擇“File”→“New”→“Fromtemplate”即可跳過上述步驟(1)~(3),完成OpenCV項目的配置。
3.測試程序
將測試圖像文件“tigerj.pg”拷貝到OpenCVTest項目文件夾下,在Code∷Blocks中選擇“Build”→“Buildandrun”編譯運行,正確的情況下,可以出現(xiàn)如圖2-24所示的窗口。
圖2-24OpenCV運行環(huán)境的測試
2.5.3OpenCV的數(shù)據(jù)結(jié)構(gòu)
OpenCV4.x中設(shè)計并定義了大量的基本數(shù)據(jù)結(jié)構(gòu),利用這些數(shù)據(jù)結(jié)構(gòu),可以很方便地實現(xiàn)相應的算法。這些數(shù)據(jù)結(jié)構(gòu)主要采用類模板來實現(xiàn),并提供了基本的數(shù)據(jù)屬性和基本
的操作。
1.2維點Point_類模板
2維點Point_類模板定義了公有數(shù)據(jù)成員x和y,重載了+、-、==、!=4個基本的操作,還定義了點乘、叉乘等操作。特別的,這個類還提供了inside函數(shù)來判斷一個點是否在矩形區(qū)域內(nèi)。
2.3維點Point3_類模板
類似于2維點,OpenCV同時提供了Point3_類模板,只不過它是一個3維點(x,y,z)。它的常用類型是:
typedefPoint3_<int>Point3i;
typedefPoint3_<float>Point3f;
typedefPoint3_<double>Point3d
3.尺寸Size_類模板
Size類模板能夠訪問的成員變量是height和
width,還定義了area函數(shù)來求面積,其他的操作基本都是類型轉(zhuǎn)化函數(shù)。它的常用類型是:
typedefSize_<int>Size2i;
typedefSize2iSize;
typedefSize_<float>Size2f
4.矩形Rect
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聯(lián)合國國際合同使用電子通信公約
- 貨物運輸保險合同書
- 舞蹈教師全職崗位聘用合同
- 泉州工程職業(yè)技術(shù)學院《工程美學基礎(chǔ)》2023-2024學年第二學期期末試卷
- 內(nèi)蒙古美術(shù)職業(yè)學院《數(shù)據(jù)挖掘分析課程設(shè)計》2023-2024學年第二學期期末試卷
- 西安電力高等??茖W?!断冗M加工理論》2023-2024學年第二學期期末試卷
- 福州職業(yè)技術(shù)學院《移動媒體營銷》2023-2024學年第二學期期末試卷
- 7《靜夜思》(教學設(shè)計)-2023-2024學年統(tǒng)編版語文一年級下冊
- 青島濱海學院《地圖學與遙感》2023-2024學年第二學期期末試卷
- 紹興文理學院《微處理器原理》2023-2024學年第二學期期末試卷
- 2025年供應鏈管理公司合作項目協(xié)議書
- 2025年度度假村景觀設(shè)計及施工一體化合同
- 《如何規(guī)劃養(yǎng)禽場》課件
- 2024-2025學年云南省昆明市盤龍區(qū)三年級(上)期末數(shù)學試卷(含答案)
- 物業(yè)公司行政人事部職責
- 醫(yī)療健康行業(yè)保密免責協(xié)議書
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 張祖慶祖父的園子教學課件
- 人教版《道德與法治》二年級下冊全冊優(yōu)秀課件
- 小學一年級硬筆書法入門(課堂PPT)
- ARM學習資料.Cortex-M3處理器體系結(jié)構(gòu)
評論
0/150
提交評論