Como ve una computadora
Para una computadora, una imagen es una MATRIZ de numeros. Cada pixel tiene 3 valores (Blue, Green, Red) entre 0-255.
Una imagen de 1920x1080 es una matriz de 1920 × 1080 × 3 = 6.2 millones de numeros. Un video a 30 FPS son 186 millones de numeros por segundo.
Conceptos fundamentales:
• Pixel: Punto minimo con valores de color (B, G, R en OpenCV) • Resolucion: Ancho × Alto en pixeles • Canales: 1 (gris), 3 (color BGR), 4 (color + transparencia BGRA) • Depth: Precision de cada valor (8-bit: 0-255, 32-bit: float) • FPS: Frames por segundo en video
OpenCV (Open Computer Vision) es la libreria #1: • 20+ anos de desarrollo, soporte de Intel • 2,500+ algoritmos optimizados • Funciona en Python, C++, Java, JavaScript • Usado en: Tesla Autopilot, filtros de Instagram, camaras de seguridad, drones, medicina
import cv2
import numpy as np
# Crear imagen desde cero (negro)
img = np.zeros((300, 400, 3), dtype=np.uint8)
# Dibujar formas
cv2.rectangle(img, (50, 50), (200, 150), (0, 255, 0), 2) # Verde
cv2.circle(img, (300, 100), 50, (0, 0, 255), -1) # Rojo relleno
cv2.line(img, (0, 200), (400, 200), (255, 255, 0), 3) # Cyan
cv2.putText(img, "OpenCV!", (100, 280),
cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# Cargar imagen de archivo
foto = cv2.imread("foto.jpg")
if foto is not None:
print(f"Tamano: {foto.shape}") # (alto, ancho, canales)
print(f"Pixeles: {foto.shape[0] * foto.shape[1]:,}")
# Acceder a un pixel
b, g, r = foto[100, 200] # BGR del pixel en (100, 200)
# Resize
small = cv2.resize(foto, (320, 240))
# Convertir a gris
gris = cv2.cvtColor(foto, cv2.COLOR_BGR2GRAY)
# Guardar
cv2.imwrite("resultado.jpg", gris)
# Mostrar (solo funciona en escritorio, no en servidor)
# cv2.imshow("Imagen", img)
# cv2.waitKey(0)
Practica esta lección
Resuelve los ejercicios del curso de Computer Vision con Python en la app, gratis y con corrección automática.
Empezar a practicar