黎廷煒 陳婧
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院 310018)
基于OpenCV的圖像處理系統(tǒng)設(shè)計(jì)
黎廷煒 陳婧
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院 310018)
本文論述基于OpenCV的圖像處理系統(tǒng)的分析、設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。主要功能包括圖像編輯功能;參數(shù)調(diào)整功能;特殊效果功能和工具功能。該圖像處理系統(tǒng)采用開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)OpenCV技術(shù),并基于windows平臺(tái)開(kāi)發(fā)。運(yùn)用MFC設(shè)計(jì)思想,簡(jiǎn)化了軟件的開(kāi)發(fā),提高了系統(tǒng)靈活性并降低了人機(jī)交互難度。
圖像處理系統(tǒng);OpenCV;計(jì)算機(jī)視覺(jué)
計(jì)算機(jī)視覺(jué)指的是使用計(jì)算機(jī)以及相關(guān)的電子設(shè)備模擬生物視覺(jué)的一類科學(xué)。計(jì)算機(jī)視覺(jué)也是一個(gè)快速增長(zhǎng)的致力于分析、修改和對(duì)圖像的高級(jí)識(shí)別的領(lǐng)域[1~2]。它的目標(biāo)是確定攝像機(jī)前發(fā)生了什么和使用它的識(shí)別來(lái)控制電腦和機(jī)器人系統(tǒng),或向人類提供比原來(lái)的相機(jī)圖像信息更多或更高滿意度的圖像[3]。計(jì)算機(jī)視覺(jué)技術(shù)的應(yīng)用領(lǐng)域包括視頻監(jiān)控、生物識(shí)別技術(shù)、汽車(chē)、攝影、電影制作、網(wǎng)頁(yè)搜索、醫(yī)學(xué)、虛擬現(xiàn)實(shí)游戲、新用戶界面等許多方面[4]。
圖像處理又叫數(shù)字圖像處理,主要用于對(duì)工業(yè)相機(jī)、攝像機(jī)、掃描儀等設(shè)備得到圖像分析并根據(jù)需求進(jìn)行處理。包括圖像增強(qiáng)、圖像識(shí)別、邊緣銳化、平滑等。隨著智能手機(jī)和平板電腦等移動(dòng)設(shè)備都配備了攝像頭,以及智能終端的普及,對(duì)圖像處理應(yīng)用的需求正在增加[5]。
本文主要分析圖像處理系統(tǒng)的運(yùn)行流程,圖像處理系統(tǒng)的工作流程、原理還有實(shí)現(xiàn)過(guò)程,以及如何實(shí)現(xiàn)基于OpenCV的圖像處理系統(tǒng)。包括圖像圖像的直方圖顯示,圖像的尺寸調(diào)整,圖像旋轉(zhuǎn),調(diào)整圖像亮度、對(duì)比度和色相,調(diào)整Gamma值,圖像降噪、模糊銳化,CCD死點(diǎn)檢測(cè)等功能。以及如剪切圖像時(shí)的操作方式,調(diào)整基本參數(shù)時(shí)的操作等人機(jī)交互界面及處理。
圖像處理系統(tǒng)是由AppWizard生成的一個(gè)SDI工程IMAGEPROCESS,使用AppWizard向?qū)?chuàng)建并生成一系列框架文件。所以該系統(tǒng)框架是一個(gè)MFC框架。從MFC框架類繼承來(lái)的四個(gè)類CIMAGEPROCESSApp、CIMAGEPROCESSDoc、CIMAGEPROCESSView、CMainFrame 主要實(shí)現(xiàn)了圖像處理系統(tǒng)的框架以及框架內(nèi)部的各種邏輯和消息響應(yīng)機(jī)制。
模塊劃分是對(duì)業(yè)務(wù)流程圖的詳細(xì)注釋,該圖像處理系統(tǒng)主要分為四大子模塊,分別是:
(1)基礎(chǔ)操作模塊:該模塊主要是實(shí)現(xiàn)了系統(tǒng)中最基礎(chǔ)的操作圖像文件的功能,包括將圖像文件的打開(kāi)、保存處理后的圖像和另存為新地址等操作。
(2)圖像處理模塊:該模塊實(shí)現(xiàn)了圖像的主要的各種處理操作,這些操作主要分為:①圖像編輯模塊;②圖像參數(shù)調(diào)整模塊;③特殊效果模塊三個(gè)子模塊。圖像編輯模塊分為圖像剪切、旋轉(zhuǎn)、擴(kuò)展等操作,圖像參數(shù)調(diào)整模塊分為調(diào)整色相、色調(diào)、Gamma值等操作,特殊效果模塊分為反色特效、黑白特效、反轉(zhuǎn)片特效等操作。
(3)直方圖顯示模塊:該模塊作用是顯示圖像的直方圖。
(4)其他工具模塊:該模塊是向用戶提供另外的操作工具,包括CCD死點(diǎn)檢測(cè)、文字插入工具和添加水印工具。
圖像曝光補(bǔ)償又叫光照補(bǔ)償,在本圖像處理系統(tǒng)中使用的是“參考白”光照補(bǔ)償。其中用圖像亮度的前5%最亮的像素的平均值ave作為“參考白”,對(duì)于各個(gè)像素,按系數(shù)補(bǔ)償。得出補(bǔ)償公式是目標(biāo)像素。
圖像Gamma值調(diào)整實(shí)際上就是進(jìn)行伽馬校正。伽馬校正是通過(guò)改變Gamma值以修改圖像的伽瑪曲線,來(lái)改變圖像的非線性色調(diào)的方法。通過(guò)這種方法增加圖像中深色部分和淺色部分的比例。對(duì)圖像進(jìn)行伽馬校正旨在彌補(bǔ)數(shù)字圖像相較于人類視覺(jué)特性的差別,基于人類對(duì)光線或黑色和白色的感知的特點(diǎn),最大限度地使用表示黑色與白色之間的數(shù)據(jù)位或帶寬。
一般來(lái)說(shuō),Gamma值調(diào)整主要用來(lái)調(diào)整RGB圖像的對(duì)比度和亮度。
為了快速的修改圖像矩陣各像素點(diǎn)的像素值,OpenCV提供了函數(shù)LUT(),這個(gè)函數(shù)可以利用像素值的映射來(lái)修改圖像的每一個(gè)像素。Gamma值的調(diào)整就符合這種使用方式。
噪聲是感光元件在接收目標(biāo)實(shí)體的光線信號(hào)并傳輸?shù)倪^(guò)程中所產(chǎn)生的一些在圖像中顯示為粗糙的部分以及不應(yīng)該出現(xiàn)在圖像中的外來(lái)像素。圖像降噪就是減少圖像中這些噪聲的過(guò)程。通常使用的降噪方法是對(duì)圖像用濾波器濾波,而濾波器分為線性濾波器以及非線性濾波器。由于線性濾波器容易造成圖像模糊,使圖像細(xì)節(jié)丟失,所以通常圖像降噪使用的是非線性濾波器。在本圖像處理系統(tǒng)使用的是中值濾波和雙邊濾波兩種濾波器。
中值濾波是一種典型的非線性濾波技術(shù),它的基本處理思路是利用像素點(diǎn)四周鄰域的灰度值的中值來(lái)替代該像素點(diǎn)的灰度值。這種方法既能去除脈沖噪聲和椒鹽噪聲又能較好的保留圖像邊緣細(xì)節(jié)。雙邊濾波與中值濾波一樣也是非線性濾波的一種方式,為達(dá)到“保邊去噪”的目的,雙邊濾波的過(guò)程結(jié)合了圖像像素點(diǎn)的空間鄰近度以及像素點(diǎn)的值的相似度并進(jìn)行了折衷處理,不僅如此,雙邊濾波還考慮到了空域信息以及灰度相似性等問(wèn)題。這使得雙邊濾波在去除噪聲的同時(shí)更有效的保存了圖像的特征點(diǎn)。在雙邊濾波的過(guò)程中,目標(biāo)圖像像素的值取決于其在源圖像中鄰域相關(guān)像素點(diǎn)的值的加權(quán)組合。
圖像銳化是圖像增強(qiáng)一類,通過(guò)加重圖形的輪廓深度、增強(qiáng)圖形的邊緣以及灰度跳變的部分,使圖像變得更清晰。本圖像處理系統(tǒng)使用拉普拉斯算子來(lái)實(shí)現(xiàn)圖像的銳化。
[1]Pulli K,Baksheev A,Kornyakov K,et al.Real-Time Computer Vision with OpenCV[J].Communications of the Acm,2012,55(6):61~69.
[2]Yuille A L.Computer vision needs a core and foundations☆[J].Image&Vision Computing,2012,30(8):469~471.
[3]黃佳.基于OPENCV的計(jì)算機(jī)視覺(jué)技術(shù)研究[D].華東理工大學(xué),2013.
[4]Steger,C.,Ulrich,C.機(jī)器視覺(jué)算法與應(yīng)用[M].清華大學(xué)出版社,2008.
[5]顧偉康.計(jì)算機(jī)視覺(jué)學(xué)的發(fā)展概況[J].浙江大學(xué)學(xué)報(bào),1986(4):142~148.
TP391.4
A
1004-7344(2016)10-0295-01
2016-3-15