ImageTools

 mask the intensity of an image with another image

Parameters

Description

 • The Mask command uses one image as an intensity mask for another image.
 • The img parameter specifies the image to be masked.
 • The mask parameter specifies the mask. It must be the same size as img.
 • The Mask operation consists of multiplying each pixel in img by the corresponding pixel in mask, and writing the result to the output image. This operation is commutative; interchanging the image and mask returns the same result.
 • Pixels with a value of 1.0 in the mask cause the corresponding img pixel to be copied verbatim into the output. Pixels of value 0.0 in the mask result in 0.0 in the output, regardless of the value of the corresponding image pixel.
 For example, consider a mask M that gradually transitions from 1.0 on the left to 0.0 on the right. Using the Mask command with this mask and an image A produces an image that looks like A on the left, and becomes black on the right. Masking image B with the complement of M, $\mathrm{Complement}\left(M\right)$, produces an image that looks like B on the right, and fades to black on the left.
 Combining these two images by simple addition, $A+B$, yields an image that fades from A to B as you move from left to right.
 • Any two images can be masked together. Where one image is lighter, the other shows through more, and vice-versa.
 • Masking a GrayImage with a ColorImage results in a ColorImage.
 • Masking a GrayImage with a ColorAImage results in a ColorAImage.
 • Masking a ColorImage with a ColorAImage results in a ColorAImage with alpha layer intensity equal to zero.

Examples

 > $\mathrm{with}\left(\mathrm{ImageTools}\right):$
 > $A≔\mathrm{Create}\left(1,10,\mathrm{background}=-8\right)$
 ${A}{≔}\left[\begin{array}{cccccccccc}{-8.}& {-8.}& {-8.}& {-8.}& {-8.}& {-8.}& {-8.}& {-8.}& {-8.}& {-8.}\end{array}\right]$ (1)
 > $B≔\mathrm{Create}\left(1,10,\mathrm{background}=8\right)$
 ${B}{≔}\left[\begin{array}{cccccccccc}{8.}& {8.}& {8.}& {8.}& {8.}& {8.}& {8.}& {8.}& {8.}& {8.}\end{array}\right]$ (2)
 > $M≔\mathrm{Create}\left(\left[\left[0,0,\mathrm{seq}\left(0..1,0.2\right),1,1\right]\right]\right):$
 > $\mathrm{printf}\left("%.1f\n",M\right)$
 0.0 0.0 0.0 0.2 0.4 0.6 0.8 1.0 1.0 1.0
 > $\mathrm{printf}\left("%.1f\n",\mathrm{Mask}\left(A,1-M\right)+\mathrm{Mask}\left(B,M\right)\right)$
 -8.0 -8.0 -8.0 -4.8 -1.6 1.6 4.8 8.0 8.0 8.0