Serie de tutoriales de visión artificial M1C1

Feb 20 2023
Módulo 1 — Representación y clasificación de imágenes Capítulo 1 - Introducción a la visión por computadora Con este artículo, estoy comenzando una nueva serie para aquellos que estén interesados ​​en aprender visión por computadora. ¿Por qué aprender CV? Bueno, la visión por computadora es un arte con la ayuda que le estás dando a la computadora para comprender el mundo visual.

Módulo 1: Representación y clasificación de imágenes

Capítulo 1 - Introducción a la visión artificial

Con este artículo, estoy comenzando una nueva serie para aquellos que estén interesados ​​en aprender visión artificial.

¿Por qué aprender CV?

Bueno, la visión por computadora es un arte con la ayuda que le estás dando a la computadora para comprender el mundo visual. Hay muchos ejemplos de la vida real de la visión por computadora que usamos en nuestra vida cotidiana. Cuando haces clic en una selfie, ¿por qué hay un pequeño cuadrado en tu cara? Cuando escaneas un documento, obtienes los bordes de los documentos ya detectados, ¿cómo cambian los fondos las serpentinas y cómo creó Tesla los autos sin conductor? Todo fue gracias a los avances en Computer Vision que hizo que todas estas cosas fueran posibles.

Fuente: Medio viaje

Objetivos de aprendizaje:

  1. ¿Cómo cargar una imagen usando la biblioteca cv2?
  2. La verdadera naturaleza de una imagen.
  3. ¿Cómo convertir una imagen de un espacio de color a otro?
  4. ¿Cómo comparar los canales RGB y BGR?
  5. ¿Cómo trazar una imagen creando una matriz?
  6. ¿Cómo comparar diferentes canales de un solo espacio de color?
  1. Importaciones
  2. #Imports
    import matplotlib.pyplot as plt
    import numpy as np
    import cv2
    

# load the image
img = cv2.imread('your desired image name')
# Change the image into desired colorspace
grayscale = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

f,(ax1,ax2,ax3) = plt.subplots(1,3,figsize=(30,8))
ax1.set_title('BGR')
ax1.imshow(img)
ax2.set_title('RGB')
ax2.imshow(rgb)
ax3.set_title('GRAY')
ax3.imshow(grayscale,cmap='gray')

      
                
Output

Cada imagen que vemos en este mundo no es nada, sino una matriz de números con varios rangos de valores según los espacios de color que estemos usando. Por ejemplo, para el espacio de color RGB, cada valor de cambio tiene un rango de 0 a 255, mientras que el canal de matiz en el canal HSV tiene un rango de 0 a 180.

Para conocer la forma de la imagen, ejecute el siguiente comando:

print(img.shape)
>>(2160, 4096, 3)
print(img[:1,:1])
>>[[[55 24  1]]]

Para conocer el valor de cualquier píxel en una imagen en escala de grises, use

x,y = 1000,1000
at_1000 = grayscale[x,y]
print(at_1000)
>>60

grayscale[1000,1000,]
>>60

Generemos el alfabeto S usando una matriz numpy.

Letter_S = np.array([[255, 0, 0, 0, 255],
                      [255, 0, 255, 255, 255],
                      [255, 0, 0, 0, 255],
                      [255, 255, 255, 0, 255],
                      [255, 0, 0, 0, 255]])
plt.imshow(Letter_S,cmap='gray')
# Exchange 0's and 255's to see the change

      
                
Output

# Store values of each channel in different array
r = rgb[:,:,0]
g = rgb[:,:,1]
b = rgb[:,:,2]
fig, (ax1,ax2,ax3) = plt.subplots(1,3,figsize=(20,10))

ax1.set_title('R Channel')
ax1.imshow(r, cmap='gray')

ax2.set_title('G Channel')
ax2.imshow(g,cmap='gray')

ax3.set_title('B Channel')
ax3.imshow(b,cmap='gray')

      
                
Output

Envolver

Con esto, hemos completado nuestros objetivos de aprendizaje para esta lección.

He subido el código aquí para su referencia, y aquí está el cuaderno .

Próximos:

Los streamers en la transmisión en vivo usan una pantalla verde para cambiar su fondo, pero ¿sabes por qué se usa una pantalla verde?

  • Obtendrá la respuesta a esta pregunta en el próximo cuaderno, y también cambiaremos el fondo de la imagen.

Hasta entonces, sígueme para obtener más información y no olvides conectarte conmigo en LinkedIn .❤❤❤