|  | URL: https://github.com/edrosten/fast-C-src | 
|  | Version: 391d5e939eb1545d24c10533d7de424db8d9c191 | 
|  | License: BSD | 
|  | License File: LICENSE | 
|  |  | 
|  | Description: | 
|  | Library to compute FAST features with non-maximum suppression. | 
|  |  | 
|  | The files are valid C and C++ code, and have no special requirements for | 
|  | compiling, and they do not depend on any libraries. Just compile them along with | 
|  | the rest of your project. | 
|  |  | 
|  | To use the functions, #include "fast.h" | 
|  |  | 
|  | The corner detectors have the following prototype (where X is 9, 10, 11 or 12): | 
|  |  | 
|  | xy* fastX_detect_nonmax(const unsigned char * data, int xsize, int ysize, int stride, int threshold, int* numcorners) | 
|  |  | 
|  | Where xy is the following simple struct typedef: | 
|  |  | 
|  | typedef struct | 
|  | { | 
|  | int x, y; | 
|  | } xy; | 
|  |  | 
|  | The image is passed in as a block of data and dimensions, and the list of | 
|  | corners is returned as an array of xy structs, and an integer (numcorners) | 
|  | with the number of corners returned.  The data can be deallocated with free(). | 
|  | Nonmaximal suppression is performed on the corners. Note that the stride | 
|  | is the number of bytes between rows. If your image has no padding, then this | 
|  | is the same as xsize. | 
|  |  | 
|  | The detection, scoring and nonmaximal suppression are available as individual | 
|  | functions.  To see how to use the individual functions, see fast.c | 
|  |  | 
|  | Local Modifications: | 
|  | Add lines to turn off clang formatting for these files | 
|  | Remove Fast 10, 11 and 12 | 
|  | Convert tabs to spaces | 
|  | Prefix global functions with "aom_" | 
|  | Add error checking | 
|  | Add output argument to hold the scores of the detected features | 
|  | Add assertion and rewrite comparisons to appease the scan-build static analyzer | 
|  | Set output argument *ret_num_corners to -1 to signal memory allocation failure |