Developer Reference for Intel® Integrated Performance Primitives 2019
Detects corners in an image using the FastN algorithm.
IppStatus ippiFastN_8u_C1R(const Ipp8u* pSrc, int srcStep, Ipp8u* pDstCorner, int dstCornerStep, Ipp8u* pDstScore, int dstScoreStep, int* pNumCorner, IppiPoint srcRoiOffset, IppiSize dstRoiSize, IppiFastNSpec* pSpec, Ipp8u* pBuffer);
ippcv.h
Headers: ippcore.h, ippvm.h, ipps.h, ippi.h
Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib
Pointer to the source image.
Distance, in bytes, between the starting points of consecutive lines in the source image.
Pointer to the destination image with corners.
Distance, in bytes, between the starting points of consecutive lines in the destination image with corners.
Pointer to the destination image with scores.
Distance, in bytes, between the starting points of consecutive lines in the destination image with scores.
Pointer to the calculated number of corners.
Offset in the source image.
Size of the destination ROI, in pixels.
Pointer to the specification structure.
Pointer to the work buffer.
The ippiFastN function implements the FastN corner detection algorithm. This function detects corners in the source image, calculates orientation and score of corners.
The figures below show pixels location for different radius values.
Radius = 1
Radius = 2
Radius = 3
Radius = 5
Radius = 7
Radius = 9
The function defines a pixel as a corner if the value of N consecutive pixels located on the circle with the center at the current pixel is greater (less) than the value of the current - central pixel. Differences between the values of pixels on the circle and the central pixel value must be greater than the threshold value. In this case, the corresponding pixel of the pDstCorner image is set to the following values in binary format:
If greater - 01xxxxxx
If less - 10xxxxxx
If the IPP_FASTN_ORIENTATION mode is not set, xxxxxx = 000000, otherwise, xxxxxx = the number of sector (bin) to which the corner directs. The orientationBin parameter defines the number of sectors that is computed from the bottom clockwise. If the source pixel is not a corner, the corresponding pixel of pDstCorner is set to zero.
If the IPP_FASTN_SCORE_MODE0 mode is set, the corresponding pixel of pDstCorner is set to the corner score. Score is a maximum among minimal differences with threshold calculated for every N consecutive pixels. If the source pixel is not a corner, the corresponding pixel of pDstScore is set to zero.
If the IPP_FASTN_NMS mode is set, the corners that have a corner with the greater score among neighboring pixels are cancelled.
pSrc, pDstCorner, pNumCorner, pSpec, or pBuffer is NULL
pDstScore is NULL if option is not equal to IPP_FASTN_SCORE_MODE0