Operaciones básicas de procesamiento de imágenes. Procesamiento básico de imágenes Filtrado de imágenes ruidosas

Realizar procesamiento, visualización y análisis de imágenes.

Image Processing Toolbox™ proporciona un conjunto integral de algoritmos estándar de referencia y aplicaciones de flujo de trabajo para el procesamiento, análisis, visualización y desarrollo de algoritmos de imágenes. Puede realizar la segmentación de imágenes, la mejora de imágenes, la eliminación de ruido, las transformaciones geométricas y el registro de imágenes mediante el aprendizaje profundo y las técnicas tradicionales de procesamiento de imágenes. La caja de herramientas de procesamiento admite imágenes 2D, 3D y arbitrariamente grandes.

Las aplicaciones de Image Processing Toolbox le permiten automatizar flujos de trabajo comunes de procesamiento de imágenes. Puede segmentar datos de imágenes de forma interactiva, comparar métodos de registro de imágenes y procesar por lotes grandes conjuntos de datos. Las funciones y aplicaciones de visualización le permiten explorar imágenes, volúmenes 3D y videos; ajustar el contraste; crear histogramas; y controlar áreas visibles (REYES).

Puede acelerar los algoritmos ejecutándolos en procesadores multinúcleo y GPU. Muchas funciones de la caja de herramientas admiten la generación de código C/C++ para la implementación de visión artificial y el análisis de prototipos.

Comienzo del trabajo

Aprenda los conceptos básicos de la caja de herramientas de procesamiento de imágenes

Importar, exportar y convertir

Importación y exportación de datos de imágenes, conversión de tipos y clases de imágenes

Visualización y exploración

Herramientas interactivas de imágenes y exploración.

Transformación geométrica y registro de imágenes

Escalar, rotar, realizar otros conversiones ND y alinear imágenes usando correlación de intensidad, coincidencia de características o mapeo de puntos de control

Filtrado y mejora de imágenes

Ajuste de contraste, filtrado morfológico, desenfoque, procesamiento basado en ROI

Segmentación y análisis de imágenes

Análisis de área, análisis de estructura, estadísticas de píxeles e imágenes

Aprendizaje profundo para el procesamiento de imágenes

Realice tareas de procesamiento de imágenes, como eliminar el ruido de la imagen y generar imágenes de alta resolución a partir de imágenes de baja resolución, utilizando redes neuronales convolucionales (requiere Deep Learning Toolbox™)

Hola a todos. Ahora mi supervisor y yo estamos preparando una monografía para su publicación, donde estamos tratando de en lenguaje sencillo hablar sobre los conceptos básicos del procesamiento de imágenes digitales. Este artículo revela una técnica muy simple, pero al mismo tiempo muy efectiva para mejorar la calidad de la imagen: la ecualización del histograma.

Para simplificar, comencemos con imágenes monocromáticas (es decir, imágenes que contienen información solo sobre el brillo, pero no sobre el color de los píxeles). Un histograma de imagen es una función discreta H definida sobre el conjunto de valores, donde bpp es el número de bits asignados para codificar el brillo de un píxel. Aunque no es obligatorio, los histogramas suelen normalizarse al rango dividiendo cada valor de la función H[i] por el número total de píxeles de la imagen. En mesa. 1 muestra ejemplos de imágenes de prueba e histogramas construidos sobre su base:
Pestaña. 1. Imágenes y sus histogramas

Habiendo estudiado cuidadosamente el histograma correspondiente, podemos sacar algunas conclusiones sobre la imagen original en sí. Por ejemplo, los histogramas de imágenes muy oscuras se caracterizan por el hecho de que los valores distintos de cero del histograma se concentran cerca de cero niveles de brillo, y viceversa para imágenes muy claras: todos los valores distintos de cero se concentran a la derecha lado del histograma.
Intuitivamente, podemos concluir que la imagen más conveniente para la percepción humana será una imagen cuyo histograma se aproxime a una distribución uniforme. Aquellos. para mejorar la calidad visual de la imagen, es necesario aplicar dicha transformación para que el histograma del resultado contenga todos los valores de brillo posibles y, al mismo tiempo, en aproximadamente la misma cantidad. Esta transformación se denomina ecualización de histogramas y se puede realizar con el código del Listado 1.
Listado 1. Implementando una rutina de ecualización de histograma

  1. procedimiento TCGrayscaleImage. Ecualización de histograma ;
  2. constante
  3. k = 255
  4. h: matriz [ 0 .. k ] de doble ;
  5. i, j: palabra;
  6. comenzar
  7. para i := 0 a k hacer
  8. h[yo] := 0 ;
  9. h[ ronda (k * self . Píxeles [ i, j] ) ] : = h[ ronda (k * self . Pixels [ i, j] ) ] + 1 ;
  10. para i := 0 a k hacer
  11. h[ i] : = h[ i] / (self . Altura * self . Ancho ) ;
  12. para i := 1 a k hacer
  13. h[ yo] : = h[ yo - 1 ] + h[ yo] ;
  14. para i := 0 a sí mismo . Altura - 1 do
  15. para j := 0 a uno mismo . Ancho - 1 hacer
  16. uno mismo . Píxeles [ i, j] : = h[ ronda (k * self . Píxeles [ i, j] ) ] ;
  17. fin ;

