Visión artificial. Tomás Domínguez Mínguez. Читать онлайн. Newlib. NEWLIB.NET

Автор: Tomás Domínguez Mínguez
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9788426733474
Скачать книгу
GNU), ya que permite incluso el uso de su código fuente en software comercial.

      Como se acaba de comentar, OpenCV está disponible en los principales lenguajes de programación. De todos ellos, utilizará Python, quizás el empleado por un mayor número de programadores en el mundo. Los motivos de la enorme aceptación de este lenguaje seguramente estén en su sencillez de aprendizaje y facilidad de uso.

Illustration

      No solo permite el clásico modo de programación imperativo, sino que también admite una programación orientada a objetos, con lo que se abre al uso de infinidad de librerías que, como OpenCV, están basadas en este paradigma.

      Su entorno multiplataforma hace que se pueda trabajar con él, independientemente de si dispone de un ordenador con Windows, Mac o Linux (incluso Raspberry). Como requisito adicional, necesitará disponer de una webcam, que podrá ser la integrada en el propio ordenador o cualquier otra conectada vía USB.

      La versión de Python utilizada será la 3.x (a fecha de publicación del libro es la 3.7). No tiene sentido utilizar Python2 cuando fue oficialmente descontinuado el 1 de enero de 2020.

      ¿Todavía no conoce Python? Al final del libro dispone de un amplio anexo que representa en sí mismo un curso de iniciación a este lenguaje. En primer lugar, aprenderá cómo se instala y utiliza su entorno de desarrollo. Haciendo uso de él, practicará con los tipos de datos básicos, los operadores y las estructuras de datos o de control imprescindibles del lenguaje. La orientación a objetos tendrá un tratamiento especial, así como el desarrollo de funciones o el uso de módulos (librerías). Se explica todo lo necesario (incluso más) para que pueda entender el código de las múltiples prácticas con las que se demuestran los conceptos de visión artificial introducidos en cada capítulo de la mano de OpenCV. El objetivo final es que, inspirándose en estos programas de prueba, usted pueda desarrollar sus propios proyectos. Los límites que pueda llegar a alcanzar estarán en su imaginación.

      Unidad 2

      INSTALACIÓN DE OPENCV

      Puesto que va a trabajar con la librería OpenCV para Python, deberá tener instalado el entorno de desarrollo de este lenguaje en su ordenador. Si no fuera así, en el anexo final se indica cómo hacerlo. Aunque esta librería funciona tanto con la versión 2.7 como con la 3.4 y superiores, tal como se ha comentado en el apartado anterior, se utilizará únicamente Python 3.7.

      Evidentemente, para usar la librería OpenCV, primero hay que instalarla. Para ello, abra una ventana de símbolo del sistema y ejecute el comando:

      pip install opencv-python

Illustration Illustration

      Recuerde que en algunas distribuciones de Linux el comando que debe utilizar es pip3.

Illustration

      La forma más sencilla de abrir una ventana de símbolo del sistema en Windows es escribiendo su nombre en el campo de búsqueda situado en la parte inferior izquierda del escritorio. Enseguida le aparecerá un icono sobre el que podrá pulsar para abrir dicha ventana.

Illustration

      En la instalación de este paquete, puede observar que también se carga la librería NumPy, utilizada para trabajar con matrices.

Illustration

      Aunque no entraremos en conceptos matemáticos, para entender por qué la visión artificial y las matrices están tan unidas, piense que una imagen puede definirse como una función f(x, y) cuyos argumentos son las coordenadas x, y de cada píxel, y el resultado es el nivel de luz (o color) del píxel situado en dichas coordenadas.

      En otras palabras, una imagen no es más que un array de dos dimensiones (de tres en el caso de imágenes en color) cuyos elementos contienen el valor de cada uno de sus píxeles. A los arrays de dos dimensiones se les llama matrices. Si tuvieran tres serían tensores. Sin embargo, por simplicidad, generalmente se empleará el término matriz.

      Para saber si OpenCV está correctamente instalado, entre en el intérprete de Python (comando python) y ejecute las siguientes sentencias:

Illustration

      El resultado debe devolver la versión de la librería instalada (en este caso la 4.4.0).

Illustration Illustration

      Toda la documentación de esta librería se encuentra en:

       https://docs.opencv.org/4.4.0/

      Aunque no es imprescindible, aproveche también para instalar la librería matplotlib ejecutando el siguiente comando:

      pip install matplotlib

      Dicha librería le permitirá generar gráficos a partir de datos contenidos en listas.

Illustration

      Por similitud con la terminología utilizada en otros lenguajes de programación, el término librería se utilizará como sinónimo de módulo o paquete (aunque no sean conceptos exactamente iguales).

      Unidad 3

      PRIMEROS PASOS

      En los siguientes apartados estudiará las operaciones básicas de creación o carga de imágenes desde un archivo y su visualización en pantalla, así como la modificación de su contenido y posterior almacenamiento en disco.

      Pero antes deberá conocer el sistema de coordenadas utilizado, en el que cada píxel se localiza en la imagen por su posición horizontal y vertical (x, y). Como puede ver en la siguiente figura, el origen (0, 0) no está localizado en el centro de la imagen, sino en la parte superior izquierda. El píxel marcado en color rojo estaría situado en la coordenada (3, 1).

Illustration

      Otro de los conceptos básicos previos al uso de las funciones de OpenCV es el color, formado por los componentes B, G, R (Blue, Green, Red; Azul, Verde, Rojo), o lo que es lo mismo, los valores de la intensidad de sus componentes azul, verde y rojo. Estos tres colores se consideran primarios porque cualquier otro color se puede obtener a partir de una mezcla de ellos. El valor mínimo de intensidad que pueden tener es 0, y el máximo, 255.

Illustration Illustration

      Seguramente le resulte más familiar el espacio de color RGB; por eso, preste especial atención al hecho de que OpenCV utiliza por defecto BGR. Más adelante sabrá cómo pasar de uno a otro o incluso a HSV, ampliamente utilizado en las técnicas de reconocimiento y seguimiento de objetos por su mayor eficiencia.

      Ejemplos de especificación de colores utilizando la nomenclatura BGR serían:

      •