2 0新版本對資料結構進行了大幅修改

2021-06-19 23:42:39 字數 1621 閱讀 1129

2.0新版本對資料結構進行了大幅修改:

定義了datatype類

定義了point_模板類,取代了之前版本的cvpoint、cvpoint2d32f

定義了point3_模板類,取代了之前版本的cvpoint2d32f

定義了size_模板類,取代了之前版本的cvsize和cvsize2d32f

定義了rect_模板類,取代了之前版本的cvrect

rotatedrect模板類,

termcriteria模板類,取代了之前的cvtermcriteria,這個類是作為迭代演算法的終止條件的,這個類在參考手冊裡介紹的很簡單,我查了些資料,這裡介紹一下。該類變數需要3個引數,乙個是型別,第二個引數為迭代的最大次數,最後乙個是特定的閾值

matx模板類。matx模板類是對mat類的乙個拓展,從matx類有派生出vec類,又vec類又派生出scalar_類,取代了cvscalar

定義了range類指定了乙個序列的乙個連續的子串行

定義了ptr類用來對老版本的資料結構進行指標操作,更安全有效,可以防止記憶體的不正常使用。

最最重要的定義了mat類來表示矩陣,取代了之前的cvmat和lplimage。mat結構支援的操作有:

構造析構函式mat和~mat

對=、matexpr、( )、cvmat、iplimage進行了運算子過載

row、col函式

rowrange、colrange

類似matlab的運算操作diag、t、inv、mul、cross、dot、zeros、one、eye

複製轉換變形clone、copyto、convertto、assignto、setto、reshape、create、addref

其中copyto函式有個妙用,不但可以複製mat,還可以通過mask提取出感興趣的部分

資料的操作release、resize、reserve、push_back、pop_back、locateroi、adjustroi

mat的資訊total、iscontinuous、elemsize、elemsize1、type、depth、channes、step1、size、empty

定位ptr、at、begin、end

還做了幾個擴充套件類mat_、narymatlterator、sparsemat、sparsemat_取代了之前的cvsparsemat。這些類的操作運算與mat大同小異,類宣告參考core的具體標頭檔案

當然,新版本對老版本的資料結構和函式依然支援。

新版本還在這些結構裡支援dft、dct變換,我這裡講一下我的新發現pca類、svd類

pca類有建構函式pca,運算子過載(),project,backproject。svd類有建構函式svd,運算子過載(),compute,solvez,backsubst

這裡介紹幾個我使用過的實用函式:

inrange函式可以檢查matsrc的內容是否在matlower、matupper之間,輸出結果是乙個uchar型矩陣,1表示在兩者之間,否則為0,值得注意的是,matlower,matupper也可以用scalar的格式

bitwise_***函式對兩個矩陣進行位運算,結果儲存在第三個矩陣當中

mixchannels函式可以實現矩陣的指定通道複製到新矩陣的指定通道

總之,新版本支援更多的數**算,還支援一些畫圖操作

Opencv學習筆記之新版本模組結構

2.0版本對opencv可是進行了大刀闊斧的改革,用c 重新了大部分結構,而不是1.x版本中的c結構。這些模組包括 core 定義了基本資料結構,包括最重要的mat和一些其他的模組 imgproc 該模組包括了線性和非線性的影象濾波,影象的幾何變換,顏色空間轉換,直方圖處理等等 video 該模組包...

OpenCV學習筆記(二) 新版本模組結構

opencv學習筆記 二 新版本模組結構 標籤 演算法 資料結構 features library python google 2011 10 25 20 00 13415人閱讀收藏 舉報 opencv 60 作者同類文章x 還是老話題,2.2版本對opencv可是進行了大刀闊斧的改革,用c 重新了...

OpenCV學習筆記(二) 新版本模組結構

還是老話題,2.2版本對opencv可是進行了大刀闊斧的改革,用c 重新了大部分結構,而不是1.x版本中的c結構。這些模組包括 core 定義了基本資料結構,包括最重要的mat和一些其他的模組 imgproc 該模組包括了線性和非線性的影象濾波,影象的幾何變換,顏色空間轉換,直方圖處理等等 vide...