Detect edges (amplitude and direction) using the Kirsch operator.
kirsch_dir calculates an approximation of the first derivative of the image data and is used as an edge detector. The filter is based on the following filter masks:
-3 -3 5 -3 5 5 5 5 5 5 5 -3
-3 0 5 -3 0 5 -3 0 -3 5 0 -3
-3 -3 5 -3 -3 -3 -3 -3 -3 -3 -3 -3
5 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
5 0 -3 5 0 -3 -3 0 -3 -3 0 5
5 -3 -3 5 5 -3 5 5 5 -3 5 5
The result image contains the maximum response of all masks. The
edge directions are returned in ImageEdgeDir, and are
stored as x / 2. They correspond to the direction of
the mask yielding the maximum response.
|
Image (input_object) |
(multichannel-)image(-array) -> object : byte / int2 / uint2 |
| Input image. | |
|
ImageEdgeAmp (output_object) |
(multichannel-)image(-array) -> object : byte / int2 / uint2 |
| Edge amplitude (gradient magnitude) image. | |
|
ImageEdgeDir (output_object) |
(multichannel-)image(-array) -> object : direction |
| Edge direction image. | |
read_image(Image,'fabrik') kirsch_dir(Image,Kirsch_dirA,Kirsch_dirD) threshold(Kirsch_dirA,Res,128,255).
kirsch_dir always returns 2 (H_MSG_TRUE). If the input is empty the behaviour can be set via set_system('no_object_result',<Result>). If necessary, an exception handling is raised.
kirsch_dir is reentrant and automatically parallelized (on tuple level, channel level, domain level).
gauss_image, sigma_image, median_image, smooth_image
hysteresis_threshold, threshold, gray_skeleton, nonmax_suppression_dir, close_edges, close_edges_length
edges_image, sobel_dir, robinson_dir, prewitt_dir, frei_dir
bandpass_image, laplace_of_gauss
Foundation