1. 程式人生 > >OpenCV的概況和基本資料結構

OpenCV的概況和基本資料結構

OpenCV是一個基於C/C++語言的開源影象處理函式庫,其特點有:

1. 程式碼都是經過優化,可以用於實時處理影象;

2. 具有良好的可移植性;

3. 可以進行影象/視訊的載入、儲存和採集的常規操作;

4. 具有低階和高階的API

5. 提供了面向Intel IPP高效多媒體函式的介面,可以針對使用的IntelCPU優化程式碼,提高程式新跟那個(OpenCV自從2.0版本以後已經不需IPP,所以不再提供相關的介面)

OpenCV功能】

1. 影象資料操作(記憶體分配與釋放,影象複製,設定和轉換);

2. 影象/視訊的輸入和輸出(支援檔案或者攝像頭的輸入,影象

/視訊檔案的輸出;

3. 矩陣/向量的資料操作以及線性代數運算(矩陣乘積、矩陣方程求解、特徵值、

奇異值分解);

4. 支援多種動態資料結構(連結串列、佇列、資料集、樹、圖);

5. 基本影象處理(去噪、邊緣檢測、角點檢測、取樣與插值、色彩變換、形態學處理、直方圖、影象金字塔結構);

6. 結構分析(連通域/分支、輪廓處理、距離轉換、影象矩、模板匹配、霍夫變幻、多項式逼近、曲線擬合、橢圓擬合、狄勞尼三角化;

7. 攝像頭定標(尋找和跟蹤定標模式、引數定標、基本矩陣估計、單位矩陣估計、立體視覺匹配);

8. 運動分析(光流、動作分割、目標跟蹤);

9. 目標識別(特徵方法、

HMM模型);

10. 基本的GUI(顯示影象/視訊、鍵盤/滑鼠操作、滑動條);

11. 影象標註(直線、曲線、多邊形、文字標註)。

OpenCV基本模組】

cv——核心函式庫

cvaux——輔助函式庫

cxcore——資料結構與線性代數庫

highgui——GUI函式庫

ml——機器學習函式庫

OpenCV命名規則】

A. 函式名

cvActionTargetMod(…)

Action=核心功能(core functionality)(egsetcreate

Target=目標影象區域(target image area

 egcontourpolygon

Mod=(可選的)調整語(optional modifiers(eg:argument type)

B. 矩陣資料型別

CV_(S|U|F)

S=符號整形

U=無符號整形

F=浮點型

egCV_8UC1是指一個8位無符號整形單通道矩陣,

             CV_32FC2是指一個32位浮點型雙通道矩陣)

C. 影象資料型別

IPL_DEPTH(S|U|F)

Eg:

IPL_DEPTH_8U影象畫素資料是8位無符號整形。

IPL_DEPTH_32P影象畫素資料是32位浮點型。

【標頭檔案包含】

#include——核心函式庫

#include——輔助函式庫

#include——機器學習庫

#include——GUI函式庫

#include//一般不需要,因為cv.h已經包含該標頭檔案 資料結構與線性代數庫

OpenCV中的基本資料結構】

1. 影象資料結構

A. IPL影象

IPLImage

Int  nChannels

顏色通道的數目(1,2,3,4

Int  depth

畫素的位深

IPL_DEPTH_8U

IPL_DEPTH_16S

IPL_DEPTH_32F

IPL_DEPTH_64F

Int width

影象寬度(畫素為單位)

Int height

影象高度

Char * imageData

影象資料指標

彩色影象按照BGR的順序儲存資料

Int dataOrder

0——將畫素點不同的通道的值交錯排在一起,形成單一的畫素平面

1——把所有的畫素同通道值排在一起,形成若干個通道平面,再把平面排列起來

Int origin

0 –畫素原點=左上角

1 –畫素原點為左下角(windows bitmaps

Style

Int widthStep

相鄰行的同列點之間的位元組數

Int imageSize

影象的大小(位元組為單位)=height*widthStep

Struct _IplROI *roi

影象的感興區域(ROI),ROI非空的會後對影象的處理僅限於ROI區域

Char *imageDataOrigin

影象資料未對齊時候的資料原點指標

(需要正確地重新分配影象記憶體)

Int align

影象資料的行對齊 4 or 8 byte alignment

Char colorModel[4]

顏色模型(OpenCV中沒有此項)

2. 矩陣:

A.2D矩陣

CvMat(2D矩陣)

int  type

元素型別

int  step

整行長度位元組數

Int  rows,cols

行、列數

int heightwidth

矩陣高度、寬度、與rowscols對應

Union data

Uchar *ptr

指向unsigned char矩陣的指標

Short *s

相關推薦

OpenCV概況基本資料結構

OpenCV是一個基於C/C++語言的開源影象處理函式庫,其特點有: 1. 程式碼都是經過優化,可以用於實時處理影象; 2. 具有良好的可移植性; 3. 可以進行影象/視訊的載入、儲存和採集的常規操作; 4. 具有低階和高階的API;

OpenCV學習(3)——命名風格基本資料結構

//-------------------------------------------- CvPoint point; point.x = 40; point.y = 50; //--------------------------------------------

Weka演算法Classifier-tree-J48原始碼分析(一)演算法基本資料結構

大概一年沒打理部落格了,重新拿起筆不知道該從哪裡寫起,想來想去就從最近手頭用的Weka寫起吧。 Weka為一個Java基礎上的機器學習工具,上手簡單,並提供圖形化介面,提供如分類、聚類、頻繁項挖掘等工具,本篇文章主要寫一下分類器演算法中的J48演算法及其實現。 一、演算

易學筆記-go語言-第4章:基本結構基本資料型別/4.4 變數/4.4.3 函式體內最簡單的變數初始化

函式體內最簡單的變數賦值 格式:  變數名 := 值 舉例: var goos string = os.Getenv("GOOS") fmt.Printf("The operating system is: %s\n", goos) //函式體內最

易學筆記-go語言-第4章:基本結構基本資料型別/4.4 變數/4.4.2 宣告賦值語句結合

宣告和賦值語句結合 格式:var identifier [type] = value 這裡的type是可選的,具體的型別參照: 第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.8 型別 顯式型別舉例: //整型 var a&nbs

易學筆記-go語言-第4章:基本結構基本資料型別/4.4 變數/4.4.4 函式體內並行初始化

函式體內並行賦值 在 第4章:基本結構和基本資料型別/4.4 變數/4.4.3 函式體內最簡單的變數賦值基礎上,多個變數同時賦值 舉例: 程式碼: a, b, c := 5, 10, "易學筆記"     fmt.Printf("a&n

易學筆記-Go語言-第4章:基本結構基本資料型別/4.5 基本型別/4.5.2 整形

 整形 固定位元組數整形:與作業系統無關 int 和 uint 在 32 位作業系統上,它們均使用 32 位(4 個位元組),在 64 位作業系統上,它們均使用 64 位(8 個位元組)。 uintptr 存放指標 指定位元組

易學筆記-Go語言-第4章:基本結構基本資料型別/4.5 基本型別/4.5.1 bool型別

 bool型別 關鍵字:bool,兩個結果:true 或者 false 何時回產生bool型別 ==:相等性筆記 !=:不相等性筆記 >、>=、<、<=:比較 可以進行的邏輯運算

易學筆記-Go語言-第4章:基本結構基本資料型別/4.4 變數/4.4.7 變數的作用域

變數的作用域 變數的作用域有幾種: 包間變數:也是在函式外宣告的變數,而且第一個字母是大寫,所有本包函式或者包外函式都可見 全域性變數:在函式外宣告的變數,所有函式都可見 區域性變數:在本函式內部都可見 塊變數:僅僅在某個塊中可見,

基本資料結構演算法複習

前言 資料結構只是靜態的描述了資料元素之間的關係。 高效的程式需要在資料結構的基礎上設計和選擇演算法。 程式 = 資料結構 + 演算法 總結:演算法是為了解決實際問題而設計的,資料結構是演算法需要處理的問題載體 抽象資料型別(ADT)的含義是指一個數學模型以及定義在

第4章:基本結構基本資料型別/4.2 Go 程式的基本結構要素/4.2.5 可見性

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

第4章:基本結構基本資料型別/4.2 Go 程式的基本結構要素/4.2.4 import:匯入包

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

第4章:基本結構基本資料型別/4.2 Go 程式的基本結構要素/4.2.6 函式

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-Go語言-第4章:基本結構基本資料型別/4.6 字串概述/4.6.1 字串表示

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-Go語言-第4章:基本結構基本資料型別/4.5 基本型別/4.5.6 位運算

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-Go語言-第4章:基本結構基本資料型別/4.5 基本型別/4.5.7 隨機數

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

OpenCV基本資料結構與示例

OpenCV的基本資料結構及示例 OpenCV中強大的Mat型別大家已經比較熟悉了。這裡梳理一些在工程中其他經常用到的幾種基本資料型別。包括:          Vec          Scalar          Point          Size    

影象識別與處理之Opencv——基本資料結構及示例

OpenCV中強大的Mat型別大家已經比較熟悉了。這裡梳理一些在工程中其他經常用到的幾種基本資料型別。包括: Vec Scalar:顏色的表示

Redis(2)- 基本資料結構操作

Redis的一個特點就是處理基本字串,還支援多種資料結構,包括Hash,List,Set,SortedSet。本章主要介紹Redis的資料結構和基本操作,並給出一些典型的使用場景。 1. 字串String 字串操作是Redis最基礎的操作。是二

R語言-基本資料結構的用法

關鍵詞:向量、矩陣、陣列、資料框、因子、列表 近期開始上手R語言,可能是出於對機器學習的興趣吧從而瞭解到這門語言; 之前也看過人生苦短的Python,當然這兩門語言都是人工智慧技術中很好的工具; 二者也存在一些相同之處,當然是除了開源之外的一些相同之處; 本人蔘考的書籍是R語言實戰[