Pixopedia_24 Tutorial   Histogram & Stretching
  Index page      
  Previous page

Histogram & Stretching functions are methods for histogram manipulation and various contrast stretching intensity transformations.

  Next page
   
   


Histogram & Stretching

Histogram represents population of pixels regarding on channels or luminance value. In short terms, histogram represents how pixels of some image are distributed regarding on intensity [0,255] through RGB channels and through luminance. Grafically, Y coordinate represents number of pixels, while X coordinate represents values from 0 to 255.

You can zoom-in histogram by drawing some rectangle on histogram panel, but rectangle must be drawn in top-down direction. Drawing the rectangle in bottom-up direction preforms zoom reset (1:1).

By default, Predefined button is down and listbox with predefined histogram and stretching functions are shown. You can select methods from available elements in list. To change histogram values you can use one of three available equalization actions. Equalization is process of flattening histogram values, in order to remove peak values and to populate areas with less pixels number.

Equalize luminance
This action equalize histogram of an image by using same value for all channels (luminance). The resultant image has smoother histogram, i.e. contrast of image is reduced.

Equalize channels
This action equalize histogram of an image by using separated channels values. The resultant image has smoother channels histogram

Equalize average
This action is similar to luminance equalization, but instead of luminance, all channels are averaged.

Contrast stretching actions do not use histogram values, but perform intensity transformations. Intensity values from image are transformed to new values according to some function. Function values are stored in so called LUT (lookup table). Pixopedia 24 offers some predefined methods and also possibility to create user defined LUTs. Here are some predefined LUT's:

Low+
This action applies color stretching method by smoothly increasing the value of "low" pixels through quadratic intensity transformation function.

High+
This action applies color stretching method by smoothly increasing the value of "high" pixels throught quadratic intensity transformation function.

Logarithm
This action applies color stretching method through logarithmic intensity transformation.

 


Low+ High-
This action applies color stretching method by smoothly increasing the value of "low" pixels while in the same time decreases the value of "high" pixels through quadratic intensity transformation function.

Low- High+
This action applies color stretching method by smoothly increasing the value of "high" pixels while in the same time decreases the value of "low" pixels through quadratic intensity transformation function.

Stretch middle
This action applies color stretching method by smoothly increasing the value of "middle" pixels while in the same time decreases the value of "low" and "high" pixels through quadratic intensity transformation function.

Stretch lo/hi
This action applies color stretching method by smoothly increasing the value of "low" and "high" pixels while in the same time decreases the value of "middle" pixels through quadratic intensity transformation function.

Group colors
This action applies color stretching method by grouping colors in intervals. Resultant image has reduced number of colors. Grouping color interval can be specified by edit field and its associated spinner button on the right side of this panel. This method is very useful for image color reduction by means of grouping pixels with nearest intensity together.

User defined
By pressing this button a listbox with user defined LUT methods replaces predefined methods listbox. If you doble-click on the same button a new form will pop up. Here you can specify your own intensity transformation. There are some examples of user defined LUTs as well. Drawing is performed by right mouse button, because left mouse button is reserved for zooming. Also, buttons on the bottom of the form are used for clearing LUT, setting to default or inverting the intensity transformation. Note: applying default LUT produces no effect on image, because one intensity is mapped to the same intensity.
When LUT is constructed, you can save it by pressing Save button: a pop-up menu appears. There you can specify name and filename of your LUT. After saving particular LUT it will be visible in the list on the right side of the form.

As you will notice, X coordinate represents old intensity values, while Y coordinate represents new intensity values.

Applying Histogram & Stretching

If you want to apply HAS on whole image, after choosing apropriate action, simply press Image button. HAS will be applied to whole image.

You can apply HAS through brush movement, contour and mask as well. For shape selection and brush movement refer to Shapes and Brushes section.

NOTE:
Resultant image is affected by all previously set
Global parameters.

NOTE:
Histogram & Stretching actions are extremely fast when program runs on Intel Pentium processor family, especially on MMX processors.