1. 程式人生 > >OpenCV(3)其他常用數據類型

OpenCV(3)其他常用數據類型

center 重要 派生 大數 pan 頂部 res 興趣 ble

其他基本對象類型:

Vec,Scalar,Point,Size,Rect,RotateRect

Vecvec是一個模板類,主要用於數值向量。我們可以定義任何類型的向量和大量的組件:

Vec<double,19> myVector;

上面的代碼表示我們這一類Vec中數據以double類型存儲,每個Vec對象可以存儲19個值。同理,double可以換為int,float等類型,19也可以變化。顯然不能為非正數和極大數。

當然也可以用宏定義:

typedef Vec<uchar,2> Vec2b;

typedef Vec<uchar,3> Vec3b;

typedef Vec<short,2> Vec2s;

typedef Vec<short,3> Vec3s;

typedef Vec<ushort, 2> Vec2w;

typedef Vec<ushort, 3> Vec3w;

typedef Vec<int, 2> Vec2i;

typedef Vec<int, 3> Vec3i;

typedef Vec<float, 2> Vec2f;

typedef Vec<float, 3> Vec3f;

typedef Vec<double, 4> Vec4d;

typedef Vec<double, 6> Vec6d;

Scalar對象類型:這是Vec派生出的具有四個元素的模板類。Scalar類型廣泛應用於OpenCV,它傳遞並讀取像素值。

若要訪問VecScalar值,可以使用[]運算符。

Point對象類型:

另一個常見的類模板是Point,此類定義指定由其xy坐標構建的2D點。

類似Point對象類型,還有支持3D點的Point3模板類。後面用到的時候會詳細介紹(學習)。

Vec類一樣,有以下別名:

Point2i Point2f Point3f Point3i

使用時僅需:

Point2f p1(6,2);

Point3f p2(1,2,3);

即可定義二維點和三維點。

Size對象類型:

它用於指定圖像或矩形的尺寸。這個類中有寬度、高度以及一個area()函數。

Rect對象類型;

另一個重要的模板類,通過下面的參數定義2D矩形:

頂部左上角的坐標;寬度和高度。

Rect模板類可以定義ROIregion of interest,感興趣區域)的圖像。

RotatedRect對象類型:

這個類通過中心點、寬高度以及旋轉角度來定義一個旋轉的矩形。

RotatedRect(const Point2f& center,const Size2f& size,float angle);

這個類中海油一個有趣的函數:boundingBox。這個函數返回一個包含旋轉的矩形的Rect

OpenCV(3)其他常用數據類型