Como resultado de igualar el histograma, en la mayoría de los casos, el rango dinámico de la imagen se amplía significativamente, lo que permite mostrar detalles que antes no se notaban. Este efecto es especialmente pronunciado en imágenes oscuras, como se muestra en la Tabla. 2. Además, vale la pena señalar una característica más importante del procedimiento de ecualización: a diferencia de la mayoría de los filtros y transformaciones de gradación que requieren el establecimiento de parámetros (apertura y constantes de gradación), la ecualización del histograma se puede realizar en un modo totalmente automático sin la intervención del operador.
Pestaña. 2. Imágenes y sus histogramas después de la ecualización


Puede ver fácilmente que los histogramas después de la ecualización tienen una especie de discontinuidades notables. Esto se debe al hecho de que el rango dinámico de la imagen de salida es más amplio que el de la imagen original. Obviamente, en este caso, el mapeo considerado en el Listado 1 no puede proporcionar valores distintos de cero en todos los intervalos de histograma. Si aún necesita lograr una apariencia más natural del histograma de salida, puede usar una distribución aleatoria de los valores del contenedor de histograma i-ésimo en algunos de sus vecindarios.
Obviamente, la ecualización de histogramas facilita la mejora de la calidad de las imágenes monocromáticas. Naturalmente, me gustaría aplicar un mecanismo similar a las imágenes en color.
La mayoría de los desarrolladores no muy experimentados representan la imagen como tres canales de color RGB e intentan aplicar el procedimiento de ecualización de histograma a cada color por separado. En algunos casos raros, esto le permite tener éxito, pero en la mayoría de los casos el resultado es regular (los colores no son naturales y son fríos). Esto se debe a que el modelo RGB no representa con precisión la percepción humana del color.
Pensemos en otro espacio de color: HSI. Esta modelo de color(y otros relacionados con él) son muy utilizados por ilustradores y diseñadores, ya que te permiten operar con conceptos más familiares de matiz, saturación e intensidad para una persona.
Si consideramos la proyección del cubo RGB en la dirección de la diagonal blanco-negro, obtenemos un hexágono, cuyas esquinas corresponden a los colores primarios y secundarios, y todos los tonos grises (que se encuentran en la diagonal del cubo) se proyectan al punto central del hexágono (ver Fig. 1):

Arroz. 1. Proyección de cubo de color
Para poder codificar todos los colores disponibles en el modelo RGB utilizando este modelo, debe agregar un eje de luminosidad (o intensidad) vertical (I). El resultado es un cono hexagonal (Fig. 2, Fig. 3):


Arroz. 2. Pirámide HSI (parte superior)
En este modelo, el tono (H) viene dado por el ángulo relativo al eje rojo, la saturación (S) caracteriza la pureza del color (1 significa un color completamente puro y 0 corresponde a un tono de gris). En valor cero el tono de saturación no tiene sentido ni está definido.


Arroz. 3. Pirámide HSI
En mesa. La Figura 3 muestra la descomposición de la imagen en componentes HSI (los píxeles blancos en el canal de tono corresponden a la saturación cero):
Pestaña. 3. Espacio de color HSI


Se cree que para mejorar la calidad de las imágenes en color, lo más eficaz es aplicar el procedimiento de ecualización al canal de intensidad. Esto es exactamente lo que se muestra en la Tabla. 4
Pestaña. 4. Ecualización de varios canales de color.


Espero que hayas encontrado este material al menos interesante, como máximo útil. Gracias.

