Herror ::highpass_image (
    Hobject Image,
    Hobject *Highpass,
    const HTuple &Width,
    const HTuple &Height
)
HImage HImage::HighpassImage (
    const HTuple &Width,
    const HTuple &Height
) const
HImageArray HImageArray::HighpassImage (
    const HTuple &Width,
    const HTuple &Height
) const

Extract high frequency components from an image.

::highpass_image extracts high frequency components in an image by applying a linear filter with the following matrix (in case of a 7x5 matrix): 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 This corresponds to applying a mean operator (::mean_image), and then subtracting the original gray value. A value of 128 is added to the result, i.e., zero crossings occur for 128.

This filter emphasizes high frequency components (edges and corners). The cutoff frequency is determined by the size (Height x Width) of the filter matrix: the larger the matrix, the smaller the cutoff frequency is.

At the image borders the pixels' gray values are mirrored. In case of over- or underflow the gray values are clipped (255 and 0, resp.).


Attention

If even values are passed for Height or Width, the operator uses the next larger odd value instead. Thus, the center of the filter mask is always uniquely determined.


Parameters

Image (input_object)
(multichannel-)image(-array) -> Hobject: HImage(Array) ( byte )
Input image.

Highpass (output_object)
(multichannel-)image(-array) -> Hobject * : HImage(Array) ( byte )
High-pass-filtered result image.

Width (input_control)
extent.x -> HTuple.long
Width of the filter mask.
Default value: 9
Suggested values: 3, 5, 7, 9, 11, 13, 17, 21, 29, 41, 51, 73, 101
Typical range of values: 3 <= Width <= 501
Minimum increment: 2
Recommended increment: 2
Restriction: (Width >= 3) && odd(Width)

Height (input_control)
extent.y -> HTuple.long
Height of the filter mask.
Default value: 9
Suggested values: 3, 5, 7, 9, 11, 13, 17, 21, 29, 41, 51, 73, 101
Typical range of values: 3 <= Height <= 501
Minimum increment: 2
Recommended increment: 2
Restriction: (Height >= 3) && odd(Height)


Example
highpass_image(Image,&Highpass,7,5);
threshold(Highpass,&Region,60.0,255.0);
skeleton(Region,&Skeleton);

Result

::highpass_image returns H_MSG_TRUE if all parameters are correct. If the input is empty the behaviour can be set via ::set_system('no_object_result',<Result>). If necessary, an exception handling is raised.


Possible Successors

::threshold, ::skeleton


Alternatives

::mean_image, ::sub_image, ::convol_image, ::bandpass_image


See also

::dyn_threshold


Module

Image filters



Copyright © 1996-2002 MVTec Software GmbH