GREYCstoration – Documentación.
Web del proyecto:
http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
::Instalación en MacOSX:
Ver link externo (gracias a Eli Bressert).
::Descripcion del algoritmo:
El algoritmo de GREYCstoration tiene tres modos diferentes (restauración, inpainting y reescalado) cada uno con sus propios parámetros. De todas formas, todos estos modos se basan en la misma idea: suavizar la imagen localmente preferiblemente a lo largo de las estructuras de la imagen.
Los parámetros principales del algoritmo básicamente definen cómo se debe recuperar la geometría de la estructura de la imagen, y cómo se debe hacer el suavizado. Tambien puedes decirle al algoritmo cuantas pasadas de suavizado tiene que hacer (iteraciones).
Esta es una idea muy simple pero las posibilidades para ajustar finamente los parámetros permiten una infinidad de comportamientos a la hora de suavizar de la imagen y, tal y como puedes ver en la sección demo, pueden conseguirse una gran cantidad de ediciones interesantes.
Realmente, imagina el algoritmo de GREYCstoration como un operador humano al que se le permite procesar una imagen solamente usando una herramienta falta de definición (desenfocada), tratando de aplicarla localmente a lo largo de la(s) direccion(es) correctas con la intensidad correcta, y haciendo eso hasta que la imagen se suavice lo suficiente. GREYCstoration trata de realizar la tarea tan automaticamente como sea posible para todos los pixeles de la imagen. A continuación detallamos los parámetros principales del algoritmo de GREYCstoration y explicamos cómo puede afectar los resultados obtenidos.
::Restauracion de la imagen.
Generalmente la restauración de la imagen supone quitar el ruido (denoising) o despixelar (deblocking). Solamente recuerda que GREYCstoration funciona aplicando suavizado local en la imagen. ¡Si tu problema no se puede afrontar por medio de esta clase de técnica, no esperes demasiado de GREYCstoration! Por ejemplo, quitar ruido de la sal y de la pimienta (Salt & Pepper???) de imágenes se hará de una manera mucho más eficiente con un simple filtro de mediana, puesto que está particularmente bien adaptado para esta clase de ruido. Desafortunadamente, el ruido encontrado generalmente en imágenes naturales es más difícil de quitar, y GREYCstoration puede, quizás, ayudarte en tales casos. Para funcionar en modo de restauración, tienes que invocar GREYCstoration con la opción -restore seguido por el archivo de la imagen que quieres procesar:
| ./greycstoration -restore imagen-ruidosa.jpg |
Los parámetros por defecto se han fijado para utilizarse con una imagen que contenga poco ruido. Pueden ser inadecuados para las imágenes muy ruidosas (el ruido no será quitado en cantidad suficiente) o para imagenes con muy poco ruido (las imágenes resultantes aparecerán sobresuavizadas). Es muy importante que pruebes diferentes combinaciones de parámetros al procesar una imagen, puesto que es casi seguro que los de por defecto no funcionaran totalmente a la perfección. Esto se ilustra mas abajo, compara el resultado obtenido con los parámetros por defecto (imagen del medio) a la que esta obtenida con los “ajustes finos” (imagen de la derecha):
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imagen restaurada con el greycstoration – restore obelix.png, imagen restaurada con el greycstoration -restore obelix.png -p 0.7 -a 0.73 -dt 10 -iter 50 -sigma 0.5 -alfa 0.3.
Al contrario que otras técnicas antiruido basadas en PDE, el algoritmo de GREYCstoration se ha diseñado para ser muy flexible y dar resultados muy diferentes con diferentes combinaciones de parámetros. Describamos ahora cuáles son los parámetros principales que indudablemente tienes que ajustar para el modo restauración. Esos parámetros se pueden dividir en dos grupos: los parámetros que dicen cómo recuperar la geometría de las estructuras de la imagen, y los parámetros que dicen cómo suavizar la imagen, según dicha geometría:
Parametros relativos a la geometria de la imagen:
¤ Alfa float_number: Este parámetro se define matemáticamente como la desviación estándar de un núcleo gaussiano falto de definición (blurring) aplicado a la imagen original antes de estimar su geometría. Es decir define una especie de escala bajo la cual los detalles no son considerados como estructuras si no más bien como ruido. Este parámetro es muy dependiente del nivel del ruido presente en tu imagen. Recuerda que el aumentar demasiado este parámetro dirá a GREYCstoration que suavice más estructuras (puede ser agradable para efectos visuales especiales). El valor prefijado de alfa es 0.8, que es relativamente bajo (se preservarán muchos detalles). Las imagenes de abajo muestran un ejemplo de los resultados obtenidos al aumentar el valor de alfa. Fijate cómo los detalles son ignorados con valores altos de alfa:
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imagen restaurada con los parámetros por defecto, imagen restaurada con -alfa 6, imagen restaurada con -alfa 12.
¤ Sigma float_number: Este parámetro se define matemáticamente como la desviación estándar de un núcleo gaussiano falto de definición (blurring) aplicado al campo de los tensores de la estructura, que son las matrices que describen localmente la geometría de la estructura de la imagen. Como en el caso de alfa, puede ser visto como una escala pero no en la imagen en sí misma, si no en sus estructuras. Básicamente, la sigma le dirá a GREYCstoration cómo es suavizada debe ser la geometría de las estructuras de la imagen, después de la recuperación. El valor prefijado de sigma es 0.5, que es relativamente bajo (se preservarán muchos detalles). La imagen de abajo muestra un ejemplo de los resultados obtenidos de aumentar el valor de sigma.
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imagen restaurada con los parámetros por defectos, imagen restaurada con -sigma 3, imagen restaurada con -sigma 6.
Una vez que se ha determinado la estructura de la imagen, el algoritmo de GREYCstoration debe aplicar el suavizado en la imagen procesada. Básicamente, tratara de suvizar la imagen a lo largo de las direcciones de las estructuras principales pero ésto puede ser tuneado con los parámetros descritos mas abajo.
Parámetros relacionados con el comportamiento en el suavizado:
¤ P float: Este parámetro le habla a GREYCstoration sobre la preservación de las estructuras. Una vez que las estructuras locales de la imagen han sido detecadas, GREYCstoration tienen que decidir cuánto suavizara los pixeles de la imagen. Básicamente, disminuye el suavizado cuando la estructura local es contrastada. El parámetro p simplemente marca como debe ser considerado este decremento. Cuando p es alto, incluso las estructuras poco contrastadas serán preservadas. No marques un p demasiado alto o puede que el ruido tambien sea preservado. Por el contrario, cuando p es bajo, las estructuras tienen que ser muy contrastadas para evitar el suvizado local. No marques un p demasiado bajo o las estructuras de la imagen serán sobresuavizadas. Como puedes ver, hay un (a veces difícil) equilibrio para acertar donde situal el valor de p. Por defecto es 0.8 y los valores típicos se encuentran entre 0 y 5. La imagen abajo muestra un ejemplo de los resultados obtenidos con el aumento de p.
![]() |
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imágenes restauradas con -p 0, -p 0.8 (por defecto), -p 1.5 y -p 3.
¤ A float: Este los parámetros fija el nivel de anisotropia del suavizado. Va desde 0 (que significa “isotrópico puro”) a 1 (que signifique “anisotropico puro”). La noción de anisotropia se relaciona con la manera en la que la orientación del suvizado se extiende por el espacio: el suavizado puramente isotrópico (-p 0) será realizado en todas las direcciones posibles, mientras que el alisado puramente anisotropico (-p 1) será realizado solamente a lo largo de las direcciones de las estructuras. Los valores de p entre 0 y 1 le dicen a GREYCstoration que alise la imagen principalmente a lo largo de las direcciones de la estructura, pero con cierto porcentaje de tolerancia. El valor prefijado para a es 0.8 (que es ya muy anisotropico). La imagen de abajo muestra un ejemplo de los resultados obtenidos con el aumento de a.
![]() |
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imágenes restauradas con -a 0, -a 0.3, -a 0.8 (defecto), y -a 1
¤ Iter integer: Este parámetro le dice simplemente a GREYCstoration que realice varias iteraciones en vez solo una. Repite la accion de suavizar hasta que la imagen queda aceptablemente libre de ruido. Observa que esto puede ser hecho interactivamente cuando GREYCstoration nos muestra el resultado (usando la tecla I). La imagen de abajo muestra un ejemplo de los resultados obtenidos con el aumento de iteraciones. Observe que para el propósito de la restauración, el número de iteraciones es bastante alto: 1 a 5 iteraciones son generalmente necesarias conseguir un resultado aceptable. El valor prefijado es 1.
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imágenes restauradas con -iter 1 (por defecto), -iter 10 y -iter 100.
¤ DT float: Este parámetro representa la cantidad media de suavizado que se utilizara. GREYCstoration realiza un promedio espacial de los valores de pixel, y dt representa una especie de dimensión del área donde se computa el suavizado. Se relaciona con el paso de tiempo (time step) en PDE. El valor prefijado es 50. La imagen de abajo muestra que un ejemplo de los resultados obtenidos al aumentar dt, es preferible usar un dt alto a realizar varias iteraciones (al menos hasta que aparecen artefactos indeseables), esto acelerará bastante el proceso.
![]() |
![]() |
![]() |
![]() |
De izquierda a derecha: Imagen original, imágenes restauradas con – dt 10, – dt 50 (por defecto) y – dt 150.
Eligiendo parámetros para casos reales:
Dejanos mostrarte cómo podemos coseguir un conjunto de parametros “correcto” para situaciones reales. Ahí van algunos ejemplos:
La imagen siguiente (a la izquierda) es una captura obtenida con una webcam de muy baja calidad. Hay bastante ruido de Poisson (Poisson noise) y pixelado debido a la compresión hecha por la webcam. La imagen también esta ligeramente desenfocada.
![]() |
![]() |
![]() |
¿La imagen del medio es el resultado obtenido por GREYCstoration con los parámetros de defecto? No esta mal para empezar. De todas formas aún queda algo de pixelado así como ruido. Tambien sigue habiendo la falta de definición, pero eso no puede ser solucionado con GREYCstoration (realiza solamente suavizado local, no realce de bordes). Y como la imagen esta falta de definición, la geometría de su estructura debe ser, también, relativamente suave. Este concepto se puede introducir en GREYCstoration aumentando el parámetro alfa (fijalo a 1 en vez de 0.8) y sigma (fijalo a 1.5 en vez de 0.8), según lo descrito arriba. Finalmente, es necesario suavizar mas, así que aumentamos el parámetro dt (fijalo a 120 en vez del valor predeterminado 80). La imagen derecha muestra el resultado obtenido con greycstoration -restore reno.png -sigma 1.5 – dt 120 -alfa 1.
Y aquí está una muestra de la original y la restaurada:
![]() |
He aquí otro ejemplo con una imagen que contiene ruido de “escaner”. Los parámetros por defecto no dan buen resultado en este caso (imagen del medio), puesto que el ruido considerado tiene un patrón relativamente grande. Fijate que en esta imagen las estructuras son bastante simples, la imagen se compone básicamente de colores planos y de contornos rectos.
![]() |
![]() |
![]() |
![]() |
En este caso, podemos utilizar una anisotropia muy baja (por eso marqué a=0.1), y como los parámetros por defecto resultan en una imagen poco suavizada, aplicamos dos iteraciones, cada una con una intensidad de 100: greycstoration -restore moule_original.png -a 0.1 -dt 100 -iter 2 -o moule_tuned.png.
::Image inpainting
La función inpainting intentará dibujar partes que falta de una foto. ¡Especialmente útil para quitar y para ocultar partes no deseadas!. Para decirle a GREYCstoration a qué zonas quisieras aplicar el inpaint haz una imagen “mascara” (una imagen en blanco y negro donde los pixeles blancos denotan las partes no deseadas). Asi seria con el Gimp:
- Abre la imagen.
- Crea una nueva capa transparente del diálogo de capas (CTRL+L)
- Seleccionan el color blanco y dibuja sobre las partes no deseadas con el lápiz.
- Suprime la capa que contiene la imagen original y añade una de color negro.
- Mueve la capa negra al fondo y aplana la imagen.
- Guardala como mask.png
Entonces ejecuta en la línea de comando: GREYCstoration_XXX_YYY -inpaint mi_imagen.jpg -m mask.jpg, se abrira una ventana de previsualización mostrando el proceso del algoritmo en tiempo real. Cuando creas que el retoque es suficientemente bueno cierra la ventana: se abrirá de nuevo y mostrara instrucciones en la ventana del terminal. (gracias a Romain Behar por esta descripción corta).
::Reescalado de la imagen.
El reescalado es completamente funcional, pero la documentación falta… .
1 respuesta to “GREYCstoration – Documentación.”
- ZTE-MF110 en debian squeeze.Es uno de los modems GSM de movistar, en principio squeeze lo detecta sin problemas y parece que funciona todo correctamente pero al tratar de activarlo con network-manager muestra varios errores y no funciona: Parece que el problema es que udev todavia no tiene reglas para este dispositivo, pero en el git del proyecto se pueden […]
- Cambiar la lampara del nikon sb-900.El otro dia en un despiste se me cayo al suelo el SB-900 con tan mala fortuna que se rompio la lampara, me puse en contacto con el servicio tecnico de Nikon y les pedi un presupuesto de la reparacion. Resulta que salia una pastaza asi que decidi repararlo yo mismo. El primer paso fue buscar […]
- Saibigain desde UrkiolaEl Saibigain es el monte que esta a la derecha de Urkiola segun se sube desde Mañaria. Es un monte bastan pequeño, comparandolo con el Anboto y demas asi que supongo que por eso es bastante desconocido pero tiene una vista muy bonita de Aramotz. El inicio de la subida esta un poco antes del Toki-alai, […]
- Albertia.El Albertia es un monte muy facilito y corto, a paso normal sera una hora o asi. Se puede salir desde Legutio y hacer una ruta circular pero nosotros optamos por ir hasta la presa de Albina y empezar alli. Hay un camino bastante bien marcado pero lo que hicimos fue enfilar hacia arriba por medio del […]
- Burbona desde Altube.El objetibo era subir al Burbona desde Altube, es un recorrido un poco largo pero casi no tiene desnivel (algun repecho al principio) y se hace todo por un camino bien marcado. La ruta empieza en el mismo puerto de Altube (justo donde al cartel), al lado derecho segun se sube de Baranbio hay una […]
- Compilar UFRaw.Hay nueva version de UFRaw, la 0.16. Desde la 0.15 hay una serie de opciones muy interesantes que al estar calificadas como experimentales no se suelen activar en los paquetes precompilados. En este post quiero añadir los pasos para poder activarlas. Lo primero es descargar el codigo fuente desde la pagina del proyecto: http://ufraw.sourceforge.net/Install.h […]
- B-N en Gimp con GEGL.Un plugin de Gimp para pasar a B-N con un resultado bastante interesante. Lo primero es activar la libreria GEGL (de Gimp 2.6 en adelante). Pulsar en Colores/Usar GEGL: Despues vamos a la biblioteca de filtros: Herramientas/Operacion GEGL. En la ventana que se abrira hay que seleccionar c2g, se desplegaran las opciones que se ven en la captura: Si […]
- Usar UUID en el fstab.Tenemos varias maneras para obtener los UUID de las particiones: # blkid /dev/sda1: UUID=”d18a84d5-1637-44f8-840d-35ae68797ed1″ TYPE=”swap” /dev/sda2: UUID=”16b9a0f5-a242-4af7-bc89-7ad3c336a382″ TYPE=”ext4″ /dev/sdb1: UUID=”817c90a0-5b95-4050-86cc-eecda041ecaf” TYPE=”ext4″ /dev/sdc1: UUID=”088f290c-a64c-43be-9d20-2f7d34349cf6″ TYPE=”ext4″ # ls -l /dev/disk/b […]
- Aiumeen basoa.Unas fotos del otro dia en el concierto en Mutriku de Aiumeen basoa. Mas fotos en la galeria: http://www.kurtsik.org/galeriak/aiumeen-basoa […]
- sFTP con chroot en debian Lenny.El problema era un sistema con varios dominios virtuales a los que los usuarios debian subir los archivos a publicar. La solucion mas obvia era montar un servidor FTP pero me parece que es un protocolo un poco antiguo e inseguro (a pesar de que lo anterio es cierto la verdad es que nunca he […]





































19 febrero 2009 at 0:45
[...] puedes encontrar el manual en español de GREYCstoration. Traducido desde el original en [...]