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. 目標識別(特徵方法、
10. 基本的GUI(顯示影象/視訊、鍵盤/滑鼠操作、滑動條);
11. 影象標註(直線、曲線、多邊形、文字標註)。
【OpenCV基本模組】
cv——核心函式庫
cvaux——輔助函式庫
cxcore——資料結構與線性代數庫
highgui——GUI函式庫
ml——機器學習函式庫
【OpenCV命名規則】
A. 函式名
cvActionTargetMod(…)
Action=核心功能(core functionality)(eg:set,create)
Target=目標影象區域(target
image area
Mod=(可選的)調整語(optional modifiers)(eg:argument type)
B. 矩陣資料型別
CV_(S|U|F)
S=符號整形
U=無符號整形
F=浮點型
(eg:CV_8UC1是指一個8位無符號整形單通道矩陣,
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 |
顏色通道的數目(1,2,3,4) |
Int |
畫素的位深 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 |
元素型別 |
|
int |
整行長度位元組數 |
|
Int |
行、列數 |
|
int height,width |
矩陣高度、寬度、與rows,cols對應 |
|
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語言實戰[ |