Tutorial sobre wavelets de segunda generación (con levantamiento)?


10

Para algunos experimentos de eliminación de ruido y desconvolución, me gustaría aplicar una transformación wavelet de segunda generación (usando pasos de elevación ) a las imágenes.

Sé que hay varias implementaciones disponibles, pero la mayoría de ellas usan matlab, mientras que quiero trabajar en C ++ con OpenCV . Como no hay una implementación incorporada de transformación wavelet en OpenCV 2.x, planeo implementarla yo mismo (además, será un buen ejercicio para mí). Después de un poco de investigación, pude encontrar los artículos originales sobre la transformación de segunda generación, pero todavía estoy un poco confundido sobre la forma exacta en que funciona el algoritmo.

Tomando como referencia principal el artículo [1] de Sweldens: El esquema de elevación: una construcción de wavelets de segunda generación , todavía estoy confundido por la definición de los conjuntos de índices : ¿cuál es su tamaño? como se construyen ...K(j)

De ahí mi pregunta: ¿alguien sabe acerca de algunos recursos sobre la transformación wavelet de segunda generación (documentos, tutoriales, diapositivas ...) que están en forma de tutorial o que proporcionan una vista más algorítmica (en lugar de matemática) , ¿qué me ayudaría a diseñar mi propia implementación?

Gracias de antemano.

Referencias

Mi referencia principal es:

[1] Sweldens, W. (1998). El esquema de elevación: una construcción de wavelets de segunda generación. Revista SIAM sobre análisis matemático, 29 (2), 511.

Y también estoy aprendiendo de:

[2] Daubechies, I. y Sweldens, W. (1998). La factorización wavelet se transforma en pasos de elevación. Análisis de Journal of Fourier y aplicaciones, 4 (3), 247–269.

[3] Kovacevic, J. y Sweldens, W. (2000). Familias wavelet de orden creciente en dimensiones arbitrarias. Procesamiento de imagen, 9 (3), 480–496. doi: 10.1109 / 83.826784


Probablemente ayudaría, si vincula a los documentos originales y explica, por qué está confundido por ellos. Además, usted dice que hay muchas implementaciones de matlab (lenguaje de script) que puede leer para tener una idea de cómo funciona el algoritmo.
bjoernz

Ya hay bibliotecas de wavelets de C ++ . Si va a codificar algo para hacer ejercicio, ¿por qué no elige una de las transformaciones multiescala más nuevas como vigas, crestas o curvas para que la comunidad pueda beneficiarse?
Emre

@Emre: Como se dijo antes, OpenCV no incluye una transformación wavelet, y no deseo agregar dependencias. Comprobaré el código de Blitzwave de todos modos para ver cómo se hacen las cosas. Por ahora, solo necesito segunda generación. wavelets, pero las herramientas más recientes (comenzando con las curvelets) son una opción para trabajos posteriores.
sansuiso

@bjoernz: agregué una pregunta precisa sobre una pequeña parte del artículo de Sweldens que me confunde.
sansuiso

¿Podría por favor hacer referencia a sus artículos / libros de los que está aprendiendo esto?
Spacey

Respuestas:


2

Finalmente compré una copia de [Ripples in Mathematics The Discrete Wavelet Transform] [1], y estoy muy satisfecho con este libro. Los autores explican el DWT con puntos de vista alternos (esquemas de elevación, enfoque de bancos de filtros, análisis de resolución múltiple), donde cada uno de estos puntos de vista tiene sus propias ventajas. Además, el libro está orientado a la implementación, con capítulos sobre manejo de límites e implementaciones de matlab / C.

Todavía estoy buscando una manera adecuada de manejar señales de tamaños extraños, pero Ripples me dio un buen comienzo.

[1]: http://www.control.auc.dk/~alc/ripples.html "Ripples in Mathematics The Discrete Wavelet Transform", por Arne Jensen y Anders la Cour-Harbo

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.