Matrices e imágenes
Matrices e imágenes
Antes de comenzar a explicar la funcionalidad básica de OpenCV respecto a funciones de entrada y salida, es necesario hacer un inciso para comentar la clase básica de OpenCV es la clase matriz o cv::Mat.
La clase Mat es la clase básica de OpenCV y permite almacenar tanto matrices como imágenes. Esta clase tiene distintos constructores, como el siguiente:
Mat Mat(int rows, int cols, int type, const Scalar& scalar)
En este constructor, para crear una matriz hay que indicar:
- rows. Número de filas de la matriz (tratándose de una imagen, se hablaría del alto o height).
- cols. Número de columnas de la matriz (tratándose de una imagen, se hablaría del ancho o width).
- type. Indica el tipo de los datos internos de la matriz así como el número de canales. OpenCV define distintos tipos básicos que permiten determinar el número de canales y de que tipo serán los datos internos de la matriz. Tratándose de imágenes, lo más normal es que el tipo sea CV_8UC1 o CV_8UC3, que se corresponden con 8 bits sin signo 1 canal (imagen en escala de grises) y 8 bits sin signo 3 canales (imagen en color).
- scalar. Scalar es el valor con el que se va a inicializar la imagen. Por defecto, cuando se crea una imagen se ponen todos sus valores a 0 (negro). Si queremos que por defecto se ponga en azul, por ejemplo, habría que poner en scalar el valor Scalar(255, 0, 0). Hay que tener en cuenta, que OpenCV almacena las imágenes en BGR (azul, verde y rojo) y no en RGB (rojo, verde y azul).