【OpenCVの】CV ::マット画像フォーマット(データタイプ)

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の

发布了599 篇原创文章 · 获赞 856 · 访问量 184万+

おすすめ

転載: blog.csdn.net/JNingWei/article/details/104805759