9#include <opencv2/opencv.hpp>
28 Histogram(
int width,
int height,
int x_limit,
int id, std::vector<double>& x_values, std::vector<float>& y_values);
39 static void OnMouse(
int event,
int x,
int y,
int flags,
void* userdata);
43 void DetectEvent(
int event,
int x,
int y,
int flags);
Класс для создания объектов-гистограмм, на которые можно выводить различную информацию
std::vector< float > * y_values_
Значения гистограммы по оси Y.
Mat histogram_background_
cv::Mat фон для гистограммы
static void OnMouse(int event, int x, int y, int flags, void *userdata)
callback функция для определения события (используется для хэндлинга клика мышью)
float dead_zone_coeff_
Процент диапазона, который будет нижней мертвой зоной: 1.0 - 100%.
int histogram_frame_width_
Ширина окна гистограммы (включая оффсет)
int histogram_frame_height_
Высота окна гистограммы (включая оффсет)
std::vector< double > * x_values_
Значения гистограммы по оси X.
Point2i last_mouse_coordinates_
Координаты мыши (курсора)
bool IsInteracted(int x, int interval)
Проверяет, соответствует ли точка координате мыши
std::string winname_
Название окна
void PlotMouseValue(Mat &frame, int value_idx)
Выводит значение частоты рядом с курсором
float histogram_offset_
Оффсет рамки гистограммы
void ShowHistogram()
Выводит гистограмму в окно гистограммы
Mat histogram_
cv::Mat изображение гистограммы
void SetHistogramWindowProperty(int prop_id, int prop_value)
Обновляет статус окна гистограммы (например, для вывода на передний план)
Mat CalcHistogram()
Вычисляет значения для гистограммы
std::string to_string_with_precision(const float value, const int n=6)
Для ограничения кол-ва знаков
void SetYValues(std::vector< float > y_values)
Устанавливает Y-ы
float signature_interval_
Интервал для делений оси и количество этих делений
void SetXValues(std::vector< double > x_values)
Устанавливает X-ы
void DetectEvent(int event, int x, int y, int flags)
callback функция для определения события (используется для хэндлинга клика мышью)
void SetHistogramFlag(bool flag)
Устанавливает статус флага отрисовки гистограммы
~Histogram()
Деструктор этого класса
int signature_amount_
Количество подписей на оси
bool is_histogram_plotted_
Флаг для отрисовки гистограммы
int x_limit_
Максимальное (предельное) значение по оси X.
float axis_signature_offset_
Отступ для подписей оси
void InitHistogramBackground()
Подгатавливаем Histogram::histogram_background_ для дальнейшего использования