I'm trying to blur the bottom section of thousands (>50,000) of images using imagemagick. Image resolution is 800x600. The command line code (below) works, but takes a long time. Is there any way that this can be run in parallel, and hopefully called from within R using system()?
I got this code off the internet, so I'm not sure if it's the best way to even achieve this objective? Any help would be greatly appreciated. Thanks in advance!
(OS = OSX El Capitan)
cd /Users/Desktop/test_images
list=$(ls *.jpg)
for img in $list; do
convert $img \
\( -size 800x525 xc:black -size 800x75 xc:white -append \) \
-compose blur -define compose:args=6 -composite \
cd /Users/Desktop/test_images/results/$img
done
cd
I think this command does something very similar to what you are doing but is FAR quicker. See if you like the effect:
If that works, you can use GNU Parallel just as before:
You can also put that lot in a script called
BlurTitle
like this:and then make it executable with:
and call it from
R
with:or from the Terminal with:
If you get "Argument list too long", you can express it the other way around like this by sending the arguments on
stdin
rather than after the command: