Smooth an image in the spatial domain to suppress noise.
eliminate_min_max smooths an image by replacing gray values with neighboring mean values, or local minima/maxima. In order to prevent edges and lines from being smoothed, only those gray values that represent local minima or maxima are replaced (if there is a line or edge within an image there will be at least one neighboring pixel with a comparable gray value). Gap controls the strictness of replacment: Only gray values that exceed all other values within their local neighborhood more than Gap and all values that fall below their neighboring more than Gap are replaced: E(x,y) represents a NxM sized rectangular neighborhood of an pixel at position (x,y), containing all pixels within the neighborhood except the pixel itself;
if gray_value(x,y) >= Gap + maximum(E(x,y)) then replacement;
else if gray_value(x,y) + Gap <= minimum(E(x,y)) then replacement;
else adopt gray_value(x,y) without change;
Mode specifies how to perform the new value in case of a
replacement.
Mode = 1 --> replace a local maximum with next minor local
maximum and replace a local minimum with next
bigger local minimum
Mode = 2 --> replace with mean value of all pixels within the
local neighborhood (including the replaced pixel)
Mode = 3 --> replace with median value of all pixels within the
local neighborhood (including the replaced pixel
(this is default and used if Mode has got
any other value than 1 or 2)
MaskWidth and MaskHeight specifiy the width and height of the
rectangular neighborhood.
Border treatment: Pixels outside the image border are not considered (e.g.:
With a local 3x3-mask the neighborhood of a pixel at (0,0)
reduces to the pixels at (1,0),(0,1) and
(1,1)).
eliminate_min_max only can work on byte images (HALCON image type BYTE_IMAGE). If MaskWidth or MaskHeight is an even number, it is replaced by the next higher odd number (this allows the unique extraction of the center of the filter mask). Width/height of the mask may not exceed the image width/height.
|
Image (input_object) |
(multichannel-)image -> object : byte / uint2 |
| Image to smooth. | |
|
FilteredImage (output_object) |
(multichannel-)image -> object : byte / uint2 |
| Smoothed image. | |
|
MaskWidth (input_control) |
extent.x -> integer |
| Width of filter mask. | |
| Default value: 3 | |
| Suggested values: 3, 5, 7, 9 | |
| Typical range of values: 3 <= MaskWidth <= width(Image) | |
| Minimum increment: 2 | |
|
Recommended increment: 2 | |
| Restriction: odd(MaskWidth) | |
|
MaskHeight (input_control) |
extent.y -> integer |
| Height of filter mask. | |
| Default value: 3 | |
| Suggested values: 3, 5, 7, 9 | |
| Typical range of values: 3 <= MaskHeight <= width(Image) | |
| Minimum increment: 2 | |
|
Recommended increment: 2 | |
| Restriction: odd(MaskWidth) | |
|
Gap (input_control) |
number -> real |
| Gap between local maximum/minimum and all other gray values of the neighborhood. | |
| Default value: 1.0 | |
| Suggested values: 1.0, 2.0, 5.0, 10.0 | |
|
Mode (input_control) |
integer -> integer |
| Replacement rule (1 = next minimum/maximum, 2 = average, 3 =median). | |
| Default value: 3 | |
| List of values: 1, 2, 3 | |
eliminate_min_max returns 2 (H_MSG_TRUE) if all parameters are correct. If the input is empty eliminate_min_max returns with an error message.
eliminate_min_max is reentrant and automatically parallelized (on tuple level, channel level, domain level).
wiener_filter, wiener_filter_ni
mean_sp, mean_image, median_image, median_weighted, gauss_image, smooth_image
M. Imme:``A Noise Peak Elimination Filter''; S. 204-211 in CVGIP Graphical Models and Image Processing, Vol. 53, No. 2, March 1991
M. Lückenhaus:``Grundlagen des Wiener-Filters und seine Anwendung in der Bildanalyse''; Diplomarbeit; Technische Universität München, Institut für Informatik; Lehrstuhl Prof. Radig; 1995.
Foundation