Opncv_データ型

Vec2b や Vec3d とか何を指しているか分からなくなる。

利便性のために、型の別名が定義されている。

my環境では cv::Point2fなど、cv::付ける。

 

別名
Point2i Point_<int>
Point Point2i
Point2f Point_<float>
Point2d Point_<double>
Point3i Point3_<int>
Point3f Point3_<float>
Point3d Point3_<double>
Size2i Size_<int>
Size Size2i
Size2f Size_<float>
Rect Rect_<int>
Vec2b Vec<uchar, 2>
Vec3b Vec<uchar, 3>
Vec4b Vec<uchar, 4>
Vec2s Vec<short, 2>
Vec3s Vec<short, 3>
Vec4s Vec<short, 4>
Vec2i Vec<int, 2>
Vec3i Vec<int, 3>
Vec4i Vec<int, 4>
Vec2f Vec<float, 2>
Vec3f Vec<float, 3>
Vec4f Vec<float, 4>
Vec6f Vec<float, 6>
Vec2d Vec<double, 2>
Vec3d Vec<double, 3>
Vec4d Vec<double, 4>
Vec6d Vec<double, 6>

 

OpenCV の基本的なデータ型

    unsigned char
    signed char
    unsigned short
    signed short
    bool
    int
    float
    double

 

CvMat の表記法

CV_ ビット深数 {U|S|F} C  チャンネル数

ex )

    CV_8U
    CV_32F
    CV_8UC1
    CV_8UC3
    :
    :

cv::Mat::depth

行列要素のビット深度を返す。

 

型名 意味
CV_8U 8-ビット符号なし整数 unsigned char
CV_8S 8-ビット符号あり整数 signed char
CV_16U 16-ビット符号なし整数 unsigned short
CV_16S 16-ビット符号あり整数 short
CV_32S 32-ビット符号あり整数 int
CV_32F 32-ビット浮動小数点数 float
CV_64F 64-ビット浮動小数点数 double

 

範囲
unsigned char 0 ~ 255
signed char -128 ~ 127
unsigned short 0 ~ 65535
short -32768 ~ 32767
int -2147483648 ~ 2147483647

 

 Vec は、上記の基本的なデータ型を格納できる OpenCV の汎用的な構造。

 

Point_

x と y で指定される 2 次元の点を表現するためのクラス。
Point_(x, y);

 

Point3_

3 次元座標上のクラス。

 

Size_

画像や矩形のサイズを表現するためのクラス。
    Size_(width, height);

 

Rect_

2 次元の矩形を表現するためのクラス。

    Rect_(x, y, width, height);
    Rect_(const Point & pt1, const Point & pt2);

pt 1 は 矩形の左上座標pt 2 は矩形の右下座標

矩形の
上側と左側の境界線は矩形に含まれ
右側と下側の境界線は含まれない

RotatedRect という回転を考慮した矩形もある。

 

Vec

短い数値ベクトル用のクラス。

Matx ( 小さい行列のためのクラス ) の特別な場合。
Vec<T, 2> と Point_ は相互に変換可能。Vec<T, 3> と Point3_ も同様。

 

Scalar_

4-要素ベクトル。
Vec<_Tp, 4> から派生している。
Scalar 型は,OpenCVピクセル値を処理するために広く利用されている。

 

 

 こちらから。
http://opencv.jp/opencv-2svn/cpp/basic_structures.html#vec
http://www.wakayama-u.ac.jp/~chen/cmake/LearningOpenCV.html

以上。