Revisión de métodos de filtrado y segmentación de imágenes digitales. Filtrado lineal en el dominio espacial.

El filtrado de imágenes es una operación que da como resultado una imagen del mismo tamaño, obtenida a partir de la original según ciertas reglas. Normalmente, la intensidad (color) de cada píxel en la imagen resultante está determinada por las intensidades (colores) de los píxeles ubicados en alguna vecindad del mismo en la imagen original.

Las reglas de filtrado pueden ser muy diversas. El filtrado de imágenes es una de las operaciones más fundamentales de la visión por computadora, el reconocimiento de patrones y el procesamiento de imágenes. El trabajo de la gran mayoría de los métodos de procesamiento de imágenes comienza con uno u otro filtrado de las imágenes originales.

Filtros lineales tienen una descripción matemática muy simple. Supondremos que se da la imagen de semitonos original A y denotaremos las intensidades de sus píxeles como A(x, y). Un filtro lineal se define mediante una función de valor real h (núcleo de filtro) definida en el ráster. El filtrado en sí se realiza mediante la operación de convolución discreta (suma ponderada):

B(x, y) = h(i, j) ③③A(x, y) = h(i, j) A(xi, yj). (17.3.1)

El resultado es la imagen B. Normalmente, el núcleo del filtro es distinto de cero sólo en alguna vecindad N del punto (0, 0). Fuera de esta vecindad, h(i, j) es igual a cero, o muy cercano a él y puede despreciarse. La suma es superior a (i, j)  N, y el valor de cada píxel B(x, y) está determinado por los píxeles de la imagen A que se encuentran en la ventana N centrada en el punto (x, y) (denotado por el conjunto N(x, y) ). Un núcleo de filtro definido en una vecindad rectangular N puede verse como una matriz de m por n donde las longitudes de los lados son números impares. Al especificar un núcleo como matriz, debe estar centrado. Si un píxel (x, y) se encuentra cerca de los bordes de la imagen, entonces las coordenadas A(x-i, y-j) para ciertos (i, j) pueden corresponder a píxeles A inexistentes fuera de la imagen. Este problema se puede resolver de varias maneras.

Evite filtrar estos píxeles recortando los bordes de la imagen B o aplicando los valores originales de la imagen A a sus valores.

No incluya el píxel que falta en la suma, distribuyendo su peso h(i, j) uniformemente entre otros píxeles en la vecindad N(x, y).

Determine los valores de píxeles fuera de los límites de la imagen mediante extrapolación.

Defina valores de píxeles más allá de los límites de la imagen utilizando una continuación especular de la imagen.

La elección del método se realiza teniendo en cuenta el filtro específico y las características de la imagen.

Filtros anti-aliasing. El filtro de suavizado rectangular más simple de radio r se especifica utilizando una matriz de tamaño (2r+1) × (2r+1), cuyos valores son iguales a 1/(2r+1) 2, y la suma de los los valores son iguales a uno. Este es un análogo bidimensional de un filtro en forma de U de media móvil unidimensional de paso bajo. Al filtrar con dicho núcleo, el valor del píxel se reemplaza por el valor promedio de los píxeles en un cuadrado con un lado 2r+1 alrededor. Ejemplo de mascarilla filtrante 3×3:

.

Un uso de los filtros es la reducción de ruido. El ruido varía independientemente de un píxel a otro y, siempre que la expectativa matemática del valor del ruido sea cero, el ruido de los píxeles vecinos se cancelará entre sí cuando se sume. Cuanto mayor sea la ventana de filtrado, menor será la intensidad media del ruido; sin embargo, también se producirá un desenfoque correspondiente de detalles significativos de la imagen. La imagen de un punto blanco sobre fondo negro durante el filtrado (reacción a un solo impulso) será un cuadrado uniformemente gris.

La reducción de ruido mediante un filtro rectangular tiene un inconveniente importante: todos los píxeles de la máscara del filtro a cualquier distancia del que se está procesando tienen el mismo efecto en el resultado. Se obtiene un resultado ligeramente mejor modificando el filtro aumentando el peso del punto central:

.