Existen tres métodos principales para aumentar el contraste de una imagen:

  • estiramiento de histograma lineal (contraste lineal),
  • normalización de histogramas,
  • alineación (linealización o ecualización, ecualización) del histograma.

Estiramiento lineal se reduce a asignar nuevos valores de intensidad a cada píxel de la imagen. Si las intensidades de la imagen original cambiaron en el rango de a , entonces es necesario "estirar" el rango especificado linealmente para que los valores cambien de 0 a 255. Para hacer esto, es suficiente volver a calcular la intensidad anterior valores para todos los píxeles de acuerdo con la fórmula , donde los coeficientes simplemente se calculan en función del hecho de que el borde debe ir a 0 y - a 255.

Normalización de histograma a diferencia del método anterior, no estira todo el rango de cambios de intensidad, sino solo su parte más informativa. La parte informativa es un conjunto de picos de histograma, es decir intensidades que ocurren con más frecuencia que otras en la imagen. Los contenedores correspondientes a intensidades raras se descartan durante la normalización, luego se realiza el estiramiento lineal habitual del histograma resultante.

alineación histograma es una de las formas más comunes. El propósito de la ecualización es que todos los niveles de brillo tengan la misma frecuencia y el histograma corresponda a una ley de distribución uniforme. Digamos que nos dan una imagen en escala de grises que tiene una resolución de píxeles. El número de niveles de cuantificación de brillo de píxeles (número de contenedores) es . Entonces, en promedio, para cada nivel de brillo debería caer píxeles La matemática subyacente radica en hacer coincidir las dos distribuciones. Sean las variables aleatorias que describen el cambio en la intensidad de los píxeles en las imágenes, la densidad de distribución de intensidad en la imagen original y la densidad de distribución deseada. Es necesario encontrar una transformación de densidades de distribución, que permita obtener la densidad deseada:

Denote por y leyes integrales de distribución de variables aleatorias y . De la condición de equivalencia probabilística se sigue que . Escribimos la ley de distribución integral por definición:

Por lo tanto obtenemos que

Queda por saber cómo estimar la ley de distribución integral. Para hacer esto, primero debe construir un histograma de la imagen original, luego normalizar el histograma resultante dividiendo el valor de cada contenedor por el número total de píxeles. Los valores bin se pueden considerar como una aproximación de la función de densidad de distribución. Así, el valor de la función de distribución integral se puede representar como una suma de la siguiente forma:

La estimación construida se puede utilizar para calcular nuevos valores de intensidad. Tenga en cuenta que las transformaciones de histograma anteriores se pueden aplicar no solo a la imagen completa, sino también a sus partes individuales.

La biblioteca OpenCV implementa la función equalizeHist, que proporciona una mejora del contraste de la imagen a través de la ecualización del histograma [ , ]. El prototipo de la función se muestra a continuación.

void equalizeHist(const Mat& src, Mat& dst)

La función funciona en cuatro pasos:

El siguiente es un ejemplo de un programa que proporciona ecualización de histogramas. La aplicación toma el nombre de la imagen de origen como argumento de la línea de comandos. Después de realizar la operación de ecualización del histograma, muestre la imagen original 1 La imagen utilizada es parte de la base PASACL VOC 2007., convertida a escala de grises (Fig. 7.11, izquierda), y una imagen con un histograma ecualizado (Fig. 7.11, derecha).

#incluir #incluir utilizando el espacio de nombres cv; const char ayudante = "Sample_equalizeHist.exe \n\ - nombre del archivo de imagen\n"; int main(int argc, char* argv) ( const char *initialWinName = "Imagen inicial", *equalizedWinName = "Imagen igualada"; Mat img, grayImg, equalizedImg; if (argc< 2) { printf("%s", helper); return 1; } // загрузка изображения img = imread(argv, 1); // преобразование в оттенки серого cvtColor(img, grayImg, CV_RGB2GRAY); // выравнивание гистограммы equalizeHist(grayImg, equalizedImg); // отображение исходного изображения и гистограмм namedWindow(initialWinName, CV_WINDOW_AUTOSIZE); namedWindow(equalizedWinName, CV_WINDOW_AUTOSIZE); imshow(initialWinName, grayImg); imshow(equalizedWinName, equalizedImg); waitKey(); // закрытие окон destroyAllWindows(); // осовобождение памяти img.release(); grayImg.release(); equalizedImg.release(); return 0; }


Arroz. 7.11.

