SubtractBackground method (Main Control)

C++ Builder example

Delphi example

 

Builder Syntax

int SubtractBackground(unsigned uRollingBall, unsigned uShrinkSize, unsigned uBrightnessFactor, unsigned uFlags);

Delphi Syntax

Function SubtractBackground (uRollingBall: L_UINT; uShrinkSize: L_UINT; uBrightnessFactor: L_UINT; uFlags: L_UINT): L_INT;

Overview

Refer to Changing Brightness and Contrast

Remarks

(Raster Pro and above toolkits) Removes the background from the image.

This method is useful, especially with medical images and grayscale bitmaps in correcting non-uniform brightness.

The rolling ball algorithm works as follows:

1.

Consider the bitmap to be a 3-D surface and the z-axis to be the intensity of the image (the component V from the HSV color space).

2.

Roll a 3-D ball beneath the surface so all the points of the ball are under the surface with one or more points of the ball tangent to the surface.

3.

The tangent points to the rolling ball are considered to be the background.

Subtract the background from the original image.

The Rolling Ball Radius should be at least as large as the radius of the largest object in the image that is not part of the background to ensure the separation of the background from any objects.

A small radius allows the detection of small objects, whereas a larger radius will detect both small and large objects.

When subtracting the background, sometimes the result is dim. In such a case you can enhance the brightness after subtracting the background by using the uBrightness factor with methods similar to Multiply. Passing 100 for uBrightness leaves the brightness unchanged.

Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.

This method does not support signed data images. It returns the error code ERROR_SIGNED_DATA_NOT_SUPPORTED if a signed data image is passed to this method.

See Also

Elements:

AddShadow method, ChangeHueSatInt method, ColorReplace method, ColorThreshold method, MathFunction method, Segment method, UserFilter method.

Topics:

Raster Images: Modifying Intensity Values