Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo
Diseñar un detector automático de bordes de imágenes aplicando el concepto de
derivadas parciales.
Introducción
¿Por qué crees que resulta importante para un robot poder ver y entender su
entorno?
Las máquinas provistas de visión inteligente pueden utilizar el procesamiento del
lenguaje natural para leer etiquetas e interpretar señales. Los robots con visión
inteligente pueden comprender formas, calcular volúmenes, llenar a la perfección
cajas y camiones, e incluso contenedores de transporte, con el menor espacio
desperdiciado posible.
En los últimos años han existido grandes avances, y actualmente existen muchos
algoritmos que permiten a las computadoras entender el contenido de imágenes y
videos. Por ejemplo, existen algoritmos para identificar los objetos que aparecen en
una imagen, o detectar la presencia de rostros en una fotografía, e incluso
reconocer su identidad.
Dentro de este manual utilizaremos la siguiente imagen para realizar pruebas. Sin
embargo, tú puedes utilizar la que gustes, siempre y cuando sea de extensión jpg.
Como primer paso, deberás importar los siguientes módulos de Python mediante las
primeras cuatro líneas de código. Posteriormente, mediante plt.imread se realiza la
lectura de tu imagen.jpg, la cual se almacena con el nombre de imagen original. Es
necesario que coloques el archivo de tu imagen dentro de la misma carpeta donde
se encuentra el programa de Python. Mediante las dos últimas líneas de código se
muestra en pantalla la imagen, lo que nos da certeza que en este momento ya se
encuentra disponible para poder trabajar con ella.
Como siguiente paso, convertiremos la imagen de color a escala de grises. Para ello
emplearemos la función color.rgb2gray. Nuevamente mostramos en pantalla la
imagen resultante para estar seguros de que todo está funcionando de forma
correcta.
Para conocer el tamaño de la imagen podemos hacerlo de la siguiente forma. El
primer valor corresponde al ancho, y el segundo al largo.
El ancho y el largo de la imagen con la que estamos trabajando son dos datos que
nos serán de gran utilidad en los siguientes pasos. Por ello será conveniente
almacenarlas en dos variables por separado de la siguiente forma. Para verificar
que lo hicimos de forma correcta, imprimimos el valor de las variables.
Suponga que se tiene esta imagen y analizamos la columna y=2. Con el valor de
cada uno de los pixeles creamos una barra con una altura proporcional a su valor.
Recuerde que entre más negro sea el píxel, su valor es más cercano es cero y por
lo tanto tendremos una altura menor. Por otra parte, entre más blanco sea un píxel
su valor será más cercano a uno, y por lo tanto tendremos una altura mayor de su
correspondiente barra. En la siguiente figura vemos al lado derecho la
reconstrucción con barras de la columna y=2. Dicho de otra forma, vemos lo que
ocurre cuando mantenemos constante a la variable y, y únicamente trabajamos con
la variable x.
Los bordes de la imagen pueden resultar más visibles si invertimos los colores.
Actividades
Realiza los siguientes ejercicios de programación en el lenguaje de programación
que prefieras. En cada inciso, incluye en tu reporte el código realizado y el resultado
obtenido con al menos tres imágenes diferentes.
A partir de una imagen jpg muestra las imágenes resultantes de calcular la derivada
parcial con respecto a x, la derivada parcial con respecto a y, el gradiente, y el
gradiente con los colores invertidos .
IMAGEN 1 IMAGEN 2
IMAGEN 3
Diseña un programa que implemente la detección de bordes siguiendo la dirección
de la diagonal ↘.
IMAGEN 1 IMAGEN 2
IMAGEN 3
Diseña un programa que implemente la detección de bordes siguiendo la dirección
de la diagonal ↙.
IMAGEN 1 IMAGEN 2
IMAGEN 3
Reflexiones y conclusiones
¿Qué aplicaciones le podrías dar a la detección automática de bordes?
Se basa en muchas aplicaciones de visión por computador, como detección de
objetos, seguimiento y análisis de movimiento, reconstrucción 3D, conducción
autónoma, análisis de imagen a texto.
¿Qué sucedería si hubiéramos conservado el signo de las derivadas parciales?
Podríamos saber si el cambio se da de claro a oscuro o viceversa y los bordes no se
verían tan marcados .
Fuentes de información
https://www.intel.es/content/www/es/es/manufacturing/what-is-machine-vision.html
https://definicion.de/rgb/
http://www4.ujaen.es/~satorres/practicas/practica3_vc.pdf
https://es.khanacademy.org/math/multivariable-calculus/multivariable-derivatives/part
ial-derivative-and-gradient-articles/a/introduction-to-partial-derivatives
IMAGEN 1
Dirección de la diagonal ↙
IMAGEN 2
Dirección de la diagonal ↙
IMAGEN 3
Dirección de la diagonal ↙