Paparazzi UAS
v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
|
Takes an image and represents the texture and colors in the image with a texton histogram. More...
#include <stdlib.h>
#include <stdio.h>
#include "modules/computer_vision/cv.h"
#include "modules/computer_vision/textons.h"
Go to the source code of this file.
Macros | |
#define | TEXTONS_LOAD_DICTIONARY 1 |
#define | TEXTONS_ALPHA 10 |
#define | TEXTONS_N_TEXTONS 20 |
#define | TEXTONS_N_SAMPLES 100 |
#define | TEXTONS_PATCH_SIZE 6 |
#define | TEXTONS_N_LEARNING_SAMPLES 10000 |
#define | TEXTONS_FULL_SAMPLING 0 |
#define | TEXTONS_BORDER_WIDTH 0 |
#define | TEXTONS_BORDER_HEIGHT 0 |
#define | TEXTONS_DICTIONARY_NUMBER 0 |
#define | DICTIONARY_PATH /data/video/ |
Functions | |
struct image_t * | texton_func (struct image_t *img) |
Main texton processing function that first either loads or learns a dictionary and then extracts the texton histogram. More... | |
void | DictionaryTrainingYUV (uint8_t *frame, uint16_t width, uint16_t height) |
Function that performs one pass for dictionary training. More... | |
void | DistributionExtraction (uint8_t *frame, uint16_t width, uint16_t height) |
Function that extracts a texton histogram from an image. More... | |
void | save_texton_dictionary (void) |
Save the texton dictionary. More... | |
void | load_texton_dictionary (void) |
Load a texton dictionary. More... | |
void | textons_init (void) |
Initialize. More... | |
void | textons_stop (void) |
Takes an image and represents the texture and colors in the image with a texton histogram.
A texton is a cluster centroid in a space populated by image patches. First, this code learns or loads a texton dictionary. Then, for each incoming image, patches are sampled from the image, compared to textons in the dictionary, and the closest texton is identified, augmenting the corresponding bin in the texton histogram.
Definition in file textons.c.
#define DICTIONARY_PATH /data/video/ |
Definition at line 112 of file textons.c.
Referenced by load_texton_dictionary(), and save_texton_dictionary().
Function that performs one pass for dictionary training.
It extracts samples from an image, finds the closest texton and moves it towards the sample.
[in] | frame* | The YUV image data |
[in] | width | The width of the image |
[in] | height | The height of the image |
Definition at line 166 of file textons.c.
References alpha_uint, image_t::buf, dictionary, dictionary_initialized, learned_samples, n_samples_image, n_textons, patch_size, s, and image_t::w.
Referenced by texton_func().
Function that extracts a texton histogram from an image.
[in] | frame* | The YUV image data |
[in] | width | The width of the image |
[in] | height | The height of the image |
Definition at line 311 of file textons.c.
References border_height, border_width, image_t::buf, dictionary, FULL_SAMPLING, n_samples_image, n_textons, patch_size, and texton_distribution.
Referenced by texton_func().
void load_texton_dictionary | ( | void | ) |
Load a texton dictionary.
Definition at line 471 of file textons.c.
References dictionary, dictionary_initialized, dictionary_logger, dictionary_number, DICTIONARY_PATH, EOF, learned_samples, load_dictionary, n_textons, and patch_size.
Referenced by texton_func().
void save_texton_dictionary | ( | void | ) |
Save the texton dictionary.
Definition at line 441 of file textons.c.
References dictionary, dictionary_logger, dictionary_number, DICTIONARY_PATH, n_textons, and patch_size.
Referenced by texton_func().
Main texton processing function that first either loads or learns a dictionary and then extracts the texton histogram.
[out] | *img | The output image |
[in] | *img | The input image (YUV422) |
Definition at line 121 of file textons.c.
References image_t::buf, image_t::buf_size, DictionaryTrainingYUV(), DistributionExtraction(), image_t::h, learned_samples, load_dictionary, load_texton_dictionary(), n_learning_samples, patch_size, save_texton_dictionary(), and image_t::w.
Referenced by textons_init().
void textons_init | ( | void | ) |
Initialize.
Definition at line 501 of file textons.c.
References dictionary, dictionary_initialized, learned_samples, n_textons, patch_size, texton_distribution, texton_func(), and image_t::w.
void textons_stop | ( | void | ) |
Definition at line 522 of file textons.c.
References dictionary, and texton_distribution.
float alpha = 0.0 |
Definition at line 107 of file textons.c.
Referenced by ahrs_fc_propagate(), ahrs_mlkf_update_accel(), baro_cb(), compute_1e_filter_lp(), compute_ground_speed(), gvf_ellipse_info(), gvf_ellipse_XY(), gvf_line_info(), gvf_line_XY1_XY2(), gvf_segment_loop_XY1_XY2(), gvf_sin_info(), gvf_sin_wp1_wp2(), gvf_sin_XY_alpha(), indi_apply_compensator_filters(), ins_float_invariant_update_baro(), mtostk_apply_polynomial_temp(), nav_cube_setup(), out_of_segment_area(), propagate_ref(), snav_init(), and wls_alloc().
uint8_t alpha_uint = TEXTONS_ALPHA |
Definition at line 95 of file textons.c.
Referenced by DictionaryTrainingYUV().
uint32_t border_height = TEXTONS_BORDER_HEIGHT |
Definition at line 102 of file textons.c.
Referenced by DistributionExtraction().
uint32_t border_width = TEXTONS_BORDER_WIDTH |
Definition at line 101 of file textons.c.
Referenced by DistributionExtraction().
float** ** dictionary |
Definition at line 37 of file textons.c.
Referenced by DictionaryTrainingYUV(), DistributionExtraction(), load_texton_dictionary(), save_texton_dictionary(), textons_init(), and textons_stop().
uint8_t dictionary_initialized = 0 |
Definition at line 39 of file textons.c.
Referenced by DictionaryTrainingYUV(), load_texton_dictionary(), and textons_init().
|
static |
Definition at line 110 of file textons.c.
Referenced by load_texton_dictionary(), and save_texton_dictionary().
uint8_t dictionary_number = TEXTONS_DICTIONARY_NUMBER |
Definition at line 103 of file textons.c.
Referenced by load_texton_dictionary(), and save_texton_dictionary().
uint8_t FULL_SAMPLING = TEXTONS_FULL_SAMPLING |
Definition at line 100 of file textons.c.
Referenced by DistributionExtraction().
uint32_t learned_samples = 0 |
Definition at line 38 of file textons.c.
Referenced by DictionaryTrainingYUV(), load_texton_dictionary(), texton_func(), and textons_init().
uint8_t load_dictionary = TEXTONS_LOAD_DICTIONARY |
Definition at line 94 of file textons.c.
Referenced by load_texton_dictionary(), and texton_func().
uint32_t n_learning_samples = TEXTONS_N_LEARNING_SAMPLES |
Definition at line 98 of file textons.c.
Referenced by texton_func().
uint32_t n_samples_image = TEXTONS_N_SAMPLES |
Definition at line 99 of file textons.c.
Referenced by DictionaryTrainingYUV(), and DistributionExtraction().
uint8_t n_textons = TEXTONS_N_TEXTONS |
Definition at line 96 of file textons.c.
Referenced by DictionaryTrainingYUV(), DistributionExtraction(), load_texton_dictionary(), save_texton_dictionary(), and textons_init().
uint8_t patch_size = TEXTONS_PATCH_SIZE |
Definition at line 97 of file textons.c.
Referenced by DictionaryTrainingYUV(), DistributionExtraction(), load_texton_dictionary(), opticFlowLK(), opticFlowLK_flat(), save_texton_dictionary(), texton_func(), and textons_init().
float* texton_distribution |
Definition at line 40 of file textons.c.
Referenced by DistributionExtraction(), textons_init(), and textons_stop().