摘 要:OpenCV是近年來(lái)新出現(xiàn)的并逐漸普及的開(kāi)源的計(jì)算機(jī)視覺(jué)研究工具,利用其包含的豐富的函數(shù)庫(kù)可以方便地進(jìn)行圖像的處理。本文較為詳細(xì)地介紹了圖像處理的過(guò)程,并且給出了用C++語(yǔ)言進(jìn)行程序編寫(xiě)的實(shí)現(xiàn)代碼。
關(guān)鍵詞:OpenCV;圖像處理;C++
中圖分類號(hào):TP391.41
1 圖像的加載
圖像的加載過(guò)程為:調(diào)用攝像頭;逐幀加載圖像;圖像的顯示。
調(diào)用攝像頭的過(guò)程,我們用下面這段程序來(lái)實(shí)現(xiàn):
攝像頭啟動(dòng)后,自動(dòng)采集圖像,不同類型的圖像內(nèi)部結(jié)構(gòu)不同,需要根據(jù)圖像的結(jié)構(gòu)采用不同的方法將圖像文件中的數(shù)據(jù)讀入內(nèi)存。在窗口中顯示出加載的圖像,主要由函數(shù)cvNamedWindow()來(lái)實(shí)現(xiàn),這個(gè)函數(shù)也是一個(gè)高層調(diào)用接口,由HighGUI庫(kù)提供,它用于在屏幕上創(chuàng)建一個(gè)窗口,將被顯示的圖像包含于該窗口中。我們用下面這段程序來(lái)實(shí)現(xiàn)加載和顯示圖像的過(guò)程:
2 圖像的預(yù)處理
2.1 光線補(bǔ)償。在攝像頭的捕捉過(guò)程中,可能會(huì)存在光線不平衡,這影響了對(duì)特征的提取。
考慮到背景模型對(duì)光線變化比較敏感。在有室外光照、光潔地板和金屬設(shè)備的室內(nèi)場(chǎng)景中,需要對(duì)攝像頭捕捉的圖像序列進(jìn)行光線補(bǔ)償。
2.2 平滑處理。圖像在采集、傳輸、處理和保存的過(guò)程中,必然會(huì)受到隨機(jī)擾動(dòng)和各種限制的影響,由此將產(chǎn)生各種噪聲和失真,因此需要對(duì)圖像進(jìn)行平滑處理。
OpenCV中提供了圖像濾波函數(shù):
2.3 灰度化。彩色圖像由于其信息容量比灰度圖像大,因此處理難度大、速度慢,而且在識(shí)別一般圖像的過(guò)程中,灰度圖像所含的信息量已經(jīng)足夠,因此先將彩色圖像轉(zhuǎn)換為灰度圖像。灰度圖像與黑白單色圖像的區(qū)別是灰度圖像加上了顏色深度的概念,單純的看,灰度圖也是黑白的,就像黑白電視顯示的圖像一樣,但是點(diǎn)與點(diǎn)之間黑的程度是不一樣的,這就是深度即灰度,一般灰度圖像分為256 級(jí)。設(shè)彩色圖像某像素點(diǎn)顏色值為,根據(jù)
光學(xué)原理分解為紅色(r),綠色(g),藍(lán)色(b)三個(gè)分量,則灰度值為:
將彩色圖像中的所有的點(diǎn)經(jīng)過(guò)上式轉(zhuǎn)變后,該圖像轉(zhuǎn)變成灰度圖像,各像素點(diǎn)的灰度值在(0-255)范圍內(nèi),其中0為黑色,255 為白色。
這個(gè)轉(zhuǎn)換過(guò)程可以用OpenCV中的函數(shù)來(lái)實(shí)現(xiàn),這個(gè)函數(shù)的原型為:
2.4 二值化(閾值化)。圖像閾值化分割是一種最常用,同時(shí)也是最簡(jiǎn)單的圖像分割方法,它特別適用于目標(biāo)和背景占據(jù)不同灰度級(jí)范圍的圖像。它不僅可以極大地壓縮數(shù)據(jù)量, 而且也大大簡(jiǎn)化了分析和處理步驟。因此,在很多情況下,它是進(jìn)行圖像分析、特征提取與模式識(shí)別之前的必要的圖像預(yù)處理過(guò)程。圖像閾值化的目的是按照灰度級(jí),對(duì)像素集合進(jìn)行一個(gè)劃分,得到的每個(gè)子集形成一個(gè)與現(xiàn)實(shí)景物相對(duì)應(yīng)的區(qū)域,各個(gè)區(qū)域內(nèi)部具有一致的屬性,而相鄰區(qū)域布局有這種一致屬性。這樣的劃分可以通過(guò)從灰度級(jí)出發(fā)選取一個(gè)或多個(gè)閾值來(lái)實(shí)現(xiàn)。
最常見(jiàn)的閾值分割方法是固定閾值分割,OpenCV提供了這方面的函數(shù),如下所示:
3 結(jié)束語(yǔ)
本文介紹了基于OpenCV的圖像處理并給出了實(shí)例,利用OpenCV中的函數(shù)使圖像處理問(wèn)題變得很簡(jiǎn)單,具有很強(qiáng)的實(shí)用價(jià)值。而且OpenCV免費(fèi),源代碼公開(kāi),其必將成為圖像視頻處理領(lǐng)域的強(qiáng)有力的工具。
參考文獻(xiàn):
[1]于仕琪,劉瑞禎.學(xué)習(xí)OpenCV(中文版)[M].北京:清華大學(xué)出版社,2009.
[2]朱虹.數(shù)字圖像處理基礎(chǔ)[M].北京:北京科學(xué)出版社,2005.
[3]劉潔,馮貴玉,張汗靈.一種圖形處理和計(jì)算機(jī)視覺(jué)的開(kāi)發(fā)工具[J].計(jì)算機(jī)仿真,2006(11):305-307.
[4]阮秋琦.數(shù)字圖像處理學(xué)[M].北京:電子工業(yè)出版社,2007.
作者簡(jiǎn)介:劉海波(1992.10-),男,江蘇鹽城人,本科,研究方向:測(cè)控技術(shù)。
作者單位:東南大學(xué) 儀器科學(xué)與工程學(xué)院,南京 210096