Copyright © Fred Weinhaus My scripts are available free of charge for noncommercial (nonprofit) use, ONLY. For use of my scripts in commercial (forprofit) environments or nonfree applications, please contact me (Fred Weinhaus) for licensing arrangements. My email address is fmw at alink dot net. If you: 1) redistribute, 2) incorporate any of these scripts into other free applications or 3) reprogram them in another scripting language, then you must contact me for permission, especially if the result might be used in a commercial or forprofit environment. Usage, whether stated or not in the script, is restricted to the above licensing arrangements. It is also subject, in a subordinate manner, to the ImageMagick license, which can be found at: http://www.imagemagick.org/script/license.php 
Creates an image composed of Perlin type noise. 
last modified: September 26, 2017
USAGE: perlin widthxheight [s startlevel] [e endlevel] [b base] [a attenuation] [n noise] [r reseed] [f filter] [m mode] outfile
....... widthxHeight ....... width and height of desired output image PURPOSE: To create an image composed of Perlin type noise. DESCRIPTION: PERLIN creates an image composed of Perlin type noise. Perlin noise is an addition of random noise images at successively higher octaves in frequency and more attenuated amplitudes. ARGUMENTS: widthxheight ... WIDTHxHEIGHT is the desired sized of the output image. s startlevel ... STARTLEVEL is the starting octave level. It defines the lowest frequency of the random pattern (added to zero frequency midgray) where the frequency is the base raised to the octave level. Values are integers>0. The default=1. e endlevel ... ENDLEVEL is the ending octave level. It defines the highest frequency of the random pattern where the frequency is the base raised to the octave level. Values are integers>0. The default is to stop when the amplitude is smaller than the IM smallest number, quantumscale, for your IM Q level compilation. Practically, one might want to stop at octave level around 6 or 7 depending upon output size. If the endlevel is too high, then the resulting noise pattern may be too finegrained. b base ... BASE is the base number for the octave frequencies. Frequencies are defined as base raised to the power of the octave level. Values are integers>1. The default=2 (frequencies increment as octaves that are powers of 2). Typical values are small numbers. a attenuation ... ATTENUATION is a value used to compute how the amplitude for each octave is attenuated (or amplified) as a function of increasing noise frequency. It is the inverse of what is typically called the "persistence" in some of the literature. Values are floats>0. For the default value of zero, the amplitude will be attenuated by successively larger integers incremented for each successive octave. When the attenuation value is larger than zero, the amplitude will be attenuated by the attenuation value raised to the same integer. Thus for values greater than 1, higher frequencies will be attenuation. But for values less than 1, higher frequencies will be amplified. Each frequency will carry the same weight, when the attenuation=1. A value of 2 is often used and produces a smoother result than the default of 0. n noise ... NOISE is the type of noise to use. Any valid IM noise is permitted. The default=random. f filter ... FILTER is the smoothing or interpolation filter used to generate the lower frequency patterns. Any valid IM filter is permitted. The default=lanczos. r reseed ... RESEED is the seed value to use in the random number generator. This permits the resulting image to be repeated. Values are integers>=0; The default is to change the seed value randomly each time the script is run and for each octave. When a seed value is provided, it will be used for all octaves. REQUIREMENTS: IM 6.5.5.1 or higher due to the use of autolevel.
For references, see CAVEAT: No guarantee that this script will work on all platforms, nor that trapping of inconsistent parameters is complete and foolproof. Use At Your Own Risk. 
Variation In Seed Value 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Variation In End Level Octave 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Arguments: 
Variation In Start Level Octave 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Variation In Base 

Arguments: 
Arguments: 
Arguments: 
Variation In Attenuation Value (Persistence) 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Arguments: 
Variation In Type Of Noise 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Arguments: 
Arguments: 
Variation In Filter 

Arguments: 
Arguments: 
Arguments: 
Arguments: 
Color 

Arguments: 
Arguments: 
What the script does is as follows:
This is equivalent to the following IM commands for mode=gray
