Primeros pasos con la visión artificial

Instalación o Configuración

Instrucciones detalladas sobre cómo configurar o instalar la visión artificial.

Para esta y las siguientes series de visión por computadora, usaré Python 2 como lenguaje de programación. Python es una opción común para la comunidad científica, es gratuito, tiene muchas bibliotecas gratuitas y de código abierto, y si eres nuevo en la programación, es uno de los más simples para aprender y comenzar a programar.

Ahora configure, si usa Linux, probablemente ya tenga python, simplemente abra la terminal y escriba ‘python’ para verificar si todo ya está funcionando. Otros, puede consultar [este enlace] 1 y descargar python 2.7.

En segundo lugar, necesitaremos instalar las bibliotecas que vamos a utilizar en el código fuente. Ahora, una nota aquí, esta configuración está diseñada para este ejemplo, en etapas posteriores, agregaremos diferentes bibliotecas y, por supuesto, diferentes aplicaciones de visión por computadora pueden requerir bibliotecas específicas como OpenCV. Solo necesitaremos que se instale una biblioteca en nuestro sistema para ejecutar el código. Cuando uso python, generalmente instalo dependencias usando ‘pip’. Es una herramienta sencilla para instalar los módulos de python, también puedes comprobarlo a través de este enlace

Ahora, estamos listos para instalar la biblioteca que necesitamos, PyPNG. Si estás usando pip todo lo que necesitas hacer es

pip instalar PyPNG

en la terminal si está usando Linux/Mac, en la línea de comando si está usando Windows.

Además, para estos ejercicios, debe obtener imágenes que se pueden encontrar en el enlace de github junto con el código fuente y los cuadernos de ipython.

https://github.com/Skorkmaz88/compvis101

Ahora, deberíamos estar listos para ir a hacer ejercicio.

Ejemplos

Esta es una serie de ejercicios Python de procesamiento de imágenes y visión por computadora muy simple, diseñada para introducir estos temas con poca práctica. Lo siento de antemano por cualquier error de novato, todavía está en desarrollo. En esta serie, limitaré las imágenes digitales que podemos usar a archivos PNG en aras de la simplicidad, que también abordaré el tema de la compresión de imágenes.

Clona el repositorio si aún no lo has hecho, o simplemente puedes descargarlo aquí a través de Github:

git clone https://github.com/Skorkmaz88/compvis101

Hay dos archivos que puede usar, uno de ellos es tutorial0.py y otro es readImages.ipynb, el segundo es un cuaderno de ipython si prefiere usarlo, puede hacerlo. Pero dos archivos están haciendo lo mismo.

El código tiene explicaciones en los comentarios, soy


# libretas
importar png

# Creamos una imagen en escala de grises como se describe en nuestro texto.
# Para hacer eso simplemente, creamos una matriz 2D en python.
# x e y, siendo x direcciones horizontales e y verticales.

x = []
y = []
# Juega con estos valores de píxeles para obtener diferentes imágenes en escala de grises, deberían ser
# en el rango de 0 - 255.
blanco = 255
gris = 128
negro = 0
ancho = 100
altura = 300

# Agregue un rectángulo de 100 x 100 como píxeles de valor blanco (255)
para i en el rango (0, 100):
    for j in range(0,100):
        y.append(white); # Pixel (i,j) is being set to a value, rest is coding trick to nest two lists 
    x.append(y)
    y = []
    
# Agregue un rectángulo de 100 x 100 como píxeles con valor de gris medio (128)
para i en el rango (0, 100):
    for j in range(0,100):
        y.append(gray);
    x.append(y)
    y = []

# Agregue un rectángulo de 100 x 100 como píxeles de valor negro (0)
para i en el rango (0, 100):
    for j in range(0,100):
        y.append(black);
    x.append(y)
    y = []

# archivo de imagen de salida
f = abrir('fuera.png', 'wb')
w = png.Writer(ancho, alto, escala de grises=Verdadero, profundidad de bits=8)
w.escribir(f, x)
f.cerrar()
# Si todo salió bien, deberías tener 3 rectángulos alineados verticalmente blanco, gris y negro
# Revisa tu carpeta de trabajo

# PARTE 2
# Leer una imagen en escala de grises y convertirla a binaria

# Esta vez vamos a binarizar una imagen en escala de grises, para ello vamos a leer los píxeles y según el umbral que establezcamos
# decidiremos si ese píxel debe ser blanco o negro

# Este archivo es originalmente una imagen png de 8 bits, se puede encontrar en el repositorio de github, debe usar solo este tipo de
# imágenes si desea cambiar la imagen.
f = abrir('./img/lenaG.png', 'r')

r=png.Reader(archivo=f)
# Verá los detalles sobre la imagen, por ahora preste atención solo al tamaño y la profundidad de bits.
img = r.leer()

ancho = img[0]
altura = img[1]
# Valor umbral para binarizar imágenes,
umbral = 128
print "El tamaño de la imagen de entrada es: "+ str (ancho) + " píxeles como ancho, " + str (alto) + " píxeles como alto"

f_out = abrir('lenaBinary.png', 'wb')
w = png.Writer(ancho, alto, escala de grises=Verdadero, profundidad de bits=1)

píxeles = img[2]
 
X = []
y = []

# Recorramos la imagen de Lena
por fila en píxeles:
    for pixel in row:
        p_value =  pixel
        # Now here we binarize image in pixel level
        if p_value > threshold:
            p_value = 1
        else:
            p_value = 0
            
        y.append(p_value);
    x.append(y)
    y = []

w.escribir(f_fuera, x)
f_out.cerrar()

Si todo funcionó bien, ¡felicidades! Creó una imagen desde cero y realizó la primera transformación a nivel de píxeles en una imagen existente. Revisa tu carpeta de trabajo para ver las nuevas imágenes