1. 程式人生 > >OpenCV:概述、結構和內容

OpenCV:概述、結構和內容

1、OpenCV的定義:
     OpenCV的英文全稱是Open Source Computer Vision Library。它是一個開源的計算機視覺庫,它由一系列 C 函式和少量 C++ 類構成,實現了影象處理和計算機視覺方面的很多通用演算法。

2、OpenCV的特點:

       (1)OpenCV採用C/C++語言編寫,可以執行在Linux/Windows/Mac等作業系統上。

       (2)OpenCV提供了Python、Ruby、MATLAB以及其他語言的介面。

       (3)它採用優化的C程式碼編寫,能夠充分利用多核處理器的優勢

       (4)具有良好的可移植性

3、OpenCV的設計目標:

       執行速度儘量快,主要關注實時應用。如果是希望在Intel平臺上得到更快的處理速度,可以購買Intel的高效能多媒體函式庫IPP(Integrated Performance Primitives)。IPP庫包含許多從底層優化的函式,這些函式涵蓋多個應用領域。如果系統已經安裝了IPP庫,OpenCV會在執行時自動使用相應的IPP庫。

      【注】:OpenCV使用優化了的C和C++程式碼實現,因此它對IPP不存在任何的依賴。

4、OpenCV的應用領域
      (1)人機互動       (2)物體識別          (3)圖象分割    (4)人臉識別       (5)動作識別   (6)運動跟蹤      (7)機器人       (8)運動分析     (9)機器視覺      (10)結構分析

5、OpenCV的結構和內容

   OpenCV主體分為五個模組,其中四個模組如下圖所示。

OpenCV的CV模組包含基本的影象處理函式和高階的計算機視覺演算法。ML是機器學習庫,包含一些基於統計的分類和聚類工具。HighGUI包含影象和視訊輸入/輸出的函式。CXCore包含OpenCV的一些基本資料結構和相關函式。
【具體內容如下】:

      (1) cxcore
                 基礎結構:CvPoint,CvSize,CvScalar等
                 陣列操作:cvCreateImage,cvCreateMat等
                 動態結構:CvMemStorage,CvMemBlock等
                 繪圖函式:cvLine,cvRectangle等
                 資料儲存和執行時型別資訊:CvFileStorage,cvOpenFileStorage等
                 錯誤處理和系統函式:cvGetErrStatus,cvAlloc,cvFree等

      (2) cv

                  影象處理:cvSobel,cvCanny等
                  結構分析:ContourArea等
                  運動分析與目標跟蹤:cvMeanShift等
                  模式識別:CvHaarFeature
                  攝像頭定標與三維重建:cvCalibrateCamer2

       (3)Machine Learning(ML)
                 包含許多聚類、分類和資料分析函式。如Bayes分類器,K近鄰演算法,支援向量機,決策樹,神經網路等等。

       (4)HighGUI

                 影象介面函式: cvNamedWindow

                 讀影象和儲存影象:cvLoadImage,cvSaveImage

                 讀視訊和寫視訊:CvCreateFileCapture等

       (5)cvcam 

                  攝像機介面,在Opencv1.0以後的版本中已經被移除

       (6)cvaux

                該模組中一般存放一些即將被淘汰的演算法和函式(如基於嵌入式隱馬爾科夫的人臉識別演算法),還包含一些實驗性的演算法和函式(前景檢測,背景剔除等)

原文地址:http://blog.csdn.net/xiaofeilong321/article/details/8841125