#pragma once #include "data.hpp" /** * @brief Transform the input images in integrated images. * * @param X Dataset of images * @return Dataset of integrated images */ np::Array set_integral_image(const np::Array&) noexcept; /** * @brief Apply the features on a integrated image dataset. * * @param feats Features to apply * @param X_ii Integrated image dataset * @return Applied features */ np::Array apply_features(const np::Array&, const np::Array&) noexcept; /** * @brief Train the weak classifiers on a given dataset. * * @param X_feat Feature images dataset * @param X_feat_argsort Sorted indexes of the integrated features * @param y Labels of the features * @param weights Weights of the features * @return Trained weak classifiers */ np::Array train_weak_clf(const np::Array&, const np::Array&, const np::Array&, const np::Array&) noexcept; /** * @brief Perform an indirect sort on each column of a given 2D array * * @param a 2D Array to sort * @return 2D Array of indices that sort the array */ np::Array argsort_2d(const np::Array&) noexcept;