Histogram stretching employs a simple linear mapping. Stretching can bring out some detail but preserves the relative brightness of the data. Histogram stretching is described in detail in texts on image processing.
If a mask is present with the input object, data points that are masked off are ignored in the histogramming. The mask is propagated to the output object.
If a map is present with the input object, all data will be pulled through the mask before histogramming. The output object will have no map.
For signed data types, the output will span the whole range of the data type, just as for the unsigned data types. Note that for signed types, this will include the negative part of the range. If this behavior is not desired, the data should be converted to unsigned prior to the application of the histogram stretching.
The data types that can be handled are currently limited to signed and unsigned byte, and signed and unsigned short integer. The number of bits in a data point is further limited by the internal algorithms to be at most 16, signed or unsigned. If an otherwise acceptable data type is found that exceeds 16 bits (say a 32 bit short) then an error message will be printed. Resolution of this problem is architecture dependent.
The histogram stretching can be performed in units of data that can span any of the polymorphic data model dimensions. By default, the unit is composed of 2D planes across width and height (i.e. a normal "image"). It is possible to select processing in volumes, sequences, slices, rows, columns or the whole 5D data set if that is desired. Each unit is histogrammed independently of the others.
This operator supports processing of large data sets via data services. Data access speed is a function of the processing unit dimensions, so significant processing time variance can be observed for varying unit geometries even though the total number of points processed is the same.
Executing Stretch Histogram runs the program khistops with the -stretch flag.
Mutually Exclusive Group; if desired, specify ONE of:
OR
AT LEAST ONE OF the Group:
AND/OR
AND/OR
AND/OR
AND/OR
Only KBYTE, KUBYTE, KSHORT, and KUSHORT data is supported, and only then if they are 16 bits or less in length.