Se puede lograr una reducción de ruido más efectiva si la influencia de los píxeles en el resultado disminuye al aumentar la distancia desde el procesado. Un filtro gaussiano con núcleo tiene esta propiedad: h(i, j) = (1/2 2) exp(-(i 2 +j 2)/2   Un filtro gaussiano tiene un núcleo distinto de cero núcleo de tamaño infinito Sin embargo, los valores del núcleo del filtro disminuyen muy rápidamente a cero a medida que nos alejamos del punto (0, 0) y, por lo tanto, en la práctica podemos limitarnos a la convolución con una pequeña ventana alrededor de (0, 0). , por ejemplo, tomando el radio de la ventana igual a 3σ.

El filtrado gaussiano también se suaviza. Sin embargo, a diferencia de un filtro rectangular, la imagen de un punto con filtrado gaussiano será un punto borroso simétrico, con un brillo que disminuirá desde el centro hacia los bordes. El grado de desenfoque de la imagen está determinado por el parámetro σ.

Filtros de mejora del contraste . Mientras que los filtros antialiasing reducen el contraste local de una imagen al difuminarla, los filtros que mejoran el contraste tienen el efecto opuesto y son esencialmente filtros de alta frecuencia espacial. El núcleo de un filtro de mejora del contraste en el punto (0, 0) tiene un valor mayor que 1, con una suma total de valores igual a 1. Por ejemplo, los filtros de mejora del contraste son filtros con un núcleo definido por las matrices :

. .

Un ejemplo del uso de un filtro se muestra en la Fig. 17.3.1. El efecto de mejorar el contraste se logra debido al hecho de que el filtro enfatiza la diferencia entre las intensidades de los píxeles vecinos, alejando estas intensidades entre sí. Este efecto será más fuerte cuanto mayor sea el valor del término central del núcleo. Un artefacto característico del filtrado lineal que mejora el contraste es una luz perceptible y halos oscuros menos perceptibles alrededor de los límites.

Filtros de diferencia – estos son filtros lineales especificados por aproximaciones discretas de operadores diferenciales (usando el método de diferencias finitas). Estos filtros desempeñan un papel vital en muchas aplicaciones, por ejemplo, para encontrar bordes en una imagen.

El operador diferencial más simple es la derivada con respecto a la coordenada x d/dx, que se define para funciones continuas. Variantes comunes de operadores similares para imágenes discretas son los filtros de Prewitt y Sobel:

. .

Los filtros que se aproximan al operador derivada de la coordenada y d/dy se obtienen transponiendo matrices.

El algoritmo más simple para calcular la norma del gradiente desde tres puntos adyacentes:

G(x, y) =
.

También se utiliza una fórmula de cálculo simplificada:

Cálculo de la norma del gradiente sobre cuatro puntos adyacentes (operador de Roberts):

El algoritmo de Sobel utiliza ocho muestras de brillo en las proximidades del punto central:

G(x, y) =
, G(x, y) 
,

Gx x, y = [ A x -1, y -1 +2 A x -1, y + A x -1, y +1 ] - [ A x +1, y -1 +2 A x +1, y + A x +1, y +1 ],

Gyx,y = - .

Junto con una determinación más precisa de la norma de gradiente, el algoritmo de Sobel permite determinar la dirección del vector de gradiente en el plano de análisis de la imagen en el ángulo visual  entre el vector de gradiente y la dirección de las filas de la matriz:

(x, y) = argtg(Gy x,y /Gx x,y).

A diferencia de los filtros de suavizado y mejora del contraste, que no cambian la intensidad promedio de la imagen, la aplicación de operadores de diferencia generalmente da como resultado una imagen con un valor de píxel promedio cercano a cero. Las diferencias verticales (bordes) de la imagen original corresponden a píxeles con valores de módulo grandes en la imagen resultante. Por lo tanto, los filtros de diferencia también se denominan filtros de selección de límites de objetos.

De manera similar a los filtros anteriores, se pueden construir filtros para otros operadores diferenciales utilizando el método de diferencias finitas. En particular, el operador diferencial de Laplace (laplaciano) = 𝝏 2 /𝝏x 2 + 𝝏 2 /𝝏y 2, que es importante para muchas aplicaciones, se puede aproximar para imágenes discretas usando un filtro con una matriz (una de las opciones ):

.

Como se puede observar en la Fig. 17.3.2, como resultado del uso del laplaciano discreto, los valores absolutos grandes corresponden a diferencias de brillo tanto verticales como horizontales. Por tanto, el filtro es un filtro que encuentra límites de cualquier orientación. Se pueden encontrar límites en una imagen aplicando este filtro y tomando todos los píxeles cuyo valor absoluto exceda un cierto umbral.

Sin embargo, un algoritmo de este tipo tiene importantes inconvenientes. El principal es la incertidumbre a la hora de elegir el valor umbral. Para diferentes partes de la imagen, normalmente se obtiene un resultado aceptable con valores de umbral significativamente diferentes. Además, los filtros diferenciales son muy sensibles al ruido de la imagen.

Convolución cíclica bidimensional. Al igual que con las señales unidimensionales, la convolución bidimensional se puede realizar en el dominio de la frecuencia espacial utilizando algoritmos de transformada rápida de Fourier y multiplicando los espectros bidimensionales de la imagen y el núcleo del filtro. También es cíclico y suele realizarse en versión deslizante. Teniendo en cuenta la ciclicidad, para calcular un patrón constante del espectro del núcleo, las dimensiones de la máscara del filtro del núcleo se duplican a lo largo de los ejes y se rellenan con ceros, y las mismas dimensiones de la máscara se utilizan para seleccionar una ventana que se desliza por la imagen, dentro de la cual se realiza la FFT. Implementar un filtro FIR usando FFT es especialmente efectivo si el filtro tiene un área de referencia grande.

Filtros no lineales . En el procesamiento de imágenes digitales, los algoritmos no lineales basados ​​en estadísticas de clasificación se utilizan ampliamente para restaurar imágenes dañadas por varios modelos de ruido. Le permiten evitar distorsiones adicionales de la imagen al eliminar el ruido y también mejoran significativamente los resultados de los filtros en imágenes con un alto grado de ruido.

Introduzcamos el concepto de vecindad M de un elemento de imagen A (x, y), que es central para esta vecindad. En el caso más simple, el vecindario M contiene N píxeles: puntos que caen dentro de la máscara de filtro, incluido (o no incluido) el central. Los valores de estos N elementos se pueden organizar en una serie de variación V(r), clasificados en orden ascendente (o descendente), y se pueden calcular ciertos momentos de esta serie, por ejemplo, el valor promedio de brillo m N y varianza d N . El valor de salida del filtro, que reemplaza la muestra central, se calcula mediante la fórmula:

B(x, y) = A(x, y) + (1-)m N .

(17.3.2)

El valor del coeficiente  está asociado con una cierta dependencia con las estadísticas de muestras en la ventana de filtro, por ejemplo:

d N /(d N + k d S), (17.3.3)

donde d S es la dispersión del ruido en la imagen en su conjunto o en el vecindario S para S > M y MS, k es la constante de confianza para la dispersión de los vecindarios S. Como se desprende de esta fórmula, para k = 1 y d N  d S, se produce   0,5, y el valor B(x, y) = (A(x, y) + m N)/2, es decir se suman igualmente a partir de los valores de la muestra central y el valor promedio de los píxeles de su M-vecindad. A medida que aumentan los valores de d N, aumenta la contribución al resultado del valor de la referencia central, y con una disminución, aumenta el valor de m N. El peso de la contribución de los valores medios en el barrio M se puede cambiar por el valor del coeficiente k.

La elección de la función estadística y la naturaleza de la dependencia del coeficiente  de ella puede ser bastante diversa (por ejemplo, según la dispersión de las diferencias en las muestras en el barrio M con una muestra central), y depende tanto de la tamaño de la apertura del filtro y de la naturaleza de las imágenes y del ruido. Esencialmente, el valor del coeficiente  debe especificar el grado de daño a la muestra central y, en consecuencia, la función de préstamo para su corrección de las muestras del vecindario M.

Los tipos más simples y comunes de filtros no lineales para el procesamiento de imágenes son los filtros de umbral y de mediana. Filtrado de umbral

se da, por ejemplo, de la siguiente manera:

B(x, y) = Magnitud es el umbral de filtrado. Si el valor del punto central del filtro excede el valor promedio de las muestras m N en su vecindario M por el valor umbral, entonces se reemplaza por el valor promedio. El valor umbral puede ser constante o funcionalmente dependiente del valor del punto central.

Filtrado mediano se define de la siguiente manera:

B(x, y) = med (M(x, y)),

aquellos. el resultado del filtrado es el valor medio de los píxeles de la vecindad, cuya forma está determinada por la máscara de filtro. El filtrado mediano puede eliminar eficazmente el ruido de una imagen que afecta de forma independiente a los píxeles individuales. Por ejemplo, dicha interferencia son los píxeles "rotos" durante la fotografía digital, el ruido de "nieve" cuando algunos de los píxeles se reemplazan por píxeles con máxima intensidad, etc. La ventaja del filtrado mediano es que un píxel "caliente" sobre un fondo oscuro será reemplazado por uno oscuro, en lugar de "mancharse" alrededor del área.

El filtrado medio tiene una selectividad pronunciada con respecto a los elementos de la matriz, que son un componente no monótono de la secuencia de números dentro de la apertura del filtro. Al mismo tiempo, el filtro mediano deja sin cambios el componente monótono de la secuencia. Gracias a esta característica, los filtros medianos, con una apertura óptimamente seleccionada, preservan los límites nítidos de los objetos sin distorsión, suprimiendo el ruido no correlacionado o débilmente correlacionado y los detalles de pequeño tamaño.

Filtros extremos se determinan de acuerdo con las reglas:

B mín (x, y) = mín (M(x, y)),

B máx (x, y) = máx (M(x, y)),

aquellos. el resultado del filtrado son los valores de píxeles mínimo y máximo en la máscara de filtro. Estos filtros se utilizan normalmente para imágenes binarias.

La variedad de enfoques de mejora de imágenes se divide en dos categorías: métodos de procesamiento en el dominio espacial (métodos espaciales) y métodos de procesamiento en el dominio de frecuencia (métodos de frecuencia). El dominio espacial se refiere al conjunto de píxeles que componen la imagen. La función de preprocesamiento del dominio espacial se escribe como

Dónde F(incógnita, y) – imagen de entrada,

gramo(incógnita, y) – imagen de salida (procesada),

h– operador de función F, definido en algún dominio ( incógnita, y).

Las operaciones de este tipo pertenecen a la clase general. operaciones sobre elementos vecinos. Estas operaciones son las principales herramientas para procesamiento de imágenes de bajo nivel o procesamiento de imágenes en el dominio espacial.

El enfoque principal para determinar la vecindad de un punto ( incógnita, y) es el uso de un área cuadrada o rectangular de una porción de la imagen centrada en el punto ( incógnita, y). El centro de esta parte de la imagen se mueve de píxel a píxel, comenzando, por ejemplo, desde la esquina superior izquierda. Al mismo tiempo, para obtener gramo(incógnita, y) El operador se aplica para cada posición ( incógnita, y). Aunque a veces se utilizan otras formas vecinas (como un círculo), se prefieren las formas cuadradas debido a su facilidad de implementación.

Uno de los métodos de dominio espacial más utilizados se basa en el uso de filtros (máscaras de convolución, plantillas, ventanas). Normalmente, una máscara de filtro es un sistema bidimensional pequeño (por ejemplo, de dimensión 3*3), cuyos coeficientes se seleccionan de tal manera que detecten una propiedad de imagen determinada (Fig. 1.5, a).

Arroz. 1.5: a – máscara filtrante; b – coeficientes de máscara de filtro

Si los valores w 1 ,w 2 ,…,w 9 representan coeficientes, máscaras de píxeles ( incógnita, y) y sus ocho vecinos (Fig. 1.5, b), entonces el algoritmo se puede representar realizando la siguiente operación en una vecindad de 3*3 puntos (incógnita, y) :

La tarea de filtrado de imágenes en un sentido amplio se entiende como cualquier procedimiento de procesamiento de imágenes en el que se suministra una imagen rasterizada como entrada al procedimiento y se genera una imagen rasterizada como salida. Sin embargo, más a menudo se entiende por "filtrado" el llamado interferencia filtración. El objetivo principal del filtrado de ruido es procesar imágenes de tal forma que el resultado sea más adecuado desde el punto de vista de una aplicación concreta. En general podemos distinguir filtros lineales(filtros suavizantes, filtros de mejora del contraste, filtros de diferencia) y filtros no lineales(filtro mediano).

A continuación se ofrece una breve descripción de los métodos de filtrado más comunes.

Filtro de paso bajo– debilita los componentes de alta frecuencia y mejora el papel de los de baja frecuencia. La frecuencia, cuando se aplica a las imágenes, refleja la cantidad de detalles presentes en la imagen. Los cambios repentinos de brillo, interferencias y ruido son ejemplos de elementos de alta frecuencia en una imagen. El suavizado de imágenes se implementa utilizando los siguientes núcleos:

,

,

.

Filtro de paso alto– debilita los componentes de baja frecuencia en la imagen y realza el papel de los de alta frecuencia. Los filtros de paso alto se utilizan para resaltar detalles como contornos, bordes o para enfocar una imagen. Cada salto de brillo y cada contorno representa un detalle intenso asociado con frecuencias elevadas. El aislamiento de componentes de alta frecuencia se realiza utilizando los siguientes núcleos:

,

,

.

El camarógrafo de Roberts. El operador de Roberts es un ejemplo de filtro no lineal. La transformación de cada píxel con el operador cruzado de Roberts puede mostrar la derivada de la imagen a lo largo de una diagonal distinta de cero, y la combinación de estas imágenes transformadas también se puede considerar como un gradiente desde los dos píxeles superiores hasta los dos inferiores. El operador de Roberts se utiliza por razones de velocidad de cálculo, pero es inferior a otras alternativas debido al importante problema de la sensibilidad al ruido. Produce líneas más finas que otros métodos de resaltado de bordes.

En el procesamiento intervienen cuatro píxeles, ubicados de la siguiente manera (Fig. 1.6).

Arroz. 1.6. Píxeles involucrados en el procesamiento por parte del operador Roberts

Respuesta del operador Roberts:

Los núcleos de convolución en este caso tendrán este aspecto:

,

.

La convolución de cada núcleo se calcula por separado. La respuesta de este filtro es el valor.

, (1.17)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

A veces la cantidad
.

Operador Sobel. El operador de Sobel se utiliza en algoritmos de detección de bordes. Este es un operador diferencial discreto que calcula un valor aproximado del gradiente de brillo de una imagen. El resultado de aplicar el operador de Sobel en cada punto de la imagen es el vector del gradiente de brillo en este punto o su norma. El método de mejora de bordes que utiliza el operador Sobel considera dos núcleos de convolución diferentes:

A partir de estas convoluciones se calcula la magnitud y dirección de los bordes. La convolución de cada núcleo se calcula por separado. La respuesta de este filtro es el valor.

, (1.19)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

A veces la cantidad
.

El camarógrafo de Prewitt. El operador Prewitt opera de manera similar al operador Sobel. El detector de límites de Prewitt es un método adecuado para estimar el tamaño y la orientación de los límites. Mientras que un detector de gradiente diferencial requiere mucho tiempo para calcular las estimaciones de orientación a partir de magnitudes en las direcciones vertical y horizontal, el detector de bordes Prewitt proporciona la dirección directamente desde el núcleo con el máximo resultado. El método de mejora de bordes que utiliza el operador Prewitt considera dos núcleos de convolución diferentes:

El resultado del operador Prewitt es

, (1.21)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

Operador de Laplace. El operador discreto de Laplace se utiliza a menudo en el procesamiento de imágenes, como en aplicaciones de extracción de bordes o estimación de movimiento. El laplaciano discreto se define como la suma de segundas derivadas y se calcula como la suma de las diferencias en los vecinos del píxel central. El método de mejora de bordes de Laplace considera varios núcleos de convolución diferentes. Éstos son algunos de ellos:

Como puede ver, la suma de los elementos de la matriz es cero, por lo que la respuesta del filtro puede ser negativa. En este caso, el valor de respuesta se toma módulo. Como resultado del procesamiento, las áreas con intensidad constante o que aumenta linealmente se vuelven negras y las áreas con valores de intensidad que cambian rápidamente se resaltan con brillo.

A continuación se muestran algunos procesos espaciales que no entran en la categoría de convolución y pueden usarse para eliminar varios tipos de ruido.

Filtro de media armónica. Media armónica de la serie.
calculado por la fórmula

. (1.23)

Durante el proceso de filtrado, el valor del píxel de la imagen actual se reemplaza por
conjuntos de valores para nueve píxeles, incluidos los actuales y los vecinos.

mín.– filtrar. Durante el proceso de filtrado, el valor del píxel actual se reemplaza por el valor mínimo de los píxeles vecinos. Así, por ejemplo, para un núcleo de dimensión 3 tendremos:

máx.– filtrar. Durante el proceso de filtrado, el valor del píxel actual se reemplaza por el valor máximo de los píxeles vecinos (similar al filtro anterior).

mín.- máx.-filtrar. Durante el proceso de filtrado, el valor del píxel actual en la imagen se reemplaza primero por el valor mínimo de los píxeles vecinos y, cuando se pasa nuevamente, por el máximo.

Filtro mediano. El filtrado promedio utiliza los valores de los elementos contenidos en la región contigua para determinar un nuevo valor. El filtro organiza los elementos de la región contigua en orden y selecciona el valor promedio. Entonces, por ejemplo, para un núcleo de dimensión 3, el valor mediano será el quinto:

Utilizando métodos de procesamiento de imágenes espaciales, se pueden lograr una serie de efectos interesantes. Enumeremos algunos de ellos.

Efecto de relieve. Usando la operación de convolución, puede implementar una transformación que dé el efecto de relieve en la imagen.

(1.24)

Imagen binaria de "pseudosemitonos". La imagen original se procesa utilizando una máscara D2 o D4: si el valor del píxel es menor que el valor proporcional del elemento de máscara correspondiente, entonces se establece en cero; de lo contrario, se asigna 255. La máscara se aplica a la imagen sin superponerse . Máscaras D2 y D4:

,

.

Al utilizar procesos espaciales, pueden surgir las siguientes preguntas relacionadas con las peculiaridades del procesamiento de píxeles:

    Eliminación de efectos de borde;

    El valor de respuesta está fuera de los límites.

Para la primera pregunta, son posibles las siguientes soluciones:

    Excluir los píxeles del borde de la imagen de la conversión

en este caso, la imagen de salida será más pequeña o los píxeles del límite se pintarán, por ejemplo, de negro;

    No incluya el píxel correspondiente en la suma, distribuyendo uniformemente su peso entre otros píxeles de la vecindad;

    Complete (completa) la imagen original agregando la cantidad requerida de píxeles a lo largo del borde. La cantidad de columnas que se agregarán generalmente depende del tamaño del kernel. Hay dos opciones aquí:

    • Determine los valores de píxeles fuera de los límites de la imagen mediante extrapolación.

      Por ejemplo, considere el valor de intensidad cerca de la constante límite o considere el gradiente de intensidad cerca de la constante límite;

Defina valores de píxeles fuera de los límites de la imagen mediante duplicación.

    Para resolver problemas asociados con el valor que va más allá de los límites, son posibles las siguientes acciones:

    Escale los valores obtenidos para respuestas de filtro positivas;

Si la respuesta del filtro es negativa, tome el valor absoluto (módulo) o redúzcalo a cero.

    También en este apartado cabe dar una posible “clasificación” del ruido en la imagen:

    Ruido de sal y pimienta: píxeles blancos y negros aleatorios;

    Ruido impulsivo: píxeles blancos aleatorios;

El ruido gaussiano son fluctuaciones de intensidad distribuidas según una ley normal. Anotación:

Introducción. Filtros lineales: definición, filtros anti-aliasing, filtros de mejora del contraste, filtros de diferencia. Filtros no lineales: ejemplos de filtros no lineales, operadores morfológicos.

8.1. Introducción

Imaginemos que, mirando con un ojo alguna escena, acercamos hacia ella una placa de cristal. Si esta placa no fuera perfectamente transparente, la imagen observada cambiará. Dependiendo del vidrio del que esté fabricado el plato, el cambio puede ser muy diverso. Por ejemplo, si este vidrio fue coloreado, la imagen adquirirá el tono apropiado, pero si el vidrio está turbio, se volverá borrosa. Es similar a mirar el mundo a través de una placa de vidrio, aunque permite conseguir una variedad de efectos mucho mayor que los experimentos con diferentes placas. El filtrado de imágenes es una operación que da como resultado una imagen del mismo tamaño, obtenida a partir de la original según ciertas reglas. Normalmente, la intensidad (color) de cada píxel en la imagen resultante está determinada por las intensidades (colores) de los píxeles ubicados en alguna vecindad del mismo en la imagen original.

Reglas que definen el filtrado (se llaman filtros), pueden ser muy diversos. En esta conferencia veremos los filtros más simples. Nótese que, según la definición propuesta, también es un filtro una operación que consiste en la aplicación secuencial de dos o más filtros. Así, podemos hablar de filtros compuestos, correspondiente a combinaciones de números primos. Habiendo estudiado los tipos básicos de filtros en esta conferencia, nos ocuparemos del uso de filtros compuestos por ellos para resolver una variedad de problemas en conferencias posteriores. El filtrado de imágenes es una de las operaciones más fundamentales de la visión por computadora, el reconocimiento de patrones y el procesamiento de imágenes. De hecho, el trabajo de la gran mayoría de los métodos comienza con algún tipo de filtrado de las imágenes originales. Por lo tanto, los filtros discutidos en esta conferencia son de extrema importancia en términos de su uso en diversas aplicaciones.

8.2. Filtros lineales

Definición

(8.1)

El resultado es la imagen B. En la definición (8.1) omitimos los límites de suma. Por lo general, el núcleo del filtro es distinto de cero sólo en alguna vecindad N del punto (0, 0). Fuera de esta vecindad, F(i, j) es exactamente cero o está muy cerca de él, por lo que puede despreciarse. La suma en (8.1) se realiza sobre , y el valor de cada píxel B(x, y) está determinado por los píxeles de la imagen A que se encuentran en la ventana N centrada en el punto (x, y) (denotaremos este conjunto N(x, y)) . Un núcleo de filtro definido en una vecindad rectangular N puede verse como una matriz de m por n donde las longitudes de los lados son números impares. Al especificar el núcleo mediante la matriz M kl, éste debe estar centrado:

(8.2)

La situación en la que el píxel (x, y) está situado cerca de los bordes de la imagen también necesita mayor aclaración. En este caso, A(x + i, y + j) en la definición (8.1) puede corresponder a un píxel A que se encuentra fuera de la imagen A. Este problema se puede resolver de varias maneras.

  • No filtre dichos píxeles recortando la imagen B en los bordes o pintándolos, por ejemplo, de negro.
  • No incluya el píxel correspondiente en la suma, distribuyendo su peso F(i, j) uniformemente entre otros píxeles en la vecindad N(x, y) .
  • Determine los valores de píxeles fuera de los límites de la imagen mediante extrapolación. Por ejemplo, considere el valor de intensidad cerca de la constante límite (para el píxel (-2, 5) tenemos A(-2, 5) = A(0, 5)) o considere el gradiente de intensidad cerca de la constante límite ( A(-2, 5) = A(0, 5) + 2(A(0, 5) - A(1, 5))).
  • Defina valores de píxeles fuera de los límites de la imagen utilizando la reflexión especular (A(-2, 5) = A(2, 5)).

La elección de un método específico debe realizarse teniendo en cuenta el filtro específico y las características de una aplicación específica.

Habiendo examinado la definición general de filtros lineales, pasemos a los ejemplos.

La variedad de enfoques de mejora de imágenes se divide en dos categorías: métodos de procesamiento en el dominio espacial (métodos espaciales) y métodos de procesamiento en el dominio de frecuencia (métodos de frecuencia). El dominio espacial se refiere al conjunto de píxeles que componen la imagen. La función de preprocesamiento del dominio espacial se escribe como

Dónde F(incógnita, y) – imagen de entrada,

gramo(incógnita, y) – imagen de salida (procesada),

h– operador de función F, definido en algún dominio ( incógnita, y).

Las operaciones de este tipo pertenecen a la clase general. operaciones sobre elementos vecinos. Estas operaciones son las principales herramientas para procesamiento de imágenes de bajo nivel o procesamiento de imágenes en el dominio espacial.

El enfoque principal para determinar la vecindad de un punto ( incógnita, y) es el uso de un área cuadrada o rectangular de una porción de la imagen centrada en el punto ( incógnita, y). El centro de esta parte de la imagen se mueve de píxel a píxel, comenzando, por ejemplo, desde la esquina superior izquierda. Al mismo tiempo, para obtener gramo(incógnita, y) El operador se aplica para cada posición ( incógnita, y). Aunque a veces se utilizan otras formas vecinas (como un círculo), se prefieren las formas cuadradas debido a su facilidad de implementación.

Uno de los métodos de dominio espacial más utilizados se basa en el uso de filtros (máscaras de convolución, plantillas, ventanas). Normalmente, una máscara de filtro es un sistema bidimensional pequeño (por ejemplo, de dimensión 3*3), cuyos coeficientes se seleccionan de tal manera que detecten una propiedad de imagen determinada (Fig. 1.5, a).

Arroz. 1.5: a – máscara filtrante; b – coeficientes de máscara de filtro

Si los valores w 1 ,w 2 ,…,w 9 representan coeficientes, máscaras de píxeles ( incógnita, y) y sus ocho vecinos (Fig. 1.5, b), entonces el algoritmo se puede representar realizando la siguiente operación en una vecindad de 3*3 puntos (incógnita, y) :

La tarea de filtrado de imágenes en un sentido amplio se entiende como cualquier procedimiento de procesamiento de imágenes en el que se suministra una imagen rasterizada como entrada al procedimiento y se genera una imagen rasterizada como salida. Sin embargo, más a menudo se entiende por "filtrado" el llamado interferencia filtración. El objetivo principal del filtrado de ruido es procesar imágenes de tal forma que el resultado sea más adecuado desde el punto de vista de una aplicación concreta. En general podemos distinguir filtros lineales(filtros suavizantes, filtros de mejora del contraste, filtros de diferencia) y filtros no lineales(filtro mediano).

A continuación se ofrece una breve descripción de los métodos de filtrado más comunes.

Filtro de paso bajo– debilita los componentes de alta frecuencia y mejora el papel de los de baja frecuencia. La frecuencia, cuando se aplica a las imágenes, refleja la cantidad de detalles presentes en la imagen. Los cambios repentinos de brillo, interferencias y ruido son ejemplos de elementos de alta frecuencia en una imagen. El suavizado de imágenes se implementa utilizando los siguientes núcleos:

,

,

.

Filtro de paso alto– debilita los componentes de baja frecuencia en la imagen y realza el papel de los de alta frecuencia. Los filtros de paso alto se utilizan para resaltar detalles como contornos, bordes o para enfocar una imagen. Cada salto de brillo y cada contorno representa un detalle intenso asociado con frecuencias elevadas. El aislamiento de componentes de alta frecuencia se realiza utilizando los siguientes núcleos:

,

,

.

El camarógrafo de Roberts. El operador de Roberts es un ejemplo de filtro no lineal. La transformación de cada píxel con el operador cruzado de Roberts puede mostrar la derivada de la imagen a lo largo de una diagonal distinta de cero, y la combinación de estas imágenes transformadas también se puede considerar como un gradiente desde los dos píxeles superiores hasta los dos inferiores. El operador de Roberts se utiliza por razones de velocidad de cálculo, pero es inferior a otras alternativas debido al importante problema de la sensibilidad al ruido. Produce líneas más finas que otros métodos de resaltado de bordes.

En el procesamiento intervienen cuatro píxeles, ubicados de la siguiente manera (Fig. 1.6).

Arroz. 1.6. Píxeles involucrados en el procesamiento por parte del operador Roberts

Respuesta del operador Roberts:

Los núcleos de convolución en este caso tendrán este aspecto:

,

.

La convolución de cada núcleo se calcula por separado. La respuesta de este filtro es el valor.

, (1.17)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

A veces la cantidad
.

Operador Sobel. El operador de Sobel se utiliza en algoritmos de detección de bordes. Este es un operador diferencial discreto que calcula un valor aproximado del gradiente de brillo de una imagen. El resultado de aplicar el operador de Sobel en cada punto de la imagen es el vector del gradiente de brillo en este punto o su norma. El método de mejora de bordes que utiliza el operador Sobel considera dos núcleos de convolución diferentes:

A partir de estas convoluciones se calcula la magnitud y dirección de los bordes. La convolución de cada núcleo se calcula por separado. La respuesta de este filtro es el valor.

, (1.19)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

A veces la cantidad
.

El camarógrafo de Prewitt. El operador Prewitt opera de manera similar al operador Sobel. El detector de límites de Prewitt es un método adecuado para estimar el tamaño y la orientación de los límites. Mientras que un detector de gradiente diferencial requiere mucho tiempo para calcular las estimaciones de orientación a partir de magnitudes en las direcciones vertical y horizontal, el detector de bordes Prewitt proporciona la dirección directamente desde el núcleo con el máximo resultado. El método de mejora de bordes que utiliza el operador Prewitt considera dos núcleos de convolución diferentes:

El resultado del operador Prewitt es

, (1.21)

Dónde PAG Y q– respuesta de los núcleos h 1 y h 2 .

Operador de Laplace. El operador discreto de Laplace se utiliza a menudo en el procesamiento de imágenes, como en aplicaciones de extracción de bordes o estimación de movimiento. El laplaciano discreto se define como la suma de segundas derivadas y se calcula como la suma de las diferencias en los vecinos del píxel central. El método de mejora de bordes de Laplace considera varios núcleos de convolución diferentes. Éstos son algunos de ellos:

Como puede ver, la suma de los elementos de la matriz es cero, por lo que la respuesta del filtro puede ser negativa. En este caso, el valor de respuesta se toma módulo. Como resultado del procesamiento, las áreas con intensidad constante o que aumenta linealmente se vuelven negras y las áreas con valores de intensidad que cambian rápidamente se resaltan con brillo.

A continuación se muestran algunos procesos espaciales que no entran en la categoría de convolución y pueden usarse para eliminar varios tipos de ruido.

Filtro de media armónica. Media armónica de la serie.
calculado por la fórmula

. (1.23)

Durante el proceso de filtrado, el valor del píxel de la imagen actual se reemplaza por
conjuntos de valores para nueve píxeles, incluidos los actuales y los vecinos.

mín.– filtrar. Durante el proceso de filtrado, el valor del píxel actual se reemplaza por el valor mínimo de los píxeles vecinos. Así, por ejemplo, para un núcleo de dimensión 3 tendremos:

máx.– filtrar. Durante el proceso de filtrado, el valor del píxel actual se reemplaza por el valor máximo de los píxeles vecinos (similar al filtro anterior).

mín.- máx.-filtrar. Durante el proceso de filtrado, el valor del píxel actual en la imagen se reemplaza primero por el valor mínimo de los píxeles vecinos y, cuando se pasa nuevamente, por el máximo.

Filtro mediano. El filtrado promedio utiliza los valores de los elementos contenidos en la región contigua para determinar un nuevo valor. El filtro organiza los elementos de la región contigua en orden y selecciona el valor promedio. Entonces, por ejemplo, para un núcleo de dimensión 3, el valor mediano será el quinto:

Utilizando métodos de procesamiento de imágenes espaciales, se pueden lograr una serie de efectos interesantes. Enumeremos algunos de ellos.

Efecto de relieve. Usando la operación de convolución, puede implementar una transformación que dé el efecto de relieve en la imagen.

(1.24)

Imagen binaria de "pseudosemitonos". La imagen original se procesa utilizando una máscara D2 o D4: si el valor del píxel es menor que el valor proporcional del elemento de máscara correspondiente, entonces se establece en cero; de lo contrario, se asigna 255. La máscara se aplica a la imagen sin superponerse . Máscaras D2 y D4:

,

.

Al utilizar procesos espaciales, pueden surgir las siguientes preguntas relacionadas con las peculiaridades del procesamiento de píxeles:

    Eliminación de efectos de borde;

    El valor de respuesta está fuera de los límites.

Para la primera pregunta, son posibles las siguientes soluciones:

    Excluir los píxeles del borde de la imagen de la conversión

en este caso, la imagen de salida será más pequeña o los píxeles del límite se pintarán, por ejemplo, de negro;

    No incluya el píxel correspondiente en la suma, distribuyendo uniformemente su peso entre otros píxeles de la vecindad;

    Complete (completa) la imagen original agregando la cantidad requerida de píxeles a lo largo del borde. La cantidad de columnas que se agregarán generalmente depende del tamaño del kernel. Hay dos opciones aquí:

    • Determine los valores de píxeles fuera de los límites de la imagen mediante extrapolación.

      Por ejemplo, considere el valor de intensidad cerca de la constante límite o considere el gradiente de intensidad cerca de la constante límite;

Defina valores de píxeles fuera de los límites de la imagen mediante duplicación.

    Para resolver problemas asociados con el valor que va más allá de los límites, son posibles las siguientes acciones:

    Escale los valores obtenidos para respuestas de filtro positivas;

Si la respuesta del filtro es negativa, tome el valor absoluto (módulo) o redúzcalo a cero.

    También en este apartado cabe dar una posible “clasificación” del ruido en la imagen:

    Ruido de sal y pimienta: píxeles blancos y negros aleatorios;

    Ruido impulsivo: píxeles blancos aleatorios;

DIGITAL TRATAMIENTO SEÑALES

Tema 17. PROCESAMIENTO DE IMAGEN

No hay nada que la imaginación humana se atreva a hacer.

Tito Lucrecio. Filósofo y poeta romano. yo siglo ANTES DE CRISTO mi.

La imaginación es algo bueno. Pero un buen programa de gráficos hará un mejor trabajo al sacar a una persona sin hogar del sótano, lavarla, convertirla en Apolo, empacarla en una caja de cerillas y enviársela por correo electrónico a un amigo.

Anatoly Pyshmintsev, geofísico de Novosibirsk de la escuela de los Urales. Siglo XX

Introducción.

1. Conceptos básicos. Representación gráfica de imágenes. Representación del color en infografías. Modelo de color RGB. Sistema de color CIE XYZ.

2. Transformaciones geométricas de imágenes rasterizadas. Áreas y etapas de transformación. Muestreo. Serie de interpolación para la reconstrucción de una señal bidimensional. Distorsiones de frecuencia de las imágenes y su eliminación. Remuestreo de imágenes.

3. Filtrado de imágenes. Filtros lineales. Filtros anti-aliasing. Filtros de mejora del contraste. Filtros de diferencia. Convolución cíclica bidimensional. Filtros no lineales. Filtrado de umbrales. Filtrado medio. Filtros extremos.

4. Compresión de imágenes. Algoritmos de codificación de longitud repetida (RLE). Algoritmos de diccionario. Algoritmos de codificación estadística. Compresión de imágenes con pérdida. Estimación de pérdida en imágenes. Transformada de Fourier. Transformada wavelet.

INTRODUCCIÓN

El alcance de la investigación en el campo de la imagen digital está creciendo rápidamente. Esto está determinado por el hecho de que el procesamiento de imágenes es el procesamiento de señales multidimensionales, y la mayoría de las señales en el mundo real son multidimensionales.

Una imagen en representación matemática es una señal bidimensional que transporta una gran cantidad de información. Una imagen en color de 500 × 500 elementos es una matriz de varios cientos de miles de bytes. Esta información sólo puede procesarse mediante una organización racional de los cálculos. Para tareas específicas de procesamiento de imágenes, se pueden aplicar técnicas de procesamiento eficientes teniendo en cuenta las características y limitaciones de esa tarea específica. Pero si hablamos de procesamiento de imágenes para resolver una amplia clase de problemas, entonces es necesario identificar un conjunto de operaciones estándar a partir de las cuales se puedan construir algoritmos para resolver problemas arbitrarios. Estas incluyen transformaciones lineales, convolución 2D y transformada de Fourier discreta 2D.

Pero las transformaciones no lineales también se utilizan ampliamente en el procesamiento de imágenes. La peculiaridad de las imágenes es que los elementos individuales de la imagen están en cierta conexión con los elementos vecinos. Por lo tanto, la mayoría de los algoritmos de conversión de imágenes son de naturaleza local, es decir, procesan imágenes por grupos de elementos ubicados en las proximidades del elemento dado. Las transformaciones lineales satisfacen la propiedad de localidad y permiten la construcción de algoritmos cuya complejidad computacional depende poco del tamaño de la vecindad circundante. Se requieren las mismas propiedades para las transformaciones de imágenes no lineales. La clase de tales transformaciones incluye algoritmos llamados algoritmos de filtrado de rango, basados ​​​​en el cálculo de estadísticas de rango local de imágenes. Al calcular las estadísticas de clasificación y sus derivadas, es posible realizar simplificaciones debido a la redundancia de información de las imágenes. El algoritmo más famoso de esta clase es el algoritmo de filtrado de mediana. Otros ejemplos de algoritmos de clasificación son los algoritmos de filtrado extremo, que reemplazan el elemento de la imagen analizada con un máximo o mínimo en la vecindad. Otra propiedad de los algoritmos de clasificación es la adaptación local a las características de la imagen procesada y la posibilidad de utilizarlos no sólo para suavizar y eliminar ruido, sino también para resaltar características en el reconocimiento automático de imágenes.

En el procesamiento de imágenes, los métodos para procesar señales unidimensionales se utilizan ampliamente si pueden generalizarse a señales multidimensionales. Al mismo tiempo, es necesario tener en cuenta que los métodos matemáticos para describir sistemas multidimensionales no están completos. Los sistemas multidimensionales tienen una gran cantidad de grados de libertad y su diseño adquiere una flexibilidad que no es característica de los sistemas unidimensionales. Al mismo tiempo, los polinomios multidimensionales no se pueden descomponer en factores primos, lo que complica el análisis y la síntesis de sistemas multidimensionales.

17.1. Conceptos básicos

Representación gráfica de imágenes. Para presentar información gráfica en un plano bidimensional (pantalla de monitor), se utilizan dos enfoques: ráster y vectorial.

Con el enfoque vectorial, la información gráfica se describe como un conjunto de objetos geométricos abstractos: líneas rectas, segmentos, curvas, rectángulos, etc. La descripción vectorial asume un conocimiento a priori sobre la estructura de la imagen.

Los gráficos rasterizados funcionan con imágenes arbitrarias en forma de rasterizados. Un ráster es una descripción de una imagen en un plano dividiéndola (muestreándola) en elementos idénticos en una cuadrícula regular y asignando a cada elemento su propio color y cualquier otro atributo. El ráster más simple es rectangular, el más económico en cuanto al número de muestras para transmitir imágenes es hexagonal. Desde un punto de vista matemático, una trama es una aproximación constante por partes en el plano de una función de imagen continua.

Un elemento ráster se llama píxel. Identificación de píxeles estándar:

f(i, j) = (A(i, j),C(i, j)), (17.1.1)

donde A(i, j) Ì R2 es el área del píxel, C(i, j) Î C es el atributo del píxel (normalmente color). Hay dos tipos de atributos más utilizados:

C(i, j) = I(i, j) - intensidad de píxeles (brillo);

C(i, j) = (R(i, j), G(i, j), B(i, j)) - atributos de color en el modelo de color RGB.

En forma matricial:

Mij ​​= (Aij, Cij).

Al discretizar imágenes continuas, los valores de Aij se pueden definir de dos maneras, ya sea como los valores de los puntos Aij = (i, j), para los cuales se definen los atributos Cij, o como los valores de los cuadrados Aij = (i, i+1) × (j, j+1) o cualquier otra forma, con Cij determinado por los valores promedio dentro de esta forma (Fig. 17.1.1).

En la práctica, como regla general, X e Y son conjuntos limitados de números enteros no negativos de un ráster cuadrado o rectangular con una relación de aspecto de ancho a alto del ráster, que se escribe en la forma, por ejemplo, "4:3". .

Representación del color en infografías. El concepto de color se basa en la percepción por parte del ojo humano de ondas electromagnéticas en un determinado rango de frecuencia. La luz del día que percibimos tiene longitudes de onda λ de 400 nm (violeta) a 700 nm (rojo). El flujo luminoso se puede describir mediante su función espectral I(λ). La luz se llama monocromática si su espectro tiene una sola longitud de onda específica.

Hay dos tipos de receptores en la retina del ojo: bastones y conos. La sensibilidad espectral de las varillas (Fig. 17.1.2) es directamente proporcional al brillo de la luz incidente. Los conos se dividen en tres tipos, cada uno de los cuales tiene una cierta sensibilidad en rangos limitados con máximos en rojo, verde y azul, y pierden bruscamente su sensibilidad en la oscuridad. La sensibilidad del ojo al azul es mucho menor que a los otros dos. Una propiedad importante de la percepción humana de la luz es la linealidad al agregar colores con diferentes longitudes de onda.

modelo de color RGB (Rojo, Verde, Azul - rojo, verde, azul) en gráficos por computadora es actualmente el más común. En este modelo, la función espectral se representa como la suma de curvas de sensibilidad para cada tipo de cono con coeficientes de ponderación no negativos (normalizados de 0 a 1), que se denominan R, G y B. El modelo se caracteriza por la propiedad de aditividad para la obtención de nuevos colores. Por ejemplo, codificando funciones espectrales:

Negro: fnegro = 0, (R, G, B) = (0,0,0);

Color violeta fvioleta = fred + fazul, (R, G, B) = (1,0,1);

Blanco fblanco = fred + fverde + fazul, (R, G, B) = (1,1,1).

El espacio de color tridimensional del modelo RGB se muestra en la Fig. 17.1.3. Debido a las peculiaridades de la percepción de la luz por parte de los receptores, no todos los colores visibles para los humanos son representables en este modelo. Sin embargo, la proporción de colores que se reproducen es significativamente mayor que la proporción que no están representados en este modelo.

Sistema de color CIE XYZ. El estándar internacional de representación del color CIE (CIE - Commission Internationale de l'Eclairage) fue adoptado en 1931 por la Comisión Internacional de Iluminación. Define tres funciones básicas ρX(λ), ρY(λ), ρZ(λ), según el color. longitud de onda , cuyas combinaciones lineales con coeficientes no negativos (X, Y y Z) nos permiten obtener todos los colores visibles para los humanos. Estas funciones tienen en cuenta la percepción relativa de la intensidad de la luz por parte de los receptores oculares en el espacio tridimensional. El sistema de color CIE forma un cono en el primer cuadrante y se utiliza para la visualización de imágenes en color de alta calidad.

17.2. Transformaciones geométricas de imágenes rasterizadas.

Áreas y etapas de transformación. Las imágenes se pueden dividir en textura y detalle. En las imágenes de textura, todas las muestras (elementos) contienen información (la imagen en la pantalla del televisor). Una imagen detallada es aquella en la que es posible identificar los objetos que interfieren, el fondo y los objetos útiles.

Hay tres grupos principales de algoritmos de procesamiento de imágenes en computadoras:

1. Procesamiento primario (preliminar) de imágenes con fines de restauración, eliminación de ruido aleatorio, mejora de la calidad, corrección de distorsiones geométricas de los sistemas ópticos (desenfoque, aberraciones, etc.).

2. Descripción de imágenes, reconocimiento de patrones. Se realiza para determinar los parámetros de los detalles de la imagen e incluye: encontrar áreas de la imagen que sean uniformes en nivel de iluminación y color, identificar características de la forma de las imágenes, determinar las coordenadas de puntos especiales de objetos, etc.

3. Codificación eficiente para reducir el volumen de transmisión y almacenamiento.

La mayoría de los métodos de preprocesamiento se basan en el uso de filtros lineales espacialmente invariantes (SPI). Los algoritmos lineales se realizan utilizando análogos bidimensionales de filtros FIR e IIR unidimensionales. Se pueden utilizar, por ejemplo, a la hora de implementar filtros para reducir el ruido en las imágenes.

Los filtros FIR se implementan mediante el método de convolución. Las ventajas de los filtros 2D FIR son la claridad, la sencillez y la robustez absoluta. Los filtros IIR se implementan mediante ecuaciones en diferencias y transformadas z. Son más rápidos que los filtros FIR, pero pueden ser inestables. La síntesis de filtros IIR bidimensionales se diferencia de la síntesis de filtros unidimensionales, ya que para una función bidimensional no es posible identificar explícitamente los polos.

También pueden ser necesarios métodos no lineales para restaurar imágenes y mejorar su calidad. Por ejemplo, para suprimir el ruido y al mismo tiempo preservar la parte del contorno de las imágenes, es necesario utilizar filtros no lineales o lineales espacialmente no invariantes (SPNI), que se implementan mediante algoritmos de clasificación. Todos los filtros no lineales de rango se basan en algoritmos rápidos para calcular histogramas locales.

Uno de esos métodos es el filtrado mediano. El uso de filtros medianos es eficaz para suprimir ciertos tipos de ruido e interferencias periódicas sin distorsionar simultáneamente la señal, por ejemplo, para suprimir ráfagas de ruido, incluidas las líneas caídas. El método también se puede utilizar para resolver problemas relacionados con el reconocimiento, por ejemplo, para identificar líneas finas y pequeños objetos aislados.

Los algoritmos para la descripción de imágenes y el reconocimiento de patrones suelen ser de naturaleza no lineal y heurística. Las características de los objetos suelen ser el área de la imagen del objeto, el perímetro del contorno de la imagen y la relación entre el área y el cuadrado del perímetro de la imagen. La forma de un objeto se puede caracterizar por el radio de un círculo inscrito en la imagen o descrito alrededor de la imagen del objeto, la longitud del vector de radio mínimo y máximo desde el "centro de masa" de la imagen.

Muestreo. Las transformaciones de imágenes en una computadora y el almacenamiento de los datos procesados ​​se realizan de forma discreta. El muestreo se utiliza para obtener una representación discreta a partir de imágenes analógicas continuas del mundo real. En la práctica, se realiza mediante dispositivos de entrada (cámara digital, escáner u otros). Para la percepción visual de imágenes procesadas en dispositivos de salida (pantalla, trazador, etc.), la imagen analógica se reconstruye a partir de su representación muestreada.

En el caso más simple de imágenes en blanco y negro, tenemos una matriz bidimensional sa(x, y). Para imágenes en color en el modelo RGB, teniendo en cuenta la propiedad de aditividad al agregar colores, cada capa R, G y B también se puede considerar y procesar como una matriz bidimensional, con la posterior suma de los resultados.

De las formas de generalizar la discretización periódica unidimensional al caso bidimensional, la más simple es la discretización periódica en coordenadas rectangulares:

s(n, m) = sa(nDx, mDy),

donde Dx y Dy son los intervalos de muestreo horizontal y vertical de una señal continua bidimensional sa(x, y) con coordenadas xey continuas. A continuación, los valores de Dx y Dy, como en el caso unidimensional, se toman iguales a 1.

El muestreo de una señal bidimensional también conduce a la periodización de su espectro y viceversa. La condición de equivalencia informativa de las representaciones de coordenadas y frecuencia de una señal discreta también se conserva con un número igual de puntos de muestreo en los rangos principales de la señal. Para el muestreo rectangular, las transformadas de Fourier directa e inversa vienen dadas por:

S(k, l) =s(n, m) exp(-jn2pk/N-jm2pl/M), (17.2.1)

S(k, l) =exp(-jn2pk/N) s(n, m) exp(-jm2pl/M), (17.2.1")

s(n, m) =S(k, l) exp(-jn2pk/N-jm2pl/M). (17.2.2)

s(n, m) =exp(-jn2pk/N) S(k, l) exp(-jm2pl/M). (17.2.2")

Arroz. 17.2.1. Periodización del espectro.

Estas expresiones muestran que se puede calcular una DFT bidimensional a partir de un ráster de muestreo de datos rectangular utilizando DFT secuenciales unidimensionales. Las segundas sumas de las expresiones (17.2.1") y (17.2.2") son DFT unidimensionales de secciones de las funciones s(n, m) y S(k, l) a lo largo de las líneas n y k, respectivamente, y los primeros son DFT unidimensionales de funciones calculadas en secciones por m y l. En otras palabras, las matrices iniciales de valores s(n, m) y S(k, l) se recalculan primero en matrices intermedias con DFT en filas (o en columnas), y matrices intermedias en matrices finales con DFT en columnas. (o, respectivamente, en filas).

Para que la repetición periódica del espectro (Fig. 17.2.1), provocada por el muestreo de una señal analógica con una frecuencia Fx=1/Dx y Fy=1/Dy, no cambie el espectro en el rango de frecuencia principal ( respecto al espectro de la señal analógica original), es necesario y suficiente que las componentes de frecuencia máxima fmax en el espectro de la señal analógica, tanto en filas como en columnas, no excedan la frecuencia de Nyquist (fmax. x £ fN = Fx/2, fmáx. y £ fM = Fy/2). Esto significa que la frecuencia de muestreo de la señal debe ser al menos dos veces mayor que el componente de frecuencia máximo en el espectro de la señal:

Fx ³ 2fmáx. x, Fy ³ 2fmáx. y, (17.2.3)

lo que asegura que las funciones espectrales alcancen valores cero en los extremos del rango del espectro principal.

Series de interpolación para la reconstrucción de una señal bidimensional. Si la señal continua sa(x, y) es una señal con un espectro limitado y los períodos de muestreo se eligen lo suficientemente pequeños para que los espectros de períodos adyacentes no se superpongan:

Sa(Wx, Wy) = 0 para |Wx|p/Dx, |Wy|p/Dx,

entonces, como en el caso unidimensional, la señal sa(x, y) se puede reconstruir a partir de una señal discreta utilizando un análogo bidimensional de la serie de Kotelnikov-Shannon:

sa(x, y) = Sn Sm s(n, m) . (17.2.4)

Distorsiones de frecuencia de las imágenes y su eliminación. También se puede muestrear una señal con un espectro ilimitado, pero en este caso se produce un alias de espectros en períodos adyacentes, y las frecuencias altas mayores que la frecuencia de Nyquist quedarán "enmascaradas", como en el caso unidimensional, bajo las frecuencias bajas. del periodo principal. El efecto de “reflexión” de los límites del período da una imagen aún más compleja debido a la interferencia de frecuencias reflejadas a lo largo de diferentes coordenadas. También se observará un efecto similar, conocido como aliasing, cuando la frecuencia de muestreo de la imagen sea insuficiente. Este efecto se puede observar especialmente claramente en cambios bruscos y contrastantes de luminosidad.

Para combatir tales fenómenos, se utiliza el prefiltrado (antialiasing): convolución preliminar de una imagen analógica con una función de filtro de ponderación que corta los componentes de alta frecuencia que pueden provocar aliasing. En el caso bidimensional, el filtrado se describe de la siguiente manera:

z(x, y) = h(x", y") ③③ s(x-x", y-y"). (17.2.5)

Cabe señalar que las imágenes analógicas existen sólo en el rango óptico, por ejemplo, en forma de visualización de luz en una pantalla, papel fotográfico o película, pero no pueden existir en la memoria de la computadora. Por tanto, la implementación física de la prefiltración sólo es posible cuando se registra una imagen desenfocándola, lo que, por regla general, no se utiliza. La información primaria siempre debe registrarse con la máxima integridad y precisión, y limpiar la información primaria de detalles innecesarios y redundancias es una cuestión de procesamiento de datos posterior. Por lo tanto, en relación con la ecuación 17.2.5, el prefiltrado bidimensional, en su implementación práctica, sólo puede representar el filtrado de imágenes muestreadas con un gran margen en el rango de frecuencia principal (con resolución excesiva), y se utiliza, por regla general, al remuestrear a un paso más grande, por ejemplo, al comprimir imágenes. El filtrado previo también se puede incorporar a los algoritmos de construcción de imágenes.

En la figura. 17.2.3 y siguientes, la Tabla 17.2.1 muestra ejemplos de los filtros unidimensionales más comunes para suavizado. También se pueden implementar como filtros analógicos y utilizarse, por ejemplo, para transmitir líneas de imágenes de televisión de forma analógica a través de canales de radio (antialiasing horizontal). En principio, se puede realizar una operación similar en columnas (doble imagen) y, después de sumar la imagen, se realizará una operación de suavizado completa, pero este método pertenece más al campo de la investigación científica especial.

Tabla 17.2.1.

Funciones básicas de peso

ventana de tiempo

Función de peso

imagen de Fourier

Naturales (P)

P(t) = 1, |t|£t; П(t) = 0, |t|>t

П(w) = 2t sinc

Bartlett (D)

B(w) = t sinc2(peso/2).

Henninga, Ganna

p(t) = 0,5

0,5P(w)+0,25P(w+p/t)+0,25P(w-p/t)

dobladillo

p(t) = 0,54+0,46 cos(pt/t)

0,54P(p)+0,23P(p+p/t)+0,23P(p-p/t)

Carré (segunda ventana)

p(t) = b(t) sinc(pt/t)

t·B(w)*П(w), П(w) = 1 para |w|

Laplace-gaussiano

p(t) = exp[-b2(t/t)2/2]

[(t/b) exp(-t2w2/(2b2))] ③ П(w)

Los análogos bidimensionales de los filtros unidimensionales f1(x) se construyen en dos opciones de simetría: o en función del radio:

f2(x, y) = f1(),

o como obra:

f2(x, y) = f1(x) × f1(y).

La primera opción es más correcta, pero la segunda tiene la propiedad de separabilidad, es decir, la convolución bidimensional se puede realizar mediante dos convoluciones unidimensionales secuencialmente a lo largo de las filas con f1(x) y a lo largo de las columnas con f1(y).

Remuestreo de imágenes o remuestreo es un cambio en la frecuencia de muestreo de una señal digital. Cuando se aplica a imágenes digitales, esto significa cambiar el tamaño de la imagen.

Existen varios algoritmos de remuestreo de imágenes. Por ejemplo, para ampliar una imagen 2 veces utilizando el método de interpolación bilineal, las columnas y filas intermedias se obtienen mediante la interpolación lineal de los valores de las columnas y filas adyacentes. Cada punto de la nueva imagen se puede obtener como una suma ponderada de un número mayor de puntos en la imagen original (bicúbica y otros tipos de interpolación). La mayor calidad de remuestreo se obtiene cuando se utilizan algoritmos que tienen en cuenta no solo el dominio del tiempo, sino también el dominio de la frecuencia de la señal.

Consideremos un algoritmo de remuestreo con máxima preservación de la información de frecuencia de la imagen. Consideraremos el funcionamiento del algoritmo en señales unidimensionales, ya que una imagen bidimensional se puede estirar o comprimir primero horizontalmente (a lo largo de filas) y luego verticalmente (a lo largo de columnas), y reducir el remuestreo de una imagen bidimensional a remuestreo. de señales unidimensionales.

Digamos que tenemos una señal unidimensional (Fig. 17.2.4), especificada en el intervalo 0-T y muestreada con un paso Dt=1 (N intervalos). Es necesario "estirar" la señal m veces. El espectro de la señal que se muestra en la figura se calcula mediante la transformada rápida de Fourier (FFT, el número de muestras de espectro es igual al número de muestras de señal) y se proporciona en el rango principal de FFT (0-2p, frecuencia de Nyquist wN = p/Dt = p, o 0,5N según la numeración de las muestras del espectro con un paso a lo largo del espectro Df = 1/T o Dw = 2p/T). Hay 2 pasos para realizar un estiramiento.

El primer paso es la interpolación cero, que aumenta la longitud de la señal m veces. (Figura 17.2.5). Debe multiplicar todas las muestras de la señal original por my luego insertar un valor cero m-1 después de cada muestra de señal. El intervalo 0-T, cuyo valor permanece sin cambios, ahora contiene m veces más intervalos de muestreo (mN), y el nuevo paso de muestreo será igual a Dx=Dt/m. En consecuencia, la nueva frecuencia de Nyquist para esta señal es mp/Dt = mp. Pero el valor físico del paso a lo largo del espectro en unidades de frecuencia es el inverso del valor físico del intervalo de configuración de la señal (Df = 1/T) y, por lo tanto, la FFT de mN puntos de la señal calculará mN puntos de el espectro en el rango FFT principal de 0-2 pm con el paso del espectro de la señal original, en el que contendrá m períodos del espectro de la señal original (un lado principal y m-1).

El segundo paso es filtrar las bandas laterales del espectro utilizando un filtro de paso bajo en el dominio temporal o espectral. En la figura. 17.2.6 se limpió el espectro y se realizó la transformada de Fourier inversa, lo que dio como resultado una señal m veces más larga que la original con preservación total de toda la información de frecuencia.

Usando un principio similar, se puede construir un algoritmo para comprimir (diezmar) la señal n veces, con el orden de los pasos invertido. Al comprimir una señal, el paso de muestreo de la señal aumenta y, en consecuencia, la frecuencia de Nyquist disminuye, mientras que las frecuencias altas de corte (ruido y partes insignificantes de alta frecuencia del espectro de la señal) se reflejarán desde el límite de la señal principal. rango y se suma con la información principal, creando distorsión. Para eliminar este fenómeno, la señal primero se filtra en paso bajo con una frecuencia de corte igual a la nueva frecuencia de Nyquist (antialiasing), y solo entonces la señal se diezma mediante diezmado.

Cuando el remuestreo se realiza solo en el dominio del tiempo, los algoritmos de estiramiento y compresión se combinan, por regla general, en un único proceso secuencial especificando un cambio en el paso de muestreo en forma de una relación m/n, que permite especificar valores enteros de myn para valores fraccionarios de cambio del paso de muestreo. Esto simplifica significativamente los algoritmos y aumenta la eficiencia y calidad de su trabajo. Por ejemplo, cuando se estira una señal 1,5 veces en m/n = 3/2, la señal primero se estira 3 veces (una adición simple y uniforme de ceros a todas las muestras, luego se realiza un filtrado de paso bajo, después de lo cual el La señal se adelgaza en un factor de dos. No se requiere un filtro antialiasing, ya que su frecuencia de corte se superpone con la frecuencia del primer filtro de paso bajo en la operación de compresión inversa (por ejemplo, m/n = 2). /3), sólo se utiliza el filtro anti-aliasing de la misma manera.

17.3. filtrado de imágenes

El filtrado de imágenes es una operación que da como resultado una imagen del mismo tamaño, obtenida a partir de la original según ciertas reglas. Normalmente, la intensidad (color) de cada píxel en la imagen resultante está determinada por las intensidades (colores) de los píxeles ubicados en alguna vecindad del mismo en la imagen original.

Las reglas de filtrado pueden ser muy diversas. El filtrado de imágenes es una de las operaciones más fundamentales de la visión por computadora, el reconocimiento de patrones y el procesamiento de imágenes. El trabajo de la gran mayoría de los métodos de procesamiento de imágenes comienza con uno u otro filtrado de las imágenes originales.

Filtros lineales tienen una descripción matemática muy simple. Supondremos que se da la imagen de semitonos original A y denotaremos las intensidades de sus píxeles como A(x, y). Un filtro lineal se define mediante una función de valor real h (núcleo de filtro) definida en el ráster. El filtrado en sí se realiza mediante la operación de convolución discreta (suma ponderada):

B(x, y) = h(i, j) ③③A(x, y) = h(i, j) A(xi, yj). (17.3.1)

El resultado es la imagen B. Normalmente, el núcleo del filtro es distinto de cero sólo en alguna vecindad N del punto (0, 0). Fuera de esta vecindad, h(i, j) es igual a cero, o muy cercano a él y puede despreciarse. La suma se realiza sobre (i, j) О N, y el valor de cada píxel B(x, y) está determinado por los píxeles de la imagen A que se encuentran en la ventana N centrada en el punto (x, y) (denotado por el conjunto N(x, y) ). Un núcleo de filtro definido en una vecindad rectangular N puede verse como una matriz de m por n donde las longitudes de los lados son números impares. Al especificar un núcleo como matriz, debe estar centrado. Si un píxel (x, y) se encuentra cerca de los bordes de la imagen, entonces las coordenadas A(x-i, y-j) para ciertos (i, j) pueden corresponder a píxeles A inexistentes fuera de la imagen. Este problema se puede resolver de varias maneras.

Evite filtrar estos píxeles recortando los bordes de la imagen B o aplicando los valores originales de la imagen A a sus valores.

No incluya el píxel que falta en la suma, distribuyendo su peso h(i, j) uniformemente entre otros píxeles en la vecindad N(x, y).

Determine los valores de píxeles fuera de los límites de la imagen mediante extrapolación.

Defina valores de píxeles más allá de los límites de la imagen utilizando una continuación especular de la imagen.

La elección del método se realiza teniendo en cuenta el filtro específico y las características de la imagen.

Filtros anti-aliasing. El filtro de suavizado rectangular más simple de radio r se especifica utilizando una matriz de tamaño (2r+1) × (2r+1), cuyos valores son iguales a 1/(2r+1)2, y la suma de los los valores son iguales a uno. Este es un análogo bidimensional de un filtro en forma de U de media móvil unidimensional de paso bajo. Al filtrar con dicho núcleo, el valor del píxel se reemplaza por el valor promedio de los píxeles en un cuadrado con un lado 2r+1 alrededor. Ejemplo de mascarilla filtrante 3×3:

.

Un uso de los filtros es la reducción de ruido. El ruido varía independientemente de un píxel a otro y, siempre que la expectativa matemática del valor del ruido sea cero, el ruido de los píxeles vecinos se cancelará entre sí cuando se sume. Cuanto mayor sea la ventana de filtrado, menor será la intensidad media del ruido; sin embargo, también se producirá un desenfoque correspondiente de detalles significativos de la imagen. La imagen de un punto blanco sobre fondo negro durante el filtrado (reacción a un solo impulso) será un cuadrado uniformemente gris.

La reducción de ruido mediante un filtro rectangular tiene un inconveniente importante: todos los píxeles de la máscara del filtro a cualquier distancia del que se está procesando tienen el mismo efecto en el resultado. Se obtiene un resultado ligeramente mejor modificando el filtro aumentando el peso del punto central:

.

Se puede lograr una reducción de ruido más efectiva si la influencia de los píxeles en el resultado disminuye al aumentar la distancia desde el procesado. Un filtro gaussiano con núcleo tiene esta propiedad: h(i, j) = (1/2ps2) exp(-(i2+j2)/2s2). Un filtro gaussiano tiene un núcleo distinto de cero de tamaño infinito. Sin embargo, los valores del núcleo del filtro disminuyen muy rápidamente hasta n), por lo que en la práctica uno puede limitarse a la convolución con una ventana de tamaño pequeño alrededor de (0, 0), por ejemplo, tomando el radio de la ventana igual a 3σ .

El filtrado gaussiano también se suaviza. Sin embargo, a diferencia de un filtro rectangular, la imagen de un punto con filtrado gaussiano será un punto borroso simétrico, con un brillo que disminuirá desde el centro hacia los bordes. El grado de desenfoque de la imagen está determinado por el parámetro σ.

Filtros de mejora del contraste . Mientras que los filtros antialiasing reducen el contraste local de una imagen al difuminarla, los filtros que mejoran el contraste tienen el efecto opuesto y son esencialmente filtros de alta frecuencia espacial. El núcleo de un filtro de mejora del contraste en el punto (0, 0) tiene un valor mayor que 1, con una suma total de valores igual a 1. Por ejemplo, los filtros de mejora del contraste son filtros con un núcleo definido por las matrices :

. .

Un ejemplo del uso de un filtro se muestra en la Fig. 17.3.1. El efecto de mejorar el contraste se logra debido al hecho de que el filtro enfatiza la diferencia entre las intensidades de los píxeles vecinos, alejando estas intensidades entre sí. Este efecto será más fuerte cuanto mayor sea el valor del término central del núcleo. Un artefacto característico del filtrado lineal que mejora el contraste es una luz perceptible y halos oscuros menos perceptibles alrededor de los límites.

Filtros de diferencia – estos son filtros lineales especificados por aproximaciones discretas de operadores diferenciales (usando el método de diferencias finitas). Estos filtros desempeñan un papel vital en muchas aplicaciones, por ejemplo, para encontrar bordes en una imagen.

El operador diferencial más simple es la derivada con respecto a la coordenada x d/dx, que se define para funciones continuas. Variantes comunes de operadores similares para imágenes discretas son los filtros de Prewitt y Sobel:

. .

Los filtros que se aproximan al operador derivada de la coordenada y d/dy se obtienen transponiendo matrices.

El algoritmo más simple para calcular la norma del gradiente desde tres puntos adyacentes:

G(x, y) = .

También se utiliza una fórmula de cálculo simplificada:

Cálculo de la norma del gradiente sobre cuatro puntos adyacentes (operador de Roberts):

El algoritmo de Sobel utiliza ocho muestras de brillo en las proximidades del punto central:

G(x, y) = , G(x, y)@ ,

Gxx, y = - ,

Gyx, y = - .

Además de una determinación más precisa de la norma de gradiente, el algoritmo de Sobel también permite determinar la dirección del vector de gradiente en el plano de análisis de la imagen en forma del ángulo j entre el vector de gradiente y la dirección de las filas de la matriz. :

j(x, y) = argtg(Gyx, y /Gxx, y).

A diferencia de los filtros de suavizado y mejora del contraste, que no cambian la intensidad promedio de la imagen, la aplicación de operadores de diferencia generalmente da como resultado una imagen con un valor de píxel promedio cercano a cero. Las diferencias verticales (bordes) de la imagen original corresponden a píxeles con valores de módulo grandes en la imagen resultante. Por lo tanto, los filtros de diferencia también se denominan filtros de selección de límites de objetos.

De manera similar a los filtros anteriores, se pueden construir filtros para otros operadores diferenciales utilizando el método de diferencias finitas. En particular, el operador diferencial de Laplace (Laplaciano) D= 𝝏2/𝝏x2 + 𝝏2/𝝏y2, que es importante para muchas aplicaciones, se puede aproximar para imágenes discretas usando un filtro con una matriz (una de las opciones):

.

Como se puede observar en la Fig. 17.3.2, como resultado del uso del laplaciano discreto, los valores absolutos grandes corresponden a diferencias de brillo tanto verticales como horizontales. Por tanto, el filtro es un filtro que encuentra límites de cualquier orientación. Se pueden encontrar límites en una imagen aplicando este filtro y tomando todos los píxeles cuyo valor absoluto exceda un cierto umbral.

Sin embargo, un algoritmo de este tipo tiene importantes inconvenientes. El principal es la incertidumbre a la hora de elegir el valor umbral. Para diferentes partes de la imagen, normalmente se obtiene un resultado aceptable con valores de umbral significativamente diferentes. Además, los filtros diferenciales son muy sensibles al ruido de la imagen.

Convolución cíclica bidimensional. Al igual que con las señales unidimensionales, la convolución bidimensional se puede realizar en el dominio de la frecuencia espacial utilizando algoritmos de transformada rápida de Fourier y multiplicando los espectros bidimensionales de la imagen y el núcleo del filtro. También es cíclico y suele realizarse en versión deslizante. Teniendo en cuenta la ciclicidad, para calcular un patrón constante del espectro del núcleo, las dimensiones de la máscara del filtro del núcleo se duplican a lo largo de los ejes y se rellenan con ceros, y las mismas dimensiones de la máscara se utilizan para seleccionar una ventana que se desliza por la imagen, dentro de la cual se realiza la FFT. Implementar un filtro FIR usando FFT es especialmente efectivo si el filtro tiene un área de referencia grande.

Filtros no lineales . En el procesamiento de imágenes digitales, los algoritmos no lineales basados ​​en estadísticas de clasificación se utilizan ampliamente para restaurar imágenes dañadas por varios modelos de ruido. Le permiten evitar distorsiones adicionales de la imagen al eliminar el ruido y también mejoran significativamente los resultados de los filtros en imágenes con un alto grado de ruido.

Introduzcamos el concepto de vecindad M de un elemento de imagen A (x, y), que es central para esta vecindad. En el caso más simple, el vecindario M contiene N píxeles: puntos que caen dentro de la máscara de filtro, incluido (o no incluido) el central. Los valores de estos N elementos se pueden organizar en una serie de variación V(r), clasificadas en orden ascendente (o descendente), y se pueden calcular ciertos momentos de esta serie, por ejemplo, el valor promedio de brillo mN y varianza dN. El valor de salida del filtro, que reemplaza la muestra central, se calcula mediante la fórmula:

B(x, y) = aA(x, y) + (1-a)mN. (17.3.2)

El valor del coeficiente a = está asociado con una cierta dependencia con las estadísticas de muestras en la ventana de filtro, por ejemplo:

a = dN /(dN + k dS), (17.3.3)

donde dS es la dispersión del ruido sobre la imagen en su conjunto o sobre el barrio S para S > M y MÎS, k es la constante de confianza para la dispersión de los barrios S. Como se desprende de esta fórmula, para k = 1 y dN » dS se produce a » 0,5, y el valor B(x, y) = (A(x, y) + mN)/2, es decir, suman igualmente en valores de la muestra central y el valor promedio de los píxeles de su vecindario M. A medida que aumentan los valores de dN, aumenta la contribución al resultado del valor de referencia central, y a medida que disminuyen los valores de dN, aumenta el valor de mN. El peso de la contribución de los valores medios en el barrio M se puede cambiar por el valor del coeficiente k.

La elección de la función estadística y la naturaleza de la dependencia del coeficiente a de ella puede ser bastante diversa (por ejemplo, en términos de dispersión de las diferencias en las muestras en el vecindario M con una muestra central), y depende tanto del tamaño de la apertura del filtro y de la naturaleza de las imágenes y del ruido. Esencialmente, el valor del coeficiente a debe especificar el grado de daño a la muestra central y, en consecuencia, la función de préstamo para su corrección de las muestras del vecindario M.

Los tipos más simples y comunes de filtros no lineales para el procesamiento de imágenes son los filtros de umbral y de mediana.

Los tipos más simples y comunes de filtros no lineales para el procesamiento de imágenes son los filtros de umbral y de mediana. se da, por ejemplo, de la siguiente manera:

B(x, y) =

B(x, y) = Magnitud es el umbral de filtrado. Si el valor del punto central del filtro excede el valor promedio de las muestras mN en su vecindario M por el valor umbral, entonces se reemplaza por el valor promedio. El valor umbral puede ser constante o funcionalmente dependiente del valor del punto central.

Filtrado mediano se define de la siguiente manera:

B(x, y) = med (M(x, y)),

es decir, el resultado del filtrado es el valor medio de los píxeles de la vecindad, cuya forma está determinada por la máscara de filtro. El filtrado mediano puede eliminar eficazmente el ruido de una imagen que afecta de forma independiente a los píxeles individuales. Por ejemplo, dicha interferencia son los píxeles "rotos" durante la fotografía digital, el ruido de "nieve" cuando algunos de los píxeles se reemplazan por píxeles con máxima intensidad, etc. La ventaja del filtrado medio es que un píxel "caliente" sobre un fondo oscuro debe reemplazarse de manera oscura y no “manchada” alrededor del área.

El filtrado medio tiene una selectividad pronunciada con respecto a los elementos de la matriz, que son un componente no monótono de la secuencia de números dentro de la apertura del filtro. Al mismo tiempo, el filtro mediano deja sin cambios el componente monótono de la secuencia. Gracias a esta característica, los filtros medianos, con una apertura óptimamente seleccionada, preservan los límites nítidos de los objetos sin distorsión, suprimiendo el ruido no correlacionado o débilmente correlacionado y los detalles de pequeño tamaño.

Filtros extremos se determinan de acuerdo con las reglas:

Bmín(x, y) = mín (M(x, y)),

Bmáx(x, y) = máx (M(x, y)),

es decir, el resultado del filtrado son los valores de píxeles mínimo y máximo en la máscara de filtro. Estos filtros se utilizan normalmente para imágenes binarias.

17.4. COMPRESIÓN DE IMAGEN

Una imagen típica con una resolución de aproximadamente 3000x2000 a 24 bits por píxel para transmisión en color tiene un volumen de 17 megabytes. Para dispositivos profesionales, el tamaño de la imagen ráster resultante puede ser significativamente mayor, la profundidad de color de hasta 48 bits por píxel y el tamaño de una imagen puede ser de más de 200 megabytes. Por tanto, los algoritmos de compresión de imágenes son muy relevantes para reducir la cantidad de datos que representan una imagen.

Hay dos clases principales de algoritmos:

1. Compresión sin pérdidas A (compresión sin pérdidas), si existe un algoritmo inverso A-1 tal que para cualquier h - imagen A[h] = h1 tenemos A-1 = h. La compresión sin pérdidas se utiliza en formatos de imágenes gráficas como: GIF, PCX, PNG, TGA, TIFF y se utiliza para procesar información primaria especialmente valiosa (imágenes médicas, fotografías aéreas y espaciales, etc.), cuando incluso la más mínima distorsión es indeseable.

2. Compresión con pérdida, si no permite restaurar con precisión la imagen original. El algoritmo aproximado de restauración de imágenes emparejado con A se indicará como A*. El par (A, A*) se selecciona para proporcionar altas relaciones de compresión manteniendo la calidad visual. La compresión con pérdida se utiliza en formatos de imagen: JPEG, JPEG2000, etc.

Todos los algoritmos y declaraciones se aplican tanto a imágenes como a secuencias arbitrarias, cuyos elementos pueden tomar un número finito de valores. Hay que tener en cuenta que no existen algoritmos ideales que puedan comprimir cualquier conjunto de datos sin pérdida.

Algoritmos de codificación de longitud de repetición (RLE) se basan en un principio simple: reemplazar grupos repetidos de elementos de la secuencia original con un par (cantidad, elemento), o solo con cantidad.

Nivel de bits. Consideraremos los datos originales al nivel de una secuencia de bits, por ejemplo, que representan una imagen en blanco y negro. Por lo general, hay varios 0 o 1 seguidos y puede codificar el número de dígitos idénticos seguidos. Pero el número de repeticiones también debe codificarse en bits. Podemos considerar que cada número de repetición varía del 0 al 7 (código de 3 bits), alternando una secuencia de códigos de unos y ceros. Por ejemplo, las secuencias se pueden comparar con los números 7 0 4, es decir, 7 unos, 0 ceros, 4 unos, y tenemos un nuevo año. Cuanto más largas sean las secuencias de bits idénticos, mayor será el efecto. Así, una secuencia de 21 unos, 21 ceros, 3 unos y 7 ceros se codificará de la siguiente manera: , es decir, de la secuencia original de 51 bits de longitud, tenemos una secuencia de 36 bits de longitud.

Nivel de bytes. Supongamos que la entrada es una imagen de medios tonos, donde se asigna 1 byte para el valor de intensidad de píxeles y la expectativa de una larga cadena de bits idénticos se reduce significativamente.

Dividiremos el flujo de entrada en bytes (código de 0 a 255) y codificaremos bytes repetidos con un par (cantidad, letra). Un solo byte puede dejarse sin cambios. Entonces, codificamos los bytes AABBBCDAA (2A) (3B) (C) (D) (2A).

Sin embargo, las modificaciones de este algoritmo rara vez se utilizan por sí solas (por ejemplo, en formato PCX), ya que la subclase de secuencias en las que el algoritmo es eficaz es relativamente estrecha. Más a menudo se utilizan como una de las etapas de la tubería de compresión.

Algoritmos de diccionario En lugar de codificar sólo un elemento de la secuencia entrante, se codifica una cadena de elementos. En este caso, se utiliza un diccionario de cadenas (creado a partir de la secuencia de entrada) para codificar las nuevas.

El algoritmo LZ77 fue uno de los primeros en utilizar un diccionario. Los últimos N elementos ya codificados de la secuencia se utilizan como diccionario. Durante el proceso de compresión, el diccionario de subsecuencias se "desliza" a lo largo de la secuencia de entrada. La cadena de elementos en la salida se codifica de la siguiente manera: la posición de la parte coincidente de la cadena de elementos procesada en el diccionario: desplazamiento (en relación con la posición actual), longitud, el primer elemento que sigue a la parte coincidente de la cadena. La longitud de la cadena coincidente está limitada arriba por el número n. En consecuencia, la tarea es encontrar la cadena más grande del diccionario que coincida con la secuencia que se está procesando. Si no hay coincidencias, se registran el desplazamiento cero, la longitud unitaria y el primer elemento de la secuencia no codificada.

El esquema de codificación descrito anteriormente conduce al concepto de ventana corredera, que consta de dos partes:

Una subsecuencia de elementos ya codificados de longitud N-diccionario - búfer de búsqueda;

Una subsecuencia de longitud n de una cadena de elementos para los cuales se intentará una coincidencia: el búfer de anticipación.

Decodificar una secuencia comprimida es decodificar los códigos grabados: cada entrada se relaciona con una cadena del diccionario y un elemento escrito explícitamente, después de lo cual se desplaza el diccionario. El diccionario se recrea a medida que se ejecuta el algoritmo de decodificación.

Este algoritmo es el fundador de toda una familia de algoritmos. Sus ventajas incluyen un grado decente de compresión en secuencias bastante grandes y una descompresión rápida. Las desventajas incluyen una velocidad de compresión lenta y una relación de compresión más baja que los algoritmos alternativos.

Algoritmo LZW. El diccionario de este algoritmo es una tabla que se llena con cadenas de elementos a medida que se ejecuta el algoritmo. Durante el proceso de compresión se encuentra la cadena más larga ya registrada en el diccionario. Cada vez que no se encuentra una nueva cadena de elementos en el diccionario, se agrega al diccionario y se registra el código de la cadena. En teoría, no hay restricciones en el tamaño de la mesa, pero limitar el tamaño permite mejorar la relación de compresión, ya que se acumulan cadenas innecesarias (que no ocurren). Cuantas más entradas tenga una tabla, más información deberá asignarse a los códigos de tienda.

La decodificación consiste en descifrar directamente los códigos, es decir, construir un diccionario y generar las cadenas correspondientes. El diccionario se inicializa de la misma forma que en el codificador. Las ventajas del algoritmo incluyen un alto grado de compresión y una velocidad bastante alta tanto de compresión como de decodificación.

Algoritmos de codificación estadística asigne un código a cada elemento de la secuencia para que su longitud corresponda a la probabilidad de que ocurra el elemento. La compresión se produce reemplazando elementos de la secuencia original que tienen la misma longitud (cada elemento ocupa el mismo número de bits) con elementos de diferentes longitudes, proporcionales al logaritmo negativo de la probabilidad, es decir, los elementos que ocurren con más frecuencia que otros tienen un código. de menor longitud.

El algoritmo de Huffman utiliza un código de prefijo de longitud variable que tiene una propiedad especial: los códigos más cortos no coinciden con el prefijo (parte inicial) de los más largos. Este código permite la codificación uno a uno. El proceso de compresión implica reemplazar cada elemento de la secuencia de entrada con su código. La construcción de un conjunto de códigos se suele realizar mediante los llamados árboles de código.

El algoritmo de Huffman es un algoritmo de dos pasos. El primer paso por la imagen crea una tabla de pesos de elementos y durante el segundo se produce la codificación. Existen implementaciones del algoritmo con una tabla fija. A menudo sucede que se desconoce la distribución de probabilidad a priori de los elementos del alfabeto, ya que la secuencia completa no está disponible a la vez y se utilizan modificaciones adaptativas del algoritmo de Huffman.

Compresión de imágenes con pérdida. La cantidad de información necesaria para almacenar imágenes suele ser grande. Los algoritmos clásicos, al ser algoritmos de propósito general, no tienen en cuenta que la información comprimida es una imagen, un objeto bidimensional, y no proporcionan un grado de compresión suficiente.

La compresión con pérdida se basa en las características de la percepción humana de la imagen: la mayor sensibilidad en un cierto rango de ondas de color, la capacidad de percibir la imagen en su conjunto sin notar pequeñas distorsiones. La principal clase de imágenes a las que se dirigen los algoritmos de compresión con pérdida son fotografías e imágenes con transiciones de color suaves.

Estimación de pérdida en imágenes. Existen muchas medidas para evaluar las pérdidas en las imágenes después de restaurarlas (decodificarlas) a partir de las comprimidas, pero para todas es posible seleccionar dos imágenes de manera que su medida de diferencia sea bastante grande, pero las diferencias serán casi invisibles. al ojo. Y viceversa: puede seleccionar imágenes que sean muy diferentes a la vista, pero que tengan una pequeña diferencia.

Una medida numérica estándar de pérdida suele ser la desviación estándar (RMS) de los valores de píxeles de la imagen reconstruida respecto de la original. Sin embargo, la "medida" más importante en la evaluación de pérdidas es la opinión del observador. Cuantas menos diferencias (o mejor aún, ninguna diferencia) detecte un observador, mayor será la calidad del algoritmo de compresión. Los algoritmos de compresión con pérdida a menudo brindan al usuario la posibilidad de elegir la cantidad de datos "perdidos", es decir, el derecho a elegir entre la calidad y el tamaño de la imagen comprimida. Naturalmente, cuanto mejor sea la calidad visual con una relación de compresión más alta, mejor será el algoritmo.

Transformada de Fourier. En general, una imagen puede verse como una función de dos variables, definidas en los puntos de un ráster final. Un conjunto de tales funciones en puntos de una trama finita fija forma un espacio euclidiano de dimensión finita, y se les puede aplicar una transformada discreta de Fourier, es decir, una representación espectral de la imagen. Proporciona:

Coeficientes de espectro independientes y no correlacionados, es decir, la precisión de la representación de un coeficiente no depende de ningún otro.

- Compactación energética. La transformación almacena información básica en una pequeña cantidad de coeficientes. Esta propiedad es más pronunciada en imágenes fotorrealistas.

Los coeficientes de representación espectral son las amplitudes de las frecuencias espaciales de la imagen. En el caso de imágenes con transiciones suaves, la mayor parte de la información está contenida en el espectro de baja frecuencia.

El algoritmo de compresión utilizado en el formato JPEG se basa en la transformada de Fourier del coseno discreto. El esquema de compresión en el algoritmo es un pipeline, donde esta transformación no es solo una de las etapas, sino una de las principales. El algoritmo contiene las siguientes operaciones principales:

1. Conversión al espacio de color YCbCr. Aquí Y es el componente de brillo, Cb y Cr son los componentes de cromaticidad. El ojo humano es más sensible al brillo que al color. Por lo tanto, es más importante mantener una mayor precisión al transferir Y que al transferir Cb y Cr.

2. Transformada de coseno discreta (DCT). La imagen se divide en bloques de 8 × 8. Se aplica una transformada de coseno discreta a cada bloque (por separado para los componentes Y, Cb y Cr).

3. Reducción de componentes de alta frecuencia en matrices DCT. El ojo humano apenas nota los cambios en los componentes de alta frecuencia, por lo que los coeficientes responsables de las altas frecuencias se pueden almacenar con menor precisión.

4. Ordenamiento en zigzag de matrices. Este es un pase de matriz especial para obtener una secuencia unidimensional. Primero viene el elemento T00, luego T01, T10, T1. Además, para imágenes fotorrealistas típicas, primero habrá coeficientes distintos de cero correspondientes a componentes de baja frecuencia y luego un conjunto de ceros (componentes de alta frecuencia).

5. Compresión primero mediante el método RLE y luego el método de Huffman.

El algoritmo de restauración de imágenes funciona en orden inverso. La relación de compresión es de 5 a 100 veces o más. Al mismo tiempo, la calidad visual de la mayoría de las imágenes fotorrealistas se mantiene en un buen nivel cuando se comprimen hasta 15 veces. El algoritmo y el formato son los más comunes para transmitir y almacenar imágenes a todo color.

transformada wavelet señales es una generalización de la transformada clásica de Fourier. El término "wavelet" traducido del inglés significa "onda pequeña (corta)". Wavelets es un nombre generalizado para familias de funciones matemáticas de cierta forma que son locales en tiempo y frecuencia, y en las que todas las funciones se obtienen a partir de una base uno a través de sus desplazamientos y estiramientos a lo largo del eje del tiempo.

En los algoritmos de compresión con pérdida, por regla general, todas las operaciones del proceso de compresión se conservan y la transformada discreta de Fourier se reemplaza por una transformada wavelet discreta. Las transformadas wavelet tienen muy buena localización espacial de frecuencia y en este sentido son superiores a las transformadas tradicionales de Fourier. En este caso, es posible aplicar una cuantificación más fuerte, mejorando las propiedades de la secuencia para la compresión posterior. Los algoritmos de compresión de imágenes basados ​​en esta transformación muestran mejores resultados al preservar la calidad de la imagen con la misma relación de compresión.

literatura

46. ​​​​y otros. Algoritmos rápidos en el procesamiento de imágenes digitales. – M.: Radio y Comunicaciones, 1984. – 224 p.

47. Procesamiento de imágenes más soifer. Parte 2. Métodos y algoritmos. – Revista educativa Soros nº 3, 1996.

48. , Ruido de cartucho de imágenes basado en algoritmos no lineales que utilizan estadísticas de clasificación. - Universidad Estatal de Yaroslavl, 2007.

49. Sistemas de vigilancia por televisión de Andreev. Parte II. Fundamentos y algoritmos aritméticos y lógicos. Guía de estudio. - San Petersburgo: San Petersburgo, GUITMO, 2005. – 88 p.

51. Lukin A. Introducción al procesamiento de señales digitales (Fundamentos matemáticos - M.: Universidad Estatal de Moscú, Laboratorio de gráficos por computadora y multimedia, 2002. - http://pv. *****/dsp/dspcurso. pdf, http://dsp-libro. *****/dspcurso. djvu, http://geogin. *****/arhiv/dsp/dsp4.pdf.

1i. y otros. Fundamentos algorítmicos de gráficos rasterizados. – Universidad de Tecnologías de la Información de Internet. –http://www. *****/goto/curso/rastrgraph/

2i. Lukin -sistemas electrónicos: apuntes de conferencias. ITMO, 2004. - San Petersburgo, ITMO IFF, 2004. - http://iff. *****/kons/oes/KL. htm

Acerca de los errores observados y sugerencias de adiciones: *******@***ru.

Derechos de autor©2008davydovA.V.




Arriba