Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
fast_rosten.c File Reference
#include <stdlib.h>
#include "fast_rosten.h"
+ Include dependency graph for fast_rosten.c:

Go to the source code of this file.

Functions

static void fast_make_offsets (int32_t *pixel, uint16_t row_stride, uint8_t pixel_size)
 Make offsets for FAST9 calculation. More...
 
void fast9_detect (struct image_t *img, uint8_t threshold, uint16_t min_dist, uint16_t x_padding, uint16_t y_padding, uint16_t *num_corners, uint16_t *ret_corners_length, struct point_t **ret_corners, uint16_t *roi)
 Do a FAST9 corner detection. More...
 
int fast9_detect_pixel (struct image_t *img, uint8_t threshold, uint16_t x, uint16_t y)
 Do a FAST9 corner detection for a single pixel. More...
 

Function Documentation

◆ fast9_detect()

void fast9_detect ( struct image_t img,
uint8_t  threshold,
uint16_t  min_dist,
uint16_t  x_padding,
uint16_t  y_padding,
uint16_t num_corners,
uint16_t ret_corners_length,
struct point_t **  ret_corners,
uint16_t roi 
)

Do a FAST9 corner detection.

The array *ret_corners can be reallocated in this function every time it becomes too full, *ret_corners_length is updated appropriately.

Parameters
[in]*imgThe image to do the corner detection on
[in]thresholdThe threshold which we use for FAST9
[in]min_distThe minimum distance in pixels between detections
[in]x_paddingThe padding in the x direction to not scan for corners
[in]y_paddingThe padding in the y direction to not scan for corners
[in]*num_cornersreference to the amount of corners found, set by this function
[in]*ret_corners_lengththe length of the array *ret_corners.
[in]**ret_cornerspointer to the array which contains the corners that were detected.
[in]*roiarray of format [x0 y0 x1 y1] describing the region of interest in the image where the corners will be detected. If null, the whole image is used.

Definition at line 52 of file fast_rosten.c.

References image_t::buf, fast_make_offsets(), image_t::h, IMAGE_YUV422, p, image_t::type, and image_t::w.

Referenced by calc_fast9_lukas_kanade(), and manage_flow_features().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fast9_detect_pixel()

int fast9_detect_pixel ( struct image_t img,
uint8_t  threshold,
uint16_t  x,
uint16_t  y 
)

Do a FAST9 corner detection for a single pixel.

Returns 0 when not a corner, and 1 when a corner.

Parameters
[in]*imgThe image to do the corner detection on
[in]thresholdThe threshold which we use for FAST9
[in]x,thex-coordinate of the pixel
[in]y,they-coordinate of the pixel

Definition at line 3709 of file fast_rosten.c.

References image_t::buf, fast_make_offsets(), image_t::h, IMAGE_YUV422, p, image_t::type, and image_t::w.

Referenced by act_fast().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fast_make_offsets()

static void fast_make_offsets ( int32_t pixel,
uint16_t  row_stride,
uint8_t  pixel_size 
)
static

Make offsets for FAST9 calculation.

Parameters
[out]*pixelThe offset array of the different pixels
[in]row_strideThe row stride in the image

Definition at line 3681 of file fast_rosten.c.

Referenced by fast9_detect(), and fast9_detect_pixel().

+ Here is the caller graph for this function: