1*77c1e3ccSAndroid Build Coastguard WorkerURL: https://github.com/edrosten/fast-C-src 2*77c1e3ccSAndroid Build Coastguard WorkerVersion: 391d5e939eb1545d24c10533d7de424db8d9c191 3*77c1e3ccSAndroid Build Coastguard WorkerLicense: BSD 4*77c1e3ccSAndroid Build Coastguard WorkerLicense File: LICENSE 5*77c1e3ccSAndroid Build Coastguard Worker 6*77c1e3ccSAndroid Build Coastguard WorkerDescription: 7*77c1e3ccSAndroid Build Coastguard WorkerLibrary to compute FAST features with non-maximum suppression. 8*77c1e3ccSAndroid Build Coastguard Worker 9*77c1e3ccSAndroid Build Coastguard WorkerThe files are valid C and C++ code, and have no special requirements for 10*77c1e3ccSAndroid Build Coastguard Workercompiling, and they do not depend on any libraries. Just compile them along with 11*77c1e3ccSAndroid Build Coastguard Workerthe rest of your project. 12*77c1e3ccSAndroid Build Coastguard Worker 13*77c1e3ccSAndroid Build Coastguard WorkerTo use the functions, #include "fast.h" 14*77c1e3ccSAndroid Build Coastguard Worker 15*77c1e3ccSAndroid Build Coastguard WorkerThe corner detectors have the following prototype (where X is 9, 10, 11 or 12): 16*77c1e3ccSAndroid Build Coastguard Worker 17*77c1e3ccSAndroid Build Coastguard Workerxy* fastX_detect_nonmax(const unsigned char * data, int xsize, int ysize, int stride, int threshold, int* numcorners) 18*77c1e3ccSAndroid Build Coastguard Worker 19*77c1e3ccSAndroid Build Coastguard WorkerWhere xy is the following simple struct typedef: 20*77c1e3ccSAndroid Build Coastguard Worker 21*77c1e3ccSAndroid Build Coastguard Workertypedef struct 22*77c1e3ccSAndroid Build Coastguard Worker{ 23*77c1e3ccSAndroid Build Coastguard Worker int x, y; 24*77c1e3ccSAndroid Build Coastguard Worker} xy; 25*77c1e3ccSAndroid Build Coastguard Worker 26*77c1e3ccSAndroid Build Coastguard WorkerThe image is passed in as a block of data and dimensions, and the list of 27*77c1e3ccSAndroid Build Coastguard Workercorners is returned as an array of xy structs, and an integer (numcorners) 28*77c1e3ccSAndroid Build Coastguard Workerwith the number of corners returned. The data can be deallocated with free(). 29*77c1e3ccSAndroid Build Coastguard WorkerNonmaximal suppression is performed on the corners. Note that the stride 30*77c1e3ccSAndroid Build Coastguard Workeris the number of bytes between rows. If your image has no padding, then this 31*77c1e3ccSAndroid Build Coastguard Workeris the same as xsize. 32*77c1e3ccSAndroid Build Coastguard Worker 33*77c1e3ccSAndroid Build Coastguard WorkerThe detection, scoring and nonmaximal suppression are available as individual 34*77c1e3ccSAndroid Build Coastguard Workerfunctions. To see how to use the individual functions, see fast.c 35*77c1e3ccSAndroid Build Coastguard Worker 36*77c1e3ccSAndroid Build Coastguard WorkerLocal Modifications: 37*77c1e3ccSAndroid Build Coastguard WorkerAdd lines to turn off clang formatting for these files 38*77c1e3ccSAndroid Build Coastguard WorkerRemove Fast 10, 11 and 12 39*77c1e3ccSAndroid Build Coastguard WorkerConvert tabs to spaces 40*77c1e3ccSAndroid Build Coastguard WorkerPrefix global functions with "aom_" 41*77c1e3ccSAndroid Build Coastguard WorkerAdd error checking 42*77c1e3ccSAndroid Build Coastguard WorkerAdd output argument to hold the scores of the detected features 43*77c1e3ccSAndroid Build Coastguard WorkerAdd assertion and rewrite comparisons to appease the scan-build static analyzer 44*77c1e3ccSAndroid Build Coastguard WorkerSet output argument *ret_num_corners to -1 to signal memory allocation failure 45