You are here: Start » AVL.NET » AVL.GradientDirAndPresenceImage
Computes an image of gradient directions mapped to the range from 1 to 255. Zero means "no edge".
Namespace: | AvlNet |
---|---|
Assembly: | AVL.NET.dll |
Syntax
public static void GradientDirAndPresenceImage ( AvlNet.Image inImage, AvlNet.GradientMaskOperator inOperator, float inEdgeThreshold, AvlNet.Image outDirectionsImage )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inImage | AvlNet.Image | Input image. | |||
inOperator | AvlNet.GradientMaskOperator | Defines how the gradient is computed. | |||
inEdgeThreshold | float | <0.01f, INF> | 10.0f | Minimum edge magnitude (other pixels will be set to 0). Default value: 10.0f. | |
outDirectionsImage | AvlNet.Image |
Description
The operation computes the angle of the intensity change direction at each pixel of the inImage. Firstly the selected inOperator is used to obtain two-dimensional gradient vector at each pixel. When this vector length exceeds inEdgeThreshold the angle of the vector is calculated, scaled and stored in outDirectionsImage pixel.
This operation always generates a single-channel image with the uint8 pixel type on the output, regardless of the input image format, with following pixel values:
- When gradient length does not exceed threshold, the value of 0 is stored in pixel.
- When gradient length exceeds threshold, its angle is scaled to range 0..255 and stored in pixel value.
When a pixel value is non-zero, one can restore the original angle with the formula:
double angle = value * 360.0 / 255.0;
To measure the angular distance between two directions described by two non-zero pixel values, use the following formulas:
int valueDif = abs(inValue1 - inValue2); double angleDif = (valueDif < 128 ? (double)valueDif : (255.0 - valueDif)) * 360.0 / 255.0;
Hardware Acceleration
This operation is optimized for SSE41 technology for pixels of type: UINT8.
This operation is optimized for AVX2 technology for pixels of type: UINT8.
This operation is optimized for NEON technology for pixels of type: UINT8.
This operation supports automatic parallelization for multicore and multiprocessor systems.
Hardware acceleration settings may be manipulated with Settings class.