基于OpenCV的圖像處理_第1頁
基于OpenCV的圖像處理_第2頁
基于OpenCV的圖像處理_第3頁
基于OpenCV的圖像處理_第4頁
基于OpenCV的圖像處理_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2011年7月第7期電子測試ELECTRONIC TEST基于OpenCV 的圖像處理秦小文,溫志芳,喬維維(中北大學信息與通信工程學院,山西 太原, 030051摘要:OpenCV是近年來推出的開源、免費的計算機視覺庫,利用其所包含的函數(shù)可以很方便地實現(xiàn)數(shù)字圖像和視頻處理。同時利用面向對象的VC+ 6.0編程工具,用C+語言進行程序編寫,大大提高了計算機的運行速度。本文首先闡述了OpenCV的特點以及結構,然后以平滑處理、圖像形態(tài)學為例介紹了OpenCV在數(shù)字圖像處理中的典型應用。OpenCV算法庫為VC+編程處理數(shù)字圖像提供了很大的方便,其必將成為圖像視頻處理領域的強有力的工具。關鍵詞:O

2、penCV;平滑處理;圖像形態(tài)學中圖分類號: TP391文獻標識碼: AImage processing based on OpenCVQin Xiaowen,Wen Zhifang,Qiao Weiwei(School of Information and Communication Engineering,North University of China,Taiyuan Shanxi,030051 Abstract : OpenCV which is open and free computer vision library has developed in recent years.W

3、e can easily carry out digital image processing by making use of its functions.C+ programs compiled in the VC+ 6.0 greatly improve the rate of the computer.The paper first elaborates the feature and architecture of OpenCV.Then it shows the application of OpenCV in digal image processing,taking smoot

4、h processing and image morphology by example. The algorithms library of OpenCV provides great convenience for dealing with digital images using VC+.It is believed that OpenCV becomes powerful tool in the field of image and video.Keywords : OpenCV; smooth processing; image morphology0 引言人類離不開圖像,畫面比文字

5、更形象生動,人類70%以上的信息來自視覺。近年來,數(shù)字圖像處理發(fā)展迅速,實用價值高,應用范圍極為廣泛,現(xiàn)已應用于軍事技術、政府部門和醫(yī)療衛(wèi)生等多種領域。數(shù)字圖像處理研究內容很廣泛,歸納起來有如下幾個方面: 圖像數(shù)字化、圖像壓縮、圖像增強、圖像分析、圖像恢復1-2。隨著數(shù)字圖像處理的日益廣泛,眾多應用于計算機視覺和圖像處理的軟件包相繼被開發(fā)出來。從文獻3 可知,大多數(shù)軟件包基于計算速度的角度考慮,采用C/C+編寫的。雖然這些軟件包對計算機圖像處理和計算機視覺的研究提供很大的便利,但也存在著不足之處:大多數(shù)軟件包沒有高級數(shù)學計算函數(shù); MATLAB雖提供了較為豐富的數(shù)學函數(shù),但其運行速度令人擔憂;

6、大部分軟件包不支持網(wǎng)絡服務器結構的應用程序的開發(fā);絕大多數(shù)軟件包不支持可嵌入性。OpenCV 圖像處理算法庫在VC+編譯環(huán)境下運行,為數(shù)字圖像的處理、計算機視覺技術應用提供了極大的方便。它不僅是完全免費的開源軟件而且它包含非常豐富的各類圖像處理及識別的函數(shù)。本文主要介紹基于OpenCV 的圖像處理的特點以及實例。1 OpenCVOpenCV(open source computer vision library)誕生于Intel 研究中心,是一個開放源碼的計算機視覺庫。OpenCV 采用C/C+語言編寫,可以運行在Linux/Windows/Mac等操作系統(tǒng)上。OpenCV 還提供了Pytho

7、n、Ruby、MATLAB以及其他語言的接口4 。它包含的函數(shù)有500多個,覆蓋了計算機視覺的許多應用領域,OpenCV 主體分為5個模塊,其中4個模塊如圖1所示。 圖1 OpenCV的基本結構圖1中并沒有包含CvAux 模塊,該模塊中一般存放一些即將被淘汰的算法和函數(shù),同時還有一些新出現(xiàn)的實驗性的算法和函數(shù)。依據(jù)文獻5-7總結歸納了一下OpenCV 的優(yōu)點,主要體現(xiàn)在如下幾個方面: 跨平臺,可移植性好。OpenCV是由跨平臺的中、高層API 構成,很好的支持Windows、Linux、Unix及MacOSX 等操作系統(tǒng),可以在大多數(shù)的C/C+編譯器下工作; 獨立性好。OpenCV包含500多

8、個函數(shù),不依賴外部庫,既可以獨立運行,也可以在運行時使用其他外部庫; 源代碼公開。開發(fā)者可以對源代碼進行修改,將自己設計的新類添加到庫中,只要設計符合規(guī)范,自己的代碼也可以被別人廣泛使用; 具備強大的圖像和矩陣運算能力。具有豐富的函數(shù)處理函數(shù),減少開發(fā)者的工作量,有效提高開發(fā)效率和程序運行的可靠性; 運行速度快,OpenCV使用優(yōu)化了的C 和C+代碼實現(xiàn),大大提升了計算機的運行速度??傊辛薕penCV 視覺庫,科研開發(fā)人員只需添加自己的編寫程序,直接調用OpenCV 中的函數(shù)即可實現(xiàn),這樣不僅降低了開發(fā)程序的難度,而且縮短了相關程序的開發(fā)周期。2 OpenCV圖像處理編程實例OpenCV

9、處理圖像包括以下幾個步驟:加載圖像;顯示圖像;處理圖像。2.1 加載圖像不同類型的圖像內部結構不同,需要根據(jù)圖像的結構采用不同的方法將圖像文件中的數(shù)據(jù)讀入內存。OpenCV的HighGUI 庫中提供了cvLoadImage(函數(shù),可以將圖像數(shù)據(jù)從文件中加載進來,而且不管加載前圖像是什么格式,加載后它返回的都是一個指向IplImage 結構體的指針,方便了后續(xù)的處理。cvLoadImage(函數(shù)原型為:IplImage*cvLoadImage(const char *filename, int iscolor,其中iscolor 是輔助參數(shù),可選正數(shù),負數(shù)和零3種取值。2.2 顯示圖像在窗口中顯

10、示出加載的圖像,主要由兩個函數(shù)完成的,cvNamedWindow(和cvShowImage(.cvNamedWindow(也是一個高層調用接口,由HighGUI 庫提供,它用于在屏幕上創(chuàng)建一個窗口,將被顯示的圖像包含于該窗口中。cvShowImage(用于在上述創(chuàng)建的窗口中顯示已加載的圖像。在這里還要提一下3個比較重要的函數(shù)。cvWaitKey(函數(shù)使程序暫停,能使用戶很好觀察到圖像;cvReleaseImage(和cvDestroyWindow(用于釋放所占用的內存。2.3 處理圖像主要運用OpenCV 中的函數(shù)去實現(xiàn)圖像處理過程中的一些基本算法,包括彩色轉換為灰度、形態(tài)學操作、閾值2值化和

11、邊緣提取等。以平滑處理中的高斯平滑為例,其中用到的主要函數(shù)是cvSmooth(。其函數(shù)原型為:void cvSmooth(const CvArr *src,CvArr *dst,int smoothtype=CV_GAUSSIAN,int para1=3,int param2=0,int param3=0,int param4=0;根據(jù)參數(shù)smoothtype 的不同可實現(xiàn)不同方式的濾波,常用的有CV_GAUSSIAN- 對圖像進行核大小為param1*param2的高斯卷積,;CV_MEDIAN-對圖像進行param1*param1的中值濾波。經(jīng)過高斯平滑處理前后的效果如圖2和圖3所示。圖2

12、 原圖像 圖3 高斯平滑后圖像以處理膨脹、腐蝕和開閉運算為例,它們能實現(xiàn)消除噪聲、分割出獨立的圖像元素以及在圖像中連接相鄰的元素。其主要包括以下幾個函數(shù):1 cvCreateStructuringElementEx(創(chuàng)建結構元素;2 cvReleaseStructuringElement(刪除結構元素;3cvErode(腐蝕;4cvDilate(膨脹; 5cvMorphologyEx(高級形態(tài)學變換,在腐蝕和膨脹的基本操作基礎上,完成一些高級的形態(tài)變換8,其中包括:開運算、閉運算、形態(tài)學梯度、禮帽和黑帽。本文中以開閉運算為例。它們實現(xiàn)的效果圖如圖4-圖8所示。圖4 原圖像 圖5 腐蝕后圖像 圖

13、6 膨脹后圖像圖7 閉運算 圖8 開運算3 結束語本文介紹了基于OpenCV 的圖像處理并給出了實例,利用OpenCV 中的函數(shù)使圖像處理問題變得很簡單,具有很強的實用價值。而且OpenCV 免費,源代碼公開,其必將成為圖像視頻處理領域的強有力的工具。參考文獻1 張漢靈.MATLAB 在數(shù)字圖像處理技術方面的應用M.北京:清華大學出版社,2008.2 朱虹. 數(shù)字圖像處理基礎M.北京:北京科學出版社,2005.3 喻擎蒼, 翁秀娟, 趙勻, 等交互式開放結構計算機視覺平臺J.計算機工程與應用,2006,42(23:78-81.4 于仕琪, 劉瑞禎. 學習OpenCV(中文版M.北京:清華大學出版社,2009.5 陰法名. 基于OpenCV 圖像處理J.科技信息,2009,(32:220.6 黎松, 平西建, 丁益洪, 等. 開放源代碼的計算機視覺類庫OpenCV 的應用J

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論