Morphological edge detector
#include "dip_morphology.h"
dip_Error dip_Lee ( in, out, se, boundary, param, shape, edgeType, flags )
integer, float
Implements a morphological edge detector based on the minimum of two complementary morphological operations. These can be chosen through the edgeType parameter.
The rectangular, elliptic and diamond structuring elements are "flat", i.e. these structuring elements have a constant value. For these structuring elements, param determines the sizes of the structuring elements.
When shape is DIP_FLT_SHAPE_DISCRETE_LINE or DIP_FLT_SHAPE_INTERPOLATED_LINE, the structuring element is a line. param->array[0] determines the length, param->array[1] the angle. This is currently only supported for 2D images. Interpolated lines use interpolation to obtain a more accurate result, but loose the strict increasingness and extensivity (these properties are satisfied only by approximation).
When shape is set to DIP_FLT_SHAPE_PARABOLIC, params specifies the curvature of the parabola.
When shape is set to DIP_FLT_SHAPE_STRUCTURING_ELEMENT, se is used as structuring element. It can be either a binary or a grey-value image. Its origin is the center, or one pixel to the left of the center if the size is even.
If shape is not equal to DIP_FLT_SHAPE_STRUCTURING_ELEMENT, se can be set to zero. When shape is set to DIP_FLT_SHAPE_STRUCTURING_ELEMENT, param is ignored, and can be set to zero.
Data type | Name | Description |
dip_Image | in | Input |
dip_Image | out | Output |
dip_Image | se | Custom structuring element |
dip_BoundaryArray | boundary | Boundary conditions |
dip_FloatArray | param | Filter parameters |
dip_FilterShape | shape | Structuring element |
dip_MphEdgeType | edgeType | Edge type |
dipf_LeeSign | flags | Lee sign flag |
The enumerator dip_FilterShape contains the following constants:
Name | Description |
DIP_FLT_SHAPE_DEFAULT | Default filter window, same as DIP_FLT_SHAPE_RECTANGULAR |
DIP_FLT_SHAPE_RECTANGULAR | Rectangular filter window, can be even in size |
DIP_FLT_SHAPE_ELLIPTIC | Elliptic filter window, always odd in size |
DIP_FLT_SHAPE_DIAMOND | Diamond-shaped filter window, always odd in size |
DIP_FLT_SHAPE_PARABOLIC | Parabolic filter window (morphology only) |
DIP_FLT_SHAPE_DISCRETE_LINE | Rotated line structuring element (morphology only) |
DIP_FLT_SHAPE_INTERPOLATED_LINE | Rotated line structuring element, through interpolation (morphology only) |
DIP_FLT_SHAPE_PERIODIC_LINE | (not implemented) |
DIP_FLT_SHAPE_STRUCTURING_ELEMENT | Use se as filter window, can be any size |
The enumerator dip_MphEdgeType contains the following constants:
Name | Description |
DIP_MPH_TEXTURE | Response is limited to edges in texture |
DIP_MPH_OBJECT | Response is limited to object edges |
DIP_MPH_BOTH | All edges produce equal response |
The enumerator dipf_LeeSign contains the following constants:
Name | Description |
DIP_LEE_UNSIGNED | Absolute edge strength |
DIP_LEE_SIGNED | Signed edge strength |
MorphologicalGradientMagnitude, MorphologicalRange, MultiScaleMorphologicalGradient, Tophat