n(+) = { 15612530, 7279422, 7906687 } The reported components of the n global variable correspond to the red, green and blue channels of the target image, respectively. New Generate Output Option So far the PixelMath process has been a pure pixel generator: it either modified the pixels of its target image—when executed directly on an image—, or generated the pixels of a newly created image—when executed globally, or with the create new image option enabled. This is not necessarily true anymore. The new generate output option can be disabled to prevent generation of output pixel data. This can be useful in cases where we are only interested in the side effects of PixelMath's execution, not in the pixel values resulting from expression evaluation. A good example is the pixel counting operation that we have described in the previous section. Obviously, when you enable this option that's because you are using global variables to accumulate some results, and you only want to get the final variable values, without altering the target image. Of course, this option is disabled by default. New Single Threaded Option PixelMath is a fully parallelized process. It will use all available processor cores (unless you explicitly limit parallel execution via global preferences) for maximum performance. That's great for sure, but is this what we always want to happen? The answer would invariably be yes, except for the fact that there are some important tasks that are incompatible with parallel execution. These tasks were possible with previous versions of PixelMath, but they required you to disable parallel execution through a global preferences option (or, equivalently, using the parallel command from the console). However, with this approach those PixelMath instances implementing non-parallelizable tasks depend on a particular global configuration, which is very problematic. Now you can disable parallel execution for specific PixelMath instances, which makes perfectly feasible the implementation of these tasks. A good example of non-parallelizable task is calculation of integral images. In an integral image, each pixel at coordinates {x,y} is the sum of all pixels at coordinates {0 <= i <= x, 0 <= j <= y} in the original image. New Statistical Functions The following functions are now part of the standard PixelMath set. Some of them already existed in previous versions, but their formal descriptions have changed in the new version.
n(+) = { 15612530, 7279422, 7906687 } The reported components of the n global variable correspond to the red, green and blue channels of the target image, respectively. New Generate Output Option So far the PixelMath process has been a pure pixel generator: it either modified the pixels of its target image—when executed directly on an image—, or generated the pixels of a newly created image—when executed globally, or with the create new image option enabled. This is not necessarily true anymore. The new generate output option can be disabled to prevent generation of output pixel data. This can be useful in cases where we are only interested in the side effects of PixelMath's execution, not in the pixel values resulting from expression evaluation. A good example is the pixel counting operation that we have described in the previous section. Obviously, when you enable this option that's because you are using global variables to accumulate some results, and you only want to get the final variable values, without altering the target image. Of course, this option is disabled by default. New Single Threaded Option PixelMath is a fully parallelized process. It will use all available processor cores (unless you explicitly limit parallel execution via global preferences) for maximum performance. That's great for sure, but is this what we always want to happen? The answer would invariably be yes, except for the fact that there are some important tasks that are incompatible with parallel execution. These tasks were possible with previous versions of PixelMath, but they required you to disable parallel execution through a global preferences option (or, equivalently, using the parallel command from the console). However, with this approach those PixelMath instances implementing non-parallelizable tasks depend on a particular global configuration, which is very problematic. Now you can disable parallel execution for specific PixelMath instances, which makes perfectly feasible the implementation of these tasks. A good example of non-parallelizable task is calculation of integral images. In an integral image, each pixel at coordinates {x,y} is the sum of all pixels at coordinates {0 <= i <= x, 0 <= j <= y} in the original image. New Statistical Functions The following functions are now part of the standard PixelMath set. Some of them already existed in previous versions, but their formal descriptions have changed in the new version.
PixInsight%20Cribsheet%20Rev33.docx