TABLA DE CONTENIDO
1. INTRODUCCIÓN
1.1 Visión artificial
1.2 OpenCV
1.3 Python
2. INSTALACIÓN DE OPENCV
3. PRIMEROS PASOS
3.1 Carga y visualización de la imagen almacenada en un archivo
3.2 Obtención de las características de una imagen
3.3 Creación de una imagen a partir de una matriz de píxeles
3.4 Modificación del valor de los píxeles de una imagen
3.5 Almacenamiento de una imagen en un archivo
4. FUNCIONES DE INTERFAZ GRÁFICA DE USUARIO
4.1 Ventanas
4.2 Líneas
4.3 Rectángulos
4.4 Círculos y elipses
4.5 Textos
4.6 Barras de desplazamiento
5. INTERACCIÓN CON EL RATÓN Y EL TECLADO
5.1 Gestión de eventos del ratón
5.2 Gestión de eventos del teclado
6. OPERACIONES BÁSICAS DE MANEJO DE IMÁGENES
6.1 Obtención del color de un píxel
6.2 Recorte de regiones
6.3 Escalado
6.4 Adición
6.5 Sustracción
6.6 Operaciones bit a bit
6.7 Cambio del espacio de color
7. HISTOGRAMAS
8. FILTROS DE PROCESAMIENTO DE IMÁGENES
8.1 Filtros basados en umbral
8.1.1 Filtro de umbral simple
8.1.2 Filtro de umbral Otsu
8.1.3 Filtro de umbral adaptativo
8.1.4 Comparación entre filtros
8.2 Filtros lineales
8.2.1 Filtro paso bajo (suavizado)
8.2.2 Filtro paso alto (de gradiente)
8.3 Filtros morfológicos
8.3.1 Filtro de dilatación
8.3.2 Filtro de erosión
8.3.3 Otros filtros morfológicos
8.4 Filtro Canny
9. CONTORNOS
9.1 Identificación
9.2 Dibujo
9.3 Cálculo del perímetro y el área
9.4 Bounding box
9.4.1 Pasatiempos. Las siete diferencias
9.5 Contornos de aproximación
9.6 Otras funciones
10. BÚSQUEDA DE IMÁGENES
11. RECONOCIMIENTO DE OBJETOS
11.1 Reconocimiento facial
11.2 Reconocimiento de ojos
11.3 Identificación de personas
12. OPERACIONES BÁSICAS DE MANEJO DE VÍDEO
12.1 Visualización de las imágenes capturadas por una cámara
12.2 Almacenamiento de vídeos
12.3 Reproducción de vídeos
13. PROCESAMIENTO Y ANÁLISIS DE VÍDEO
13.1 El mundo visto en dibujos animados
13.2 Contador de monedas
13.3 Clasificación de objetos irregulares
13.4 Identificación de figuras geométricas
13.5 Preservación de identidad
13.6 Mascota virtual (I)
14. REALIDAD AUMENTADA
14.1 Ropa y complementos
14.2 Decoración e interiorismo
15. SEGUIMIENTO DE OBJETOS EN PANTALLA
15.1 Color tracking
15.1.1 Rastreo de objetos
15.1.2 Mascota virtual (II)
15.1.3 Mascota virtual (III)
15.2 Meanshift
16. SUSTRACCIÓN DE UNA IMAGEN DE FONDO
17. ANEXO. FUNDAMENTOS DE PYTHON
17.1 Entorno de desarrollo
17.1.1 Instalación
17.1.2 Descripción general
17.2 Sintaxis básica de Python
17.3 Variables
17.4 Tipos de datos básicos
17.4.1 Números
17.4.2 Cadenas de caracteres
17.4.3 Booleanos
17.4.4 Conversión de tipos
17.5 Operadores
17.6 Estructuras de control
17.6.1 if?else
17.6.2 while
17.6.3 for
17.7 Estructuras de datos
17.7.1 Listas
17.7.2 Tuplas
17.7.3 Conjuntos
17.7.4 Diccionarios
17.8 Entrada de datos de usuario
17.9 EL Depurador de código de Python
17.10 Funciones
17.11 Alcance de las variables
17.12 Clases y objetos
17.12.1 Herencia
17.13 Módulos
17.14 Threads
17.15 Ficheros
17.16 Excepciones
La visión artificial es una disciplina científica formada por un conjunto de técnicas que permiten la captura, el procesamiento y el análisis de imágenes, con el fin de extraer información de utilidad. Su objetivo es automatizar tareas reservadas hasta hace poco tiempo al ámbito humano en áreas como la seguridad, la industria, el comercio, la medicina, etc. Muchas de las técnicas empleadas en visión artificial proceden de otras disciplinas, como la inteligencia artificial o el deep learning, que exigen amplios conocimientos matemáticos. Por ese motivo, su expansión no se ha producido hasta la llegada de librerías como OpenCV, que ocultan esta complejidad y las ponen al alcance de cualquiera que disponga de unos conocimientos básicos de programación; en este caso, de Python. En esta segunda edición aprenderá a usar la librería OpenCV de Python, con la que podrá desarrollar aplicaciones de visión artificial, tanto para imágenes estáticas como para vídeo. Todas las técnicas empleadas se exponen de forma clara y sencilla, sin entrar en conceptos matemáticos complejos. Además, se trata de un libro práctico, por lo que está repleto de ejercicios, cuyo código se explica línea a línea. OpenCV es software libre, lo que significa que podrá usarlo sin restricciones. También es multiplataforma, así que es posible ejecutarlo tanto en Windows como en MacOS o Linux. Pero lo que realmente ha dado lugar a su enorme popularidad es la gran cantidad de algoritmos que implementa, con los que podrá: ? Poner en práctica técnicas de reconocimiento facial, identificación de objetos o personas, seguimiento de sus movimientos, etc. ? Crear aplicaciones de realidad aumentada, de inspección y vigilancia, orientadas a la robótica o juegos. En cuanto a Python, este es uno de los lenguajes de programación más extendidos debido a su naturaleza multiplataforma, pero, sobre todo, por su sencillez y facilidad de uso. Eso ha hecho que se utilice en infinidad de ámbitos, entre los que destaca el de la visión artificial. Si no conoce este lenguaje, se proporciona un amplio anexo en el que se enseñan sus principios básicos de funcionamiento y con el que podrá seguir las prácticas propuestas de un modo fácil. Sin lugar a dudas, este es el libro indicado para aprender a desarrollar con agilidad sus propias aplicaciones de visión artificial. No espere más, hágase con su ejemplar y exprima todo su potencial. Tomás Domínguez es ingeniero en telecomunicaciones y doctor en inteligencia artificial, con amplia experiencia laboral técnica. Asimismo, ha ejercido como profesor universitario de Ingeniería Informática en la Universidad Alfonso X el Sabio de Madrid.