Con todas las transformaciones elemento por elemento, la ley de distribución de probabilidad que describe los cambios de imagen. Con el contraste lineal, la forma de la densidad de probabilidad se conserva, sin embargo, en el caso general, es decir, con valores arbitrarios de los parámetros de transformación lineal, los parámetros de la densidad de probabilidad de la imagen transformada cambian.

Determinar las características probabilísticas de imágenes que han sufrido procesamiento no lineal es una tarea directa de análisis. Al decidir tareas practicas procesamiento de imágenes, se puede plantear el problema inverso: según la forma conocida de la densidad de probabilidad pf(F) y la forma deseada pag(gramo) definir la transformación deseada gramo= ϕ( F) al que debe someterse la imagen original. En la práctica del procesamiento de imágenes digitales, transformar una imagen en una distribución equiprobable a menudo conduce a un resultado útil. En este caso

donde gramo min y gramo max - valores de brillo mínimo y máximo de la imagen convertida. Determinemos las características del convertidor que resuelve este problema. Dejar F y gramo limitado por la función gramo(norte, metro) = j( F(norte, metro)), a P.f.(F) y pag(gramo) son las leyes de distribución integral para el brillo de entrada y salida. Teniendo en cuenta (6.1), encontramos:

Sustituyendo esta expresión en la condición de equivalencia probabilística

después de transformaciones simples, obtenemos la relación

que es una caracteristica gramo(norte, metro) = j( F(norte, metro)) en el problema que se está resolviendo. Según (6.2), la imagen original sufre una transformación no lineal, cuya característica es P.f.(F) está determinada por la ley de distribución integral de la imagen original. Después de eso, el resultado se reduce al rango dinámico especificado utilizando la operación de contraste lineal.

Por lo tanto, la transformación de densidad de probabilidad asume el conocimiento de la distribución integral de la imagen original. Como regla general, no hay información confiable sobre él. La aproximación por funciones analíticas, debido a errores de aproximación, puede conducir a una diferencia significativa en los resultados de los requeridos. Por lo tanto, en la práctica del procesamiento de imágenes, la transformación de las distribuciones se realiza en dos etapas.



En la primera etapa, se mide el histograma de la imagen original. Para Imagen digital, cuya escala de grises está, por ejemplo, en el rango de números enteros, el histograma es una tabla de 256 números. Cada uno de ellos muestra el número de píxeles de la imagen (fotograma) que tienen un brillo determinado. Al dividir todos los números de esta tabla por el tamaño total de la muestra, igual al número de muestras en la imagen, se obtiene una estimación de la distribución de probabilidad del brillo de la imagen. Denote esta estimación q pf(fq), 0 ≤ fq≤ 255. Entonces la estimación de la distribución integral se obtiene mediante la fórmula:

En la segunda etapa, se realiza la propia transformación no lineal (6.2), que proporciona las propiedades necesarias de la imagen de salida. En este caso, en lugar de la distribución integral verdadera desconocida, se utiliza su estimación basada en el histograma. Con esto en mente, todos los métodos de transformación de imágenes elemento por elemento, cuyo propósito es modificar las leyes de distribución, se denominan métodos de histograma. En particular, una transformación donde la imagen de salida tiene una distribución uniforme se llama ecualización (alineación) del histograma.

Tenga en cuenta que los procedimientos de transformación de histogramas se pueden aplicar tanto a la imagen como un todo como a sus fragmentos individuales. Este último puede ser útil en el procesamiento de imágenes no estacionarias, cuyas características difieren significativamente en diferentes áreas. En este caso, el mejor efecto se puede lograr aplicando el procesamiento de histogramas a áreas individuales: áreas de interés. Es cierto que esto cambiará los valores de las lecturas y todas las demás áreas. La Figura 6.1 muestra un ejemplo de ecualización realizada de acuerdo con la metodología descrita.

característica distintiva En muchas imágenes obtenidas en sistemas de imágenes reales, hay una proporción significativa de áreas oscuras y un número relativamente pequeño de áreas con alto brillo.

Figura 6.1 – Un ejemplo de ecualización de histograma de imagen: a) la imagen original y su histograma c); b) la imagen transformada y su histograma d)

La ecualización del histograma conduce a la ecualización de las áreas integrales de rangos de brillo uniformemente distribuidos. La comparación de las imágenes originales (Figura 6.1 a) y procesadas (Figura 6.1 b) muestra que la redistribución del brillo que ocurre durante el procesamiento conduce a una mejora en la percepción visual.