Existen una amplia variedad de filtros que se usan para mejorar imágenes y que generalmente tienen resultados buenos.

En realidad para cada tipo de problema se necesita un filtro distinto, pero nosotros vamos a proponer el uso de un Script que usa un par de filtros que suelen resultar muy útiles.

Usm-unsharp-mask

Usm-unsharp-mask

=

El primer filtro es el llamado ‘Edge_Enhance’ de la librería Python Imaging Library (PIL):

Este filtro simula una mejora del enfoque mediante mecanismos de contraste entre transiciones, ayudando de esa forma a apreciar ciertos detalles con mayor nitidez.

Puede resultar espectacular en algún caso aunque en ocasiones puede no mejorar el original e incluso resultar un tanto artificial. La imagen a la izquierda muestra la forma en que trabaja este filtro.

=

El segundo filtro que aplica nuestro script se llama normalizar contraste:

Para ello hemos recurrido al comando convert del paquete de utilidades ImageMagick del cual hablaremos en muchos artículos. La descripción de este filtro ‘normalize‘  en castellano y con alguna imagen de ejemplo puedes verla en:  http://www.rpublica.net/imagemagick/artisticas.html#normalize.

=

Ahora haremos más una autocrítica de este sencillo script realizado por nosotros:

=

Imagen original Imagen optimizada Crítica del resultado.

¡Mejora espectacular !

Se aprecia mejor la librea de los peces, la textura del musgo sobre el tronco y los peces de la parte superior que estaban desenfocados ahora aparecen muy bien definidos.

Mejora en algún aspecto,pero empeora en otros.

Mejoró el contraste, y empeoró el ruido También destaca más ahora la suciedad del cristal.

Mejora importante.

Ha resaltado los artefactos producidos por la alta compresión del jpeg, pero permite apreciar las texturas de las alas de los insectos que antes apenas eran perceptibles.

Mejora en algún aspecto, pero empeora en otros.

Hay un efecto exagerado sobre el realce de los finos detalles y el resultado puede ser  más interesante desde un punto de vista artístico, que como mejora propiamente dicha.

¡Mejora espectacular!

Mejora en contraste y parece mejor enfocada.

No produce una mejora significativa.

Yo me quedaría con el original.

Leve mejoría.

Mejora un poco el contraste y parece algo más nítida.

Leve mejoría.

Mejora un poco el contraste y gana en nitidez. La hace más interesante.

Leve mejoría.

Mejora un poco el contraste y gana en nitidez.

Leve mejoría.

El primer plano gana algo en nitidez.

Leve mejoría.

Gana un pelín en contraste y en nitidez.

Leve mejoría.

Gana algo en nitidez.

¡Mejora espectacular!

Gana mucho en contraste y en nitidez.

Leve mejoría.

Gana algo en contraste y en nitidez.

Leve mejoría.

Gana mucho en contraste y en nitidez, pero ahora la textura de la fina arena de playa parece gravilla.

=

En cualquier caso, que se considere de una forma u otra el resultado de una optimización de una imagen no deja de ser algo muy subjetivo. Es pero que mis opiniones sirvan de orientación, pero nada más.

Después de ver todo esto quizás prefieras separar ambos filtros en programas distintos, pero echar un vistazo al resultado de aplicar ambos filtros te proporcionará una idea inicial que te ayudará a decidir cual filtro usar.

El programa para optimizar imágenes viene de dos formas. Una de ellas ‘OptimDirJpg.py’ tomará todos los ficheros ‘*.jpg’ del directorio actual y  los optimizará generando una copia con un nombre diferente. La otra ‘OptimJpg.py’ recibirá un nombre de un fichero en el directorio actual, y lo optimizará.

También se proporciona a modo de propina un tercer script ‘ResizeDirJpg.py’  que recibirá el número de pixels de la anchura a la cual deseamos convertir todos lo ficheros ‘*.jpg’ del directorio actual que serán redimensionados con arreglo a esa nueva anchura y situados en un directorio ‘mini’. Estos tres ficheros vienen empaquetados juntos de dos formas diferentes. (.tar.bz2) y (.zip).

Download: