OpenCV Mat相關結構體詳細介紹 0

2021-10-04 16:13:48 字數 1985 閱讀 7064

眾所周知,mat是opencv最核心的核心資料結構,沒有這個靈活高效的mat,opencv也就沒有了靈魂。

作為乙個初學者,只需要會簡單用一下mat當然就夠了,但是作為乙個有理想的程式猿,我們還是要挖掘挖掘,看看mat裡面還藏著什麼寶藏。

我們將目光投向opencv/modules/core/include/opencv2/core/mat.hpp,這個3600多行(v3.4.1)的標頭檔案,就藏著opencv最深處的秘密,我們嘗試逐步揭開它!

首先我們需要關注的是,究竟有哪些類?

這個檔案中一共有20個class宣告的結構,其中16個class的名字中有"mat",其餘四個都是"array"。

class

基類_outputarray

_inputarray

_inputoutputarray

_outputarray

mat_

matsparsemat_

sparsemat

matconstiterator_

matconstitrator

matiterator_

matconstiterator_<_tp>

sparsematiterator

sparsematconstiterator

sparsematconstiterator_

sparsematconstiterator

sparsematiterator_

sparsematconstiterator_<_tp>

可以看到他們之間的關係還是比較簡單的,最多有兩層繼承關係,且有繼承關係的,名字都長得差不多,這減少了我們認知的難度。

在得到他們的關係之後,我們要開始逐個擊破了,對這些c++的類,我們已經找到了宣告,接下來就要找找他們的實現了。繼續搜!

class

實現_inputarray

matrix_wrap.cpp

_outputarray

matrix_wrap.cpp

_inputoutputarray

mat.inl.hpp

matallocator

matrix.cpp

matcommainitializer_

mat.inl.hpp

matmatrix.cpp

mat_

mat.inl.hpp

umat

umatrix.cpp

sparsemat

mat.inl.hpp

sparsemat_

mat.inl.hpp

matconstitrator

mat.inl.hpp

matconstiterator_

mat.inl.hpp

matiterator_

mat.inl.hpp

sparsematconstiterator

mat.inl.hpp

sparsematiterator

mat.inl.hpp

sparsematconstiterator_

mat.inl.hpp

sparsematiterator_

mat.inl.hpp

narymatiterator

matrix_iterator.cpp

matop

matrix_expressions

matexpr

matrix_expressions

我們可以看到,這些類主要是包含在6個檔案中,其中mat和mat_主要是在matrix.cpp和umatrix.cpp中,還有一些也是在mat.inl.hpp中,矩陣操作相關的,大部分在matrix_expressions.cpp中,其餘的實現都在mat.inl.hpp中。

我們嘗試對opencv的核心資料結構mat及其相關類做乙個介紹,在本文中我們主要是列出來有哪些類,並整理了他們的關係,還找到他們各自的實現。接下來我們就要逐個擊破,爭取能對所有類都能有個深入的認識。

結構體相關知識

include include struct 關鍵字 struct student 可以看做將多種型別打包帶走,看做乙個包裹 int main 兩種定義方式。2 struct student str 初始化結構體 str.a 100 給結構體裡面的資料賦值 str.c b strcpy str.st...

結構體相關概念

struct 結構體名 成員列表 1 先宣告結構體型別再定義變數。struct 結構體名 變數名 struct product product1 struct product 是結構體型別名,而product1是結構體變數名。定義乙個基本型別的變數與定義結構體型別變數的不同之處在於,定義結構體變數不...

結構體定義 結構體指標相關用法

結構體 是一種自定義資料結構。結構體的形式 struct 型別名 結構體的結尾必須加上分號 結構體的定義以及初始化 struct student 定義student資料型別 定義完成,其地位和內建型別一樣 int main struct student stu2 struct student stu...