Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:opencv [2008/06/02 14:57] alfred |
fw:opencv [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== OpenCV ====== | ====== OpenCV ====== | ||
| - | OpenCV es una biblioteca de Intel que contiene rutinas y clases para el desarrollo de //Computer Vision// e //Image Processing// para C++. | + | OpenCV es una biblioteca de Intel que contiene rutinas y clases para el desarrollo de [[ai:computer_vision|Computer Vision]] e [[ai:image_processing|Image Processing]] para C\C++. |
| ===== Introducción ===== | ===== Introducción ===== | ||
| Línea 185: | Línea 185: | ||
| - | ===== Estructuras de datos y gestión de memoria ===== | + | |
| ===== Tratamiento de imágenes ===== | ===== Tratamiento de imágenes ===== | ||
| + | |||
| + | |||
| + | |||
| ==== Conceptos ==== | ==== Conceptos ==== | ||
| - | === Canal === | + | * Un **canal** de una imágen digital corresponde a una imágen en escala de grises que representa la cantidad de un color primario en la imágen que estamos tratando. Por ejemplo, las imágenes RGB tienen 3 canales: rojo, verde y azul; las CMYK 4: cyan, magenta, amarillo y negro. |
| - | Un canal de una imágen digital corresponde | + | * La **normalización** es el proceso de cambiar la intensidad de los píxels de una imágen de forma que esté en un rango más igualado (también se le llama //contrast stretching//). |
| + | |||
| ==== Acciones básicas sobre imágenes ==== | ==== Acciones básicas sobre imágenes ==== | ||
| + | Para indicar sobre qué área de la imágen vamos a trabajar (Region Of Interest) utilizaremos la función **cvSetImageROI** que recibe la imágen y un **CvRect** que sería dicha región, a partir de entonces la imágen sólo sería esa región hasta que llamemos a **cvResetImageROI**. En cualquier momento podemos llamar a **cvGetImageROI** para saber la //Region of Interest// actual. Las mismas funciones existen para el COI (Channel Of Interest), podemos escoger sobre qué canal de la imágen trabajaremos. \\ \\ | ||
| + | Funciones como **cvSet**, **cvSetZero** o **cvCopy** asignan o copias bloques de una imágen. Por ejemplo la primera, **cvSet**, asigna un ''CvScalar'' a una imágen, el **cvSetZero** asigna a 0 los valores de color y el **cvCopy**copia de una imágen a otra. | ||
| + | <code c> | ||
| + | CvRect rect = cvRect(0, 0, 200, 200 ); | ||
| + | cvSetImageROI(img, rect); | ||
| + | cvSetZero(img); | ||
| + | cvResetImageROI(img); | ||
| + | </code> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Histogramas ==== | ||
| + | Un histograma es una gráfica estadística que muestra las frecuencias de los valores de una variable. El histograma de una imágen es un histograma que corresponde a los valores de los píxels de dicha imágen, generalmente el número de píxels se coloca en vertical y su valor de brillo en horizontal, por ejemplo, si una imágen está en escala de grises los rangos se localizarán en la parte horizontal que corresponda al gris. También existe el histograma de color, que representa la distribución de colores, pero no es tan utilizado como el histograma de imágen que nos permite variar el brillo y el contraste de forma sencilla utilizando el método //histogram equalization//. \\ \\ | ||
| - | ===== Computer Vision ===== | ||
| - | ===== Cómo... ===== | ||
| + | ===== Notas ===== | ||
| + | * Para la utilización en Linux hay que instalar los paquetes: ''libcv'', ''libcvaux'' y ''libhighgui''. | ||