The blur command (abbreviated: -b) replaces every pixel in an image with a weighted average that includes the pixel itself (the center pixel, having the greatest weight) and neigboring pixels, each weighted in a way that become progressively weaker the further a neighboring pixel is from the center pixel. In the Gaussian form of this command, a Gaussian distribution determines rate of drop-off of the weights. The std_variation parameter of this command controls the extent of the distribution and, indirectly, the rate of drop-off.
The blur command is implemented through a convolution, the kernel being either a Gaussian distribution or a less computationally intensive approximation. This command shares quite a bit of basic machinery with the -convolve command and much of the inner workings of the blur command may be found there.
Informally, the blur command smears images, replacing abrupt transitions in color or intensity with more gradual transitions. Artists frequently employ the blur command to soften noise, usually at the expense of sharp edges. In many cases, the -smooth command is the better noise management tool, as it preserves edges, though it is a computationally expensive tool and its effective use sometimes depends on a subtle use of its parameters. In contrast, blur is a fast tool and easy to use; it may very well serve the purposes at hand.
The format of the command is:
|-blur:||Blur selected images by a quasi-gaussian or gaussian filter (recursive implementation)|
The blur command has a general implementation that functions with images possessing depth — that is, images that represent three dimensional solids or images that record two dimensional surfaces that change with time. To G'MIC, the distinction is largely immaterial. When operating on images with more than one slice, the blur command operates over a spherical neighborhood instead of a circular one. As a practical manner, this can be a source of quickly composed animation effects; the clip on the left illustrates the concept. The command that made this video is very straightforward:
gmic -debug 360,240,300,3 -noise[-1] 0.02,2 -blur[-1] 12,0,1 -normalize[-1] 0,255 -shift[-1] 0,0,0,-1.4257,2 -apply_gamma[-1] 1.5 -split[-1] z -output bluranim.avi
The axes command argument subsumes -blur_xyz, -blur_xy, -blur_x, -blur_y, and -blur_z commands, each which also allow the standard variation to be independently set along combination of axes. These older commands are being retained for backward compatibility.