Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento digital de imágenes, Unidad 6 — Filtrado para detección de detalles, 6.1 — Realce de bordes ·

Filtros de alta frecuencia

Filtros de alta frecuencia

Introducción

En el campo del procesamiento digital de imágenes, los filtros de alta frecuencia son fundamentales para realce de bordes y detección de detalles. Estos filtros ayudan a enfatizar las características con frecuencias altas en una imagen, lo que significa rastrear rápidas variaciones de intensidad en la imagen, como bordes o edgelines. Este artículo explora cómo funcionan los filtros de alta frecuencia y ofrece un conjunto de consejos prácticos para su implementación efectiva.

Explicación principal con ejemplos

Los filtros de alta frecuencia son esenciales para detectar bordes en imágenes. Un filtro de alta frecuencia mantiene las características rápidamente cambiantes (como los bordes) mientras disminuye o elimina las áreas planas. Para implementar un filtro de alta frecuencia, se puede aplicar una transformada de Fourier a la imagen y luego multiplicar el espectro por un factor que reduce las frecuencias bajas.

Ejemplo en Python usando OpenCV

import cv2
import numpy as np
from matplotlib import pyplot as plt

# Cargar la imagen
img = cv2.imread('imagen.jpg', 0)

# Convertir a espacio de frecuencia con FFT
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)

# Aplicar un filtro de paso alto
rows, cols = img.shape
crow, ccol = rows//2 , cols//2

# Crear una máscara del filtro paso alto
mask = np.zeros((rows,cols),np.uint8)
r = 30 # Radio del círculo
center = [crow,ccol]
x,y = np.ogrid[:rows,:cols]
mask[(x-center[0])**2 + (y-center[1])**2 <= r*r] = 1

# Aplicar la máscara al espectro de frecuencia
fshift_masked = fshift * mask

# Inversa de la transformada de Fourier
img_high_freq = np.fft.ifft2(np.fft.ifftshift(fshift_masked))
img_high_freq = np.abs(img_high_freq)

# Mostrar resultados
plt.subplot(1, 2, 1), plt.imshow(img, cmap='gray')
plt.title('Imagen Original'), plt.xticks([]), plt.yticks([])
plt.subplot(1, 2, 2), plt.imshow(img_high_freq, cmap='gray')
plt.title('Imagen con Filtro de Alta Frecuencia'), plt.xticks([]), plt.yticks([])
plt.show()

Errores típicos / trampas

  1. Máscaras inadecuadas: Un error común es aplicar una máscara que no elimina suficientes frecuencias bajas, lo que puede resultar en resultados inexactos.
  2. Ruido en la imagen: Los filtros de alta frecuencia pueden acentuar tanto los bordes como el ruido. Es importante filtrar o reducir el ruido antes de aplicar estos filtros.
  3. Desfase de centro: Si no se alinea correctamente el centro del círculo en la máscara, puede afectar negativamente la detección de bordes.

Checklist accionable

  • Verifica que tu imagen esté en escala de grises antes de aplicar el filtro.
  • Utiliza una transformada de Fourier para pasar a la representación del dominio de la frecuencia.
  • Diseña una máscara del filtro paso alto adecuada, asegurándote de que cubra las frecuencias bajas.
  • Aplica un umbral a los resultados para mejorar la visualización y el análisis.
  • Asegúrate de reducir cualquier ruido en la imagen antes de aplicar el filtro.

Cierre con "Siguientes pasos"

Siguientes pasos

  1. Aprende más sobre visión por computadora: Explora temas avanzados como aprendizaje profundo y modelos de red neuronal.
  2. Practica en proyectos reales: Aplica filtros de alta frecuencia a diferentes tipos de imágenes para mejorar tus habilidades prácticas.
  3. Experimenta con diferentes máscaras: Intenta cambiar la forma y tamaño de las máscaras del filtro paso alto para observar los cambios en el resultado.

Siguiendo estos pasos, podrás mejorar significativamente tu comprensión y aplicación práctica de filtros de alta frecuencia en el procesamiento digital de imágenes.

Contacto

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