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 |
7
La 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