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) -> Hobject: HImage(Array) ( byte ) |
| Input image. | |
|
ImageEdgeAmp (output_object) |
(multichannel-)image(-array) -> Hobject * : HImage(Array) ( byte ) |
| Edge amplitude (gradient magnitude) image. | |
|
ImageEdgeDir (output_object) |
(multichannel-)image(-array) -> Hobject * : HImage(Array) ( 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 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.
::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
Image filters