Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Visión por computador desde cero, Unidad 5 — Filtrado y convolución, 5.1 — Ruido en imágenes ·

Origen del ruido

Origen del ruido

Introducción

En la visión por computador, el ruido es un desafío constante que afecta la calidad de las imágenes y, a su vez, impacta en la precisión de los algoritmos de procesamiento. Es crucial comprender desde dónde proviene este ruido para poder mitigarlo adecuadamente. En esta lección, exploraremos los diferentes tipos de ruido presentes en las imágenes digitales, su origen y cómo afectan a la calidad del procesamiento.

Explicación principal con ejemplos

El ruido en imágenes puede surgir por varias causas, incluyendo problemas técnicos, condiciones ambientales y fallos durante el proceso de adquisición. En esta sección, analizaremos los tipos más comunes de ruido y proporcionaremos ejemplos para ilustrar cada uno.

Tipos de ruido

  1. Ruido Gaussiano:

Es el tipo de ruido más común en imágenes digitales. Se distribuye según una curva normal (distribución gaussiana). Cada píxel adquiere un valor adicional basado en una media y desviación estándar.

  1. Ruido sal y pimienta:

Este tipo de ruido se caracteriza por puntos blancos (sal) o negros (pimienta) que aparecen aleatoriamente en la imagen. Es un resultado frecuente del fallo del sensor digital.

  1. Ruido Rayleigh:

Se asocia con el ruido en las imágenes adquiridas en condiciones de alto contraste, como la exposición a rayos X o luz ultravioleta.

  1. Ruido Poisson:

Es particularmente relevante para imágenes de bajo contraste, como microscopios ópticos o fotografías nocturnas. Se relaciona con la distribución de Poisson en el flujo de fotones capturados por la cámara.

  1. Ruido de compresión:

Este tipo de ruido se genera cuando una imagen es comprimida y luego descomprimida, lo que puede distorsionar las características del píxel original.

Ejemplo: Ruido Gaussiano

import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter

# Generación de una imagen sin ruido
imagen_original = np.zeros((100, 100))
imagen_original[25:75, 25:75] = 1.0

# Adición de ruido Gaussiano
ruido = np.random.normal(0, 0.1, imagen_original.shape)
imagen_ruidosa = imagen_original + ruido

# Aplicación de un filtro gaussiano para suavizar el ruido
imagen_filtrada = gaussian_filter(imagen_ruidosa, sigma=1)

plt.figure(figsize=(12, 4))
plt.subplot(131), plt.imshow(imagen_original, cmap='gray'), plt.title('Sin Ruido')
plt.subplot(132), plt.imshow(imagen_ruidosa, cmap='gray'), plt.title('Con Ruido Gaussiano')
plt.subplot(133), plt.imshow(imagen_filtrada, cmap='gray'), plt.title('Filtrada')
plt.show()

Errores típicos / trampas

  1. Suponer que el ruido es homogéneo:

A menudo se asume que el ruido afecta a toda la imagen de manera uniforme, lo cual no siempre es cierto. El ruido puede variar según las condiciones ambientales y técnicas.

  1. Ignorar la distribución del ruido:

No todos los tipos de ruido siguen una distribución normal. Es importante identificar la naturaleza exacta del ruido para aplicar el filtro adecuado.

  1. No considerar la relación entre el ruido y el contraste:

El nivel de ruido puede variar según el contraste de la imagen, lo que afecta la elección del método de filtrado a utilizar.

Checklist accionable

  1. Identifica el tipo de ruido presente en tu imagen.
  2. Analiza las condiciones técnicas y ambientales para determinar si es posible reducir o eliminar el ruido.
  3. Utiliza herramientas como scipy.ndimage para aplicar filtros adecuados.
  4. Valida la efectividad del filtrado aplicando métodos de medición de calidad, como la métrica PSNR (Peak Signal-to-Noise Ratio).
  5. Documenta los resultados y ajusta el proceso según sea necesario.

Siguientes pasos

En esta lección, aprendimos sobre los tipos comunes de ruido en imágenes digitales, su origen y cómo afectan al procesamiento. Para continuar avanzando, podrías:

  1. Aprofunda en el análisis de la calidad de las imágenes usando metrados como PSNR.
  2. Experimenta con diferentes técnicas de filtrado para reducir el ruido Gaussiano e imitar otros tipos de ruido.
  3. Aplica tus conocimientos a proyectos prácticos, como la detección de bordes en imágenes reales.

¡Esperamos que esta lección te haya proporcionado una base sólida para abordar el ruido en imágenes y mejorar la calidad del procesamiento visual!

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).