Program Listing for File features_compute.h

Return to documentation for file (c/fmdt/features/features_compute.h)

#pragma once

#include "fmdt/features/features_struct.h"

RoI_basic_t* features_alloc_RoIs_basic(const size_t max_size);

void features_init_RoIs_basic(RoI_basic_t* RoIs_basic, const size_t max_size);

void features_free_RoIs_basic(RoI_basic_t* RoIs_basic);

RoI_asso_t* features_alloc_RoIs_asso(const size_t max_size);

void features_init_RoIs_asso(RoI_asso_t* RoIs_asso, const size_t max_size);

void features_free_RoIs_asso(RoI_asso_t* RoIs_asso);

RoI_motion_t* features_alloc_RoIs_motion(const size_t max_size);

void features_init_RoIs_motion(RoI_motion_t* RoIs_motion, const size_t max_size);

void features_free_RoIs_motion(RoI_motion_t* RoIs_motion);

RoI_magn_t* features_alloc_RoIs_magn(const size_t max_size);

void features_init_RoIs_magn(RoI_magn_t* RoIs_misc, const size_t max_size);

void features_free_RoIs_magn(RoI_magn_t* RoIs_misc);

RoI_elli_t* features_alloc_RoIs_elli(const size_t max_size);

void features_init_RoIs_elli(RoI_elli_t* RoIs_misc, const size_t max_size);

void features_free_RoIs_elli(RoI_elli_t* RoIs_misc);

RoIs_t* features_alloc_RoIs(const size_t max_size, const uint8_t alloc_asso, const uint8_t alloc_motion,
                            const uint8_t alloc_magn, const uint8_t alloc_elli);

void features_init_RoIs(RoIs_t* RoIs);

void features_free_RoIs(RoIs_t* RoIs);

void features_extract(const uint32_t** labels, const int i0, const int i1, const int j0, const int j1,
                      RoI_basic_t* RoIs_basic, const size_t n_RoIs);

uint32_t features_filter_surface(const uint32_t** in_labels, uint32_t** out_labels, const int i0, const int i1,
                                 const int j0, const int j1, RoI_basic_t* RoIs_basic, const size_t n_RoIs,
                                 const uint32_t S_min, const uint32_t S_max);

uint32_t features_merge_CCL_HI_v2(const uint32_t** in_labels, const uint8_t** img_HI, uint32_t** out_labels,
                                  const int i0, const int i1, const int j0, const int j1, RoI_basic_t* RoIs_basic,
                                  const size_t n_RoIs, const uint32_t S_min, const uint32_t S_max);

uint32_t features_merge_CCL_HI_v3(const uint32_t** in_labels, const uint8_t** img, uint32_t** out_labels, const int i0,
                                  const int i1, const int j0, const int j1, RoI_basic_t* RoIs_basic,
                                  const size_t n_RoIs, const uint32_t S_min, const uint32_t S_max,
                                  const uint8_t threshold_high, const uint8_t no_labels_zeros_init);

size_t features_shrink(const RoI_basic_t* RoIs_basic_src, const RoI_magn_t* RoIs_magn_src,
                       const RoI_elli_t* RoIs_elli_src, const size_t n_RoIs_src, RoI_basic_t* RoIs_basic_dst,
                       RoI_magn_t* RoIs_magn_dst, RoI_elli_t* RoIs_elli_dst);

void features_compute_magnitude(const uint8_t** img, const int i0, const int i1, const int j0, const int j1,
                                const uint32_t** labels, const RoI_basic_t* RoIs_basic, RoI_magn_t* RoIs_magn,
                                const size_t n_RoIs);

void features_compute_ellipse(const RoI_basic_t* RoIs_basic, RoI_elli_t* RoIs_elli, const size_t n_RoIs);

void features_labels_zero_init(const RoI_basic_t* RoIs_basic, const size_t n_RoIs, uint32_t** labels);