highpass_image ( Image : Highpass : Width, Height : )

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) -> object : byte
Input image.

Highpass (output_object)
(multichannel-)image(-array) -> object : byte
High-pass-filtered result image.

Width (input_control)
extent.x -> integer
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 -> integer
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 2 (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.


Parallelization Information

highpass_image is reentrant and automatically parallelized (on tuple level, channel level, domain level).


Possible Successors

threshold, skeleton


Alternatives

mean_image, sub_image, convol_image, bandpass_image


See also

dyn_threshold


Module

Image filters



Copyright © 1996-2005 MVTec Software GmbH