Dispersar los píxeles de una imagen con ImageMagick

En este artículo vamos a ver cómo dispersar los píxeles de una imagen con el operador -spread de ImageMagick.
El operador -spread desplazar aleatoriamente los píxeles de la imagen alrededor del radio indicado.

Partamos de esta imagen para ver cómo dispersa los píxeles:

Cuanto menor sea el tamaño del ratio, menor será  la dispersión. Veamos la dispersión generada con un ratio de 1:

convert gato.jpg -spread 1 gato_1.jpg

convert gato.jpg -spread 1 gato_1.jpg
Los valores pueden ser positivos o negativos. Con valores negativos, la dispersión es más evidente.

Veamos la dispersión con -1:

convert gato.jpg -spread -1 gato_-1.jpg


El operador -spread acepta cualquier valor, si bien a partir de 100, la dispersión es tan grande que sólo genera manchas:

convert gato.jpg -spread 100 gato_100.jpg

convert gato.jpg -spread 100 gato_100.jpg
Por lo que para que se distinga la imagen, es mejor trabajar con un valor pequeño, hasta 5 como mucho:

convert gato.jpg -spread 5 gato_5.jpg

 

El operador -spread en vídeo

Podemos generar un vídeo a partir de una imagen que empiece con sus píxeles muy dispersos (en este caso, desde -spread 50) y vayan agrupándose. Al final, dejo un segundo la imagen original:

#!/bin/bash

name=${1%%.*}

for i in {50..0..-1}
do
    if [ $i -ne 0 ]
    then
        for x in 1 2
        do
            convert $1 -spread $i png:-
        done
    else 
        for x in {1..24}
        do
            convert $1 png:-
        done
    fi
done | ffmpeg -f image2pipe -i - ${name}.mp4

En caso de querer modificar el número de fotogramas, lo podemos hacer cambiando la línea 5 sustituyendo:

for i in {50..0..-1}

por  otros valores. Aumentando o disminuyendo el comienzo del rango y del paso.

O cambiando en la línea 9 el número de repeticiones por valor de -spread, para que la animación sea más o menos fluida.

También, si consideramos que los 24 fotogramas para que muestre la imagen original no son la cantidad correcta, lo podemos modificar en la línea 14.

El resultado de pasar como parámetro la imagen original de este artículo con el script:

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.