opencv九 opencv基本資料類

2021-09-05 03:42:51 字數 1775 閱讀 7530

1.固定向量類cv::vec<>

最直接的基本資料型別是模板類cv::vec<>,這是乙個用於原語的容器類,我們將其稱為固定向量類。為什麼不直接使用stl類呢?關鍵的區別在於,固定向量類是為在編譯時已知維數的小向量設計的。這就允許使用特別高效的**來處理小的常見操作。在實踐中,「small」的意思是,如果您有多個元素,那麼您可能使用了錯誤的類。(事實上,從2.2版本開始,這個數字在任何情況下都不能超過9。)在之後,我們將研究cv::mat類,它是處理任意維數的大陣列的正確方法,但是現在,可以認為固定向量類對於小傢伙來說是方便快捷的。

雖然cv::vec<>是乙個模板,但我們也不會經常看到或使用這種形式。因為我們會經常使用其別名(typedefs)。總結來說,在使用別名時一共有4*6種方式。可以在cv:

:vec

cv::\\}

cv::ve

c中任何一種組合。以下是三種組合方式舉例:

使用別名

解釋cv::vec2i

雙元素整數向量

cv::vec3i

三元素整數向量

cv::vec4d

四元素雙精度浮點向量

2.固定矩陣類cv::matx<>

除了固定向量類cv::vec,還有固定矩陣類,它們與模板cv::matx<>相關聯。就如同固定向量類一樣,固定矩陣類也不打算用於大陣列,而是設計用於處理特定的小矩陣操作。在計算機視覺中,有很多2×2或3×3矩陣,和幾個4×4,用於各種轉換,matx<>被設計用來容納這類物件。又如固定向量類的別名,固定矩陣類也用別名。主要也是從以下552個組合中任意選擇cv:

:mat

xcv::\\}

cv::ma

tx。需要注意的是,對於固定矩陣類(如固定向量類,但與下一章cv::mat不同),必須在編譯時知道固定矩陣類的維數。當然,正是這種特性使得在使用固定矩陣類的操作變得高效,並消除了許多動態記憶體分配操作。

3.cv::point二維/三維點類

與固定向量類密切相關的是point類,它們是兩個或三個點值的基本型別容器。point點類是從它們自己的模板派生出來的,所以它們不是直接從固定向量類派生出來的,但是point點類可以和固定向量類相互轉換。point點類和固定向量類之間的主要區別是,point點類的成員由命名變數(mypoint)訪問,比如mypoint.x,mypoint.y。而不是通過向量索引(myvec[0], myvec[1],等等)。與cv::vec<>一樣,point點類通常通過別名呼叫,以例項化適當的模板。主要有:

cv::point2i, cv::point2f, cv::point2d, cv::point3i, cv::point3f, cv::point3d.

4.cv::scalar四維點類

和point點類一樣,cv::scalar點類是四個點值的模板類。但是和point點類不一樣的是,cv::scalar是乙個具有雙精度的四分量向量。還有一點和point點類不一樣是,可以使用整數索引訪問scalar物件元素,這和cv::vec<>相同。這是因為cv::scalar直接派生自cv::vec<>的例項化(具體地說,派生自cv::vec)。

5.其餘基礎類

還有cv::size和cv::rect。與point點類一樣,這兩個類都來自它們自己的模板。cv::size是包含了寬度和高度,沒有x,y。cv::rect則包含了這四個數。size類實際上是cv::size2i的別名。對於寬度和高度是浮點值的情況,使用別名cv::size2f。類似地,cv::rect是矩形整數形式的別名。還有乙個類表示乙個沒有軸向對齊的矩形,叫做cv::rotatedrect,包含了型別為cv::point2f的中心點,型別為cv::size2f的尺寸,意見乙個額外的浮點數angle。

OpenCV基礎入門(九)

第九節 形態學操作 一 原理 影象形態學操作 基於形狀的一系列影象處理操作的合集,主要是基於集合論基礎上的形態學數學 形態學有四個基本操作 腐蝕 膨脹 開 閉 膨脹與腐蝕是影象處理中最常用的形態學操作手段 形態學操作 膨脹 跟卷積操作類似,假設有影象a和結構元素b,結構元素b在a上面移動,其中b定義...

OpenCV 基本模組

opencv的全稱是 open source computer vision library。opencv是乙個基於bsd許可 開源 發行的跨平台計算機視覺庫,可以執行在linux windows和mac os作業系統上。它輕量級而且高效 由一系列c函式和少量c 類構成,同時提供了python ru...

OpenCV 基本模組

opencv的全稱是 open source computer vision library。opencv是乙個基於bsd許可 開源 發行的跨平台計算機視覺庫,可以執行在linux windows和mac os作業系統上。它輕量級而且高效 由一系列c函式和少量c 類構成,同時提供了python ru...