Generar ruido con ImageMagick
El operador noise de ImageMagick ofrece distintas posibilidades de generar ruido, tanto sobre un lienzo recién creado como sobre una imagen previamente existente.
Podemos listar las opciones de noise con convert -list noise
:
$ convert -list noise Gaussian Impulse Laplacian Multiplicative Poisson Random Uniform
Además de estas opciones, podemos usar noise con + o con – delante. Con -noise debemos indicar el radio, con +noise sólo podemos indicarle el modo.
Partamos de una imagen simple:
Empezaremos con +noise, viendo uno por uno todos los modos:
convert farola.jpg +noise Gaussian farola_noise_Gaussian.jpg
convert farola.jpg +noise Impulse farola_noise_Impulse.jpg
convert farola.jpg +noise Laplacian farola_noise_Laplacian.jpg
convert farola.jpg +noise Multiplicative farola_noise_Multiplicative.jpg
convert farola.jpg +noise Poisson farola_noise_Poisson.jpg
convert farola.jpg +noise Random farola_noise_Random.jpg
convert farola.jpg +noise Uniform farola_noise_Uniform.jpg
Como he comentado, no le podemos indicar ningún valor a +noise, ni detrás del modificador:
$ convert farola.jpg +noise 5 Random farola_noise_Random.jpg convert-im6.q16: UnrecognizedNoiseType `5' @ error/convert.c/ConvertImageCommand/2265.
Ni detrás del modo:
$ convert farola.jpg +noise Random 5 farola_noise_Random.jpg convert-im6.q16: unable to open image `5': No existe el archivo o el directorio @ error/blob.c/OpenBlob/2874. convert-im6.q16: no decode delegate for this image format `' @ error/constitute.c/ReadImage/560.
Donde sí podemos utilizar distintos valores es con -noise, que nos permite delimitar el radio para unificar los píxeles, pero no nos permite elegir el modo.
Con un valor bajo, como 5, emborrona ligeramente la imagen eliminando matices:
convert farola.jpg -noise 5 farola_noise_5.jpg
Con valores muy altos, como 50, genera manchas de color:
convert farola.jpg -noise 50 farola_noise_50.jpg
Y con esto hemos visto el uso más simple del operador noise, que permite generar ruido sobre una imagen o crear lienzos con píxeles aleatorios y, a partir de esa base, generar efectos.