interfaz grÁfica para opencv en python

20
INTERFAZ GRÁFICA PARA OPENCV EN PYTHON RAINER ARENCIBIA HERNÁNDEZ PRESENTACIÓN TFG

Upload: rainer-arencibia

Post on 12-Apr-2017

168 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

RAINER ARENCIBIA HERNÁNDEZ

PRESENTACIÓN TFG

Page 2: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

ÍNDICE

1. Introducción: Motivación, Estado del Arte y Objetivos.2. Software.3. Diseño y Codificación – Diagramas.4. Interfaz gráfica y Secuencia de uso. 5. Filtros digitales: Histograma, Canny y Difuminado Gaussiano.6. Código - Repositorio. 7. Documentación del código: Paquete, Clase y Método.8. Métricas. 9. Conclusiones: Mejoras, Aprendizaje y Experiencia.

Page 3: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

INTRODUCCIÓN - MOTIVACIÓN

• Interfaz Gráfica Usuario: acceder a las funciones de OpenCV.

• Conocer el campo de la vision artificial.• Motivaciones adicionales: Python.• Poner en práctica los conocimientos aprendidos.

- Diferentes paradigmas de programación.

Page 4: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

INTRODUCCIÓN – ESTADO DEL ARTE• Gimp:

- Motores GEGL y GTK+. - Permite tratar cada objeto de la imagen de forma independiente(Capas).- Precio: Gratis.

• XnView:- Categorizar y convertir imágenes.- Trabaja con 400 formatos.- Precio: Gratis.

• Adobe PhotoShop: - Motor gráfico de Adobe.

- Permite tratar cada objeto de la imagen de forma independiente(Capas).- Precio: Alto. Solo para profesionales. “Estándar de facto”.

Page 5: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

INTRODUCCIÓN – OBJETIVOS• Desarrollar una aplicación que procesa imágenes en tiempo

real.

• Herramienta multiplataforma, para estudiantes y profesionales.

• Interfaz gráfica sencilla e intuitiva.

• Proyecto colaborativo e incremental.

Page 6: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

SOFTWARE

Page 7: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

A

A

DISEÑO Y CODIFICACIÓN - DIAGRAMA

APP: VisionViewer

BuilderDescription

Configurator

Tipos filtros: Operators

Viewers

Page 8: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

DISEÑO Y CODIFICACIÓN - DIAGRAMAOperators

Builders

Tipos de filtros

Filtros

Histogram

Canny

Gaussian Blur

Descriptor

Builder

Configurator

Implement

Implement

Implement

Page 9: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

GUI – SECUENCIA DE USO

VisionViewer

Filtros

OpenCV, Qt, Numpy, Scipy

Resultados“Preview”

Cargar image Elegir filtro

Aplicar funcionesGuardar resultados

Page 10: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

FILTROS DIGITALES - HISTOGRAMA

Page 11: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

FILTROS DIGITALES - CANNY

Canny es compatible con

imágenes en grises.

Page 12: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

FILTROS DIGITALES – GAUSSIAN BLUR

Page 13: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

CÓDIGO

El código se ha compartido en un repositorio llamado bitbucket.

Page 14: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

DOCUMENTACIÓN - PAQUETE

El proyecto completo se ha documentado en Inglés. Siguiendo el “PEP 0257 – Docstring Convention”.

Page 15: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

DOCUMENTACIÓN – CLASE Y MÉTODO

Ejemplo de la documentación de una clase y un método.Siguiendo el “PEP 0257 – Docstring Convention”.

Page 16: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

MÉTRICAS• Ficheros creados: 20.• Numero de clases: 14.• Líneas de código: 1276. • Horas de trabajo: 400 + 80 +

10.Codificar

75%

Python

13%

OpenCV8%

Qt, Numpy, Scipy5%

Codificar

Codificar PythonOpenCV Qt, Numpy, Scipy

Codifica

r80%

Memoria16%

Presentación4%

Codificar Memoria Presentación

Page 17: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

CONCLUSIONES - MEJORAS

• Filtros+.• Ventana con historial “Navigator”.• Objeto “Listener”. Filtros compatibles.• Módulo de idiomas.

Page 18: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

CONCLUSIONES - APRENDIZAJE

• Conceptos y definiciones de Visión Artificial.

• Lenguaje Python.• Librerías OpenCV, Qt, Numpy y Scipy.• Documentación de un proyecto, ”PEP-

0257”.• Investigación y corrección de errores.

Page 19: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

CONCLUSIONES - EXPERIENCIA

• Toma decisiones: Análisis, Diseño y Codificación.• Programación con librerías de terceros.• Superado los obstáculos.• Cumplido con los objetivos presentados.• Añadido nuevos elementos:

- Filtros.- Ventana “About us”.- Log para errores.

Page 20: INTERFAZ GRÁFICA PARA OPENCV EN PYTHON

FIN

Muchas gracias!

• Rainer Arencibia Hernández• +34 663 73 79 51• [email protected]• https://www.linkedin.com/in/rainerarencibia