[OPENCV] cv :: Mat formato de imagen (Tipo de datos)

Mat depositar usando OpenCV imagen, no es un formato de imagen especial.

Normas de denominación

nombres de los parámetros genéricos de la forma:

Bits del número de elementos de CV_ {} {} canales de tipo elemento} C {

Por ejemplo, los más comunes CV_8UC3 en:

  • 8U: de 8 bits sin signo, en
  • C3: número de canal 3.

Por lo tanto,

  • CV_8UC3 se representaría como 3 canales sin signo 8bits formato de la matriz, es decir, que a menudo dicen canal BGR3 .
    No son similares: CV_8UC1, CV_8UC2, CV_8UC3 y así sucesivamente.
  • Algunos formato de almacenamiento de imagen es 32 un flotador , el formato de imagen correspondiente: CV_32FC1, CV_32FC2, CV_32FC3 similares;
  • Si el formato de imagen se almacena en doble de 64 bits , el formato de imagen correspondiente: CV_64FC1, CV_64FC2, CV_64FC3 similares.

Las asignaciones de valores int

Los tipos de datos también pueden ser un elemento de matriz diferente del valor int lugar, la relación correspondiente es como sigue:

Número de canales C1 C2 C3 C4
CV_8U 0 8 dieciséis 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

7La razón es omitido, porque los números reservados para definida por el usuario:

#define CV_USRTYPE1 7

la gama

numérico Los tipos específicos la gama
CV_8U 8 bits entero sin signo 0 ~ 255
CV_8S 8 entero con signo -128 ~ 127
CV_16U 16 bits entero sin signo 0 ~ 65535
CV_16S entero con signo de 16 bits -32768 ~ 32767
CV_32S entero con signo de 32 bits -2147483648 2147483647 ~
CV_32F coma flotante de 32 bits -FLT_MAX ~ FLT_MAX, INF, NAN
CV_64F punto flotante de 64 bits -DBL_MAX ~ DBL_MAX, INF, NAN

El tipo de datos que se accede a

Debido a que en método aceptable es uchar tal tipo de datos, no CV_8U.
Si el método de acceso para ser utilizado en el elemento de datos, el número de canales en el caso de un tipo conocido y de datos de cada canal asignado al tipo de datos en el método mostrado en la siguiente tabla:


C1 C2 C3 C4 C6
vuelo vuelo cv :: Vec2b cv :: Vec3b cv::Vec4b
corto corto cv::Vec2s cv :: Vec3s cv :: Vec4s
En t En t cv :: Vec2i cv::Vec3i cv::Vec4i
flotador flotador cv :: Vec2f cv :: Vec3f cv :: Vec4f cv :: Vec6f
doble doble cv :: Vec2d cv :: Vec3d cv :: Vec4d cv::Vec6d

Entre ellos,

  • Vec2b: Vec2b representan cada objeto puede ser almacenado en dos datos CHAR (carbón de leña)
  • Vec3b: Vec3b que representa cada objeto se puede almacenar 3 datos char (carácter), tales como el uso de tales objetos, para almacenar la imagen RGB
  • Vec4b: Vec4b representación de cada objeto, datos de caracteres se puede almacenar en cuatro se puede utilizar para almacenar un objeto tal clase pasaje RGB + Alfa figura -4

Correspondiente clase Vec se define como sigue:

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;

referencias

[. 1] Interface
[2] la lista. DE MAT la OPENCV TIPO la IN
[. 3] CV_8UC1, CV_8UC2, lo que significa CV_8UC3 Vec2b Vec3b Vec4b
[4] para determinar el tipo de datos de elementos de matriz OpenCV

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

Supongo que te gusta

Origin blog.csdn.net/JNingWei/article/details/104805759
Recomendado
Clasificación