OpenCV(3)其他常用數據類型
其他基本對象類型:
Vec,Scalar,Point,Size,Rect,RotateRect
Vec:vec是一個模板類,主要用於數值向量。我們可以定義任何類型的向量和大量的組件:
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,它傳遞並讀取像素值。
若要訪問Vec和Scalar值,可以使用[]運算符。
Point對象類型:
另一個常見的類模板是Point,此類定義指定由其x和y坐標構建的2D點。
類似Point對象類型,還有支持3D點的Point3模板類。後面用到的時候會詳細介紹(學習)。
與Vec類一樣,有以下別名:
Point2i Point2f Point3f Point3i
使用時僅需:
Point2f p1(6,2);
Point3f p2(1,2,3);
即可定義二維點和三維點。
Size對象類型:
它用於指定圖像或矩形的尺寸。這個類中有寬度、高度以及一個area()函數。
Rect對象類型;
另一個重要的模板類,通過下面的參數定義2D矩形:
頂部左上角的坐標;寬度和高度。
Rect模板類可以定義ROI(region of interest,感興趣區域)的圖像。
RotatedRect對象類型:
這個類通過中心點、寬高度以及旋轉角度來定義一個旋轉的矩形。
RotatedRect(const Point2f& center,const Size2f& size,float angle);
這個類中海油一個有趣的函數:boundingBox。這個函數返回一個包含旋轉的矩形的Rect。
OpenCV(3)其他常用數據類型