Imágenes como matrices
Parte de la sección Datos y gráficos del Journey de Machine Learning de Coddy. Lección 29 de 60.
Una foto en blanco y negro es una cuadrícula de números, uno por cada píxel que representa su brillo. Así que un arreglo 2D es una imagen, y ax.imshow la dibuja:
plus = np.array([[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]])
fig, ax = plt.subplots()
ax.imshow(plus, cmap="gray")
plt.show()cmap="gray" selecciona el mapa de colores gris: el valor más pequeño es negro y el más grande, blanco. La fila 0 se dibuja arriba, tal como está escrito el array.
Las fotos suelen almacenar valores de 0 (negro) a 255 (blanco). Más adelante en este recorrido, un modelo leerá dígitos escritos a mano almacenados exactamente así.
Desafío
IntermedioUn escáner leyó una letra impresa, pero la guardó invertida: tinta brillante sobre papel oscuro. La lista anidada scan contiene el brillo de cada píxel, de 0 a 255.
- Convierte
scanen un arreglo e inviértelo: cada píxel pasa a ser 255 menos su valor. - Dibújalo con el mapa de colores gris, titúlalo
Letter Ey muéstralo.
El tuyo debería verse como este, una L escaneada después de la corrección:
Tu programa no imprime nada. Coddy describe tu imagen fila por fila.
Pruébalo tú mismo
import numpy as np
import matplotlib.pyplot as plt
scan = [[255, 255, 255, 255, 255],
[255, 30, 0, 0, 0],
[255, 0, 0, 0, 0],
[255, 255, 255, 200, 0],
[255, 0, 0, 0, 0],
[255, 0, 0, 0, 15],
[255, 255, 255, 255, 255]]
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Datos y gráficos
4Dar forma a los datos
Cambiar la forma de los arraysUnir arraysNúmeros aleatoriosRepaso: simulación de dados2Arrays de NumPy
Creación de arraysForma y tamañoRangos de númerosIndexación y segmentaciónRepaso: cuadrícula de temperaturas5Gráficos de líneas y de dispersión
Etiquetas y títulosGráficos de dispersiónVarias líneas y leyendasColores y marcadoresFiguras y ejesRepaso: pasos semanales3Matemáticas con arrays
Operaciones matemáticas con arrays completosEstadísticas resumidasEstadísticas por ejeDifusiónMáscaras booleanasRepaso: calificaciones de exámenes6Gráficos para datos
Gráficos de barrasHistogramasVarios gráficos en unoImágenes como matricesRepaso: informe de precipitacionesPractica por tu cuenta: Compilador de Python online