OpenCVの画像を使用してマット堆積物は、特殊な画像形式があります。
命名規則
フォームの一般的なパラメータ名:
要素の数のビットCV_ {} {}要素型チャネル} C {
例えば、最も一般的なCV_8UC3で:
- 8U:8ビット符号なし。
- C3:チャンネル番号3。
そのため、
- CV_8UC3は、として表現される3チャンネルの符号なし8ビット、私たちはしばしば言うれる行列形式、BGR3チャンネルを。
似てありますようにCV_8UC1、CV_8UC2、CV_8UC3と。 - いくつかの画像記憶フォーマットは、フロート32、対応する画像フォーマット:CV_32FC1、CV_32FC2、CV_32FC3等。
- 画像フォーマットは、に格納されている場合、64ビットダブル CV_64FC1、CV_64FC2、CV_64FC3等:、対応する画像フォーマット。
int型の値のマッピング
データタイプはまた、代わりにint値の異なる行列要素とすることができる次のように、対応関係は次のとおり
チャンネル数 | C1 | C2 | C3 | C4 |
---|---|---|---|---|
CV_8U | 0 | 8 | 16 | 24 |
CV_8S | 1 | 9 | 17 | 25 |
CV_16U | 2 | 10 | 18 | 26 |
CV_16S | 3 | 11 | 19 | 27 |
CV_32S | 4 | 12 | 20 | 28 |
CV_32F | 5 | 13 | 21 | 29 |
CV_64F | 6 | 14 | 22 | 30 |
7
数字は、ユーザー定義のために予約その理由は、スキップされます。
#define CV_USRTYPE1 7
レンジ
数の | 特定のタイプ | レンジ |
---|---|---|
CV_8U | 8ビット符号なし整数 | 0〜255 |
CV_8S | 8符号付き整数 | -128〜127 |
CV_16U | 16ビット符号なし整数 | 0〜65535 |
CV_16S | 16ビット符号付き整数 | -32768〜32767 |
CV_32S | 32ビット符号付き整数 | -2147483648〜2147483647 |
CV_32F | 32ビット浮動小数点 | -FLT_MAX〜FLT_MAX、INF、NAN |
CV_64F | 64ビット浮動小数点 | -DBL_MAX〜DBL_MAX、INF、NAN |
でアクセスされるデータの種類
許容される方法で、そのようなデータ・タイプではなくCV_8U UCHARされるからです。
アクセス方法は、データ要素で使用される場合、以下の表に示す方法でデータ・タイプに割り当てられた各チャネルの既知のタイプやデータの場合にはチャネルの数:
C1 | C2 | C3 | C4 | C6 | |
---|---|---|---|---|---|
飛びます | 飛びます | CV :: Vec2b | CV :: Vec3b | CV :: Vec4b | |
ショート | ショート | CV :: Vec2s | CV :: Vec3s | CV :: Vec4s | |
int型 | int型 | CV :: Vec2i | CV :: Vec3i | CV :: Vec4i | |
浮く | 浮く | CV :: Vec2f | CV :: Vec3f | CV :: Vec4f | CV :: Vec6f |
ダブル | ダブル | CV :: Vec2d | CV :: Vec3d | CV :: Vec4d | CV :: Vec6d |
その中でも、
- Vec2b:Vec2bは、各オブジェクトは、2つの文字(CHAR)データに格納されてもよい表します
- Vec3b:各オブジェクトを表すVec3bは、RGB画像を記憶するために、そのようなそのようなオブジェクトを使用するなど、3 CHAR(文字)データを格納することができます
- Vec4b:文字データは、4つに格納することができ、各オブジェクトを表すVec4bは、そのようなクラスオブジェクトRGB +アルファ図通路を格納するために使用することができる-4
対応Vecをクラスは、次のように定義されています。
template<typename _Tp, int n> class Vec : public Matx<_Tp, n, 1> {...};
typedef Vec<uchar, 2> Vec2b;
typedef Vec<uchar, 3> Vec3b;
typedef Vec<uchar, 4> Vec4b;
typedef Vec<short, 2> Vec2s;
typedef Vec<short, 3> Vec3s;
typedef Vec<short, 4> Vec4s;
typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;
typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;
typedef Vec<float, 4> Vec4f;
typedef Vec<float, 6> Vec6f;
typedef Vec<double, 2> Vec2d;
typedef Vec<double, 3> Vec3d;
typedef Vec<double, 4> Vec4d;
typedef Vec<double, 6> Vec6d;
リファレンス
[1] インタフェース
[2] LIST。MATのtype OpenCVのIN
[3] CV_8UC3 Vec2b Vec3b Vec4b意味CV_8UC1、CV_8UC2、
[4]を行列要素のデータタイプを決定するためにOpenCVの