Visual Vibration Tracking 0.2
Загрузка...
Поиск...
Не найдено
histogram.h
1#ifndef HISTOGRAM_H
2#define HISTOGRAM_H
3
4// standart headers
5#include <iostream>
6//#include <sstream>
7
8// OpenCV headers
9#include <opencv2/opencv.hpp>
10
11using namespace cv;
12
17{
18public:
28 Histogram(int width, int height, int x_limit, int id, std::vector<double>& x_values, std::vector<float>& y_values);
34 ~Histogram();
35
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);
47 void ShowHistogram();
51 void SetXValues(std::vector<double> x_values);
55 void SetYValues(std::vector<float> y_values);
59 void SetHistogramFlag(bool flag);
65 void SetHistogramWindowProperty(int prop_id, int prop_value);
66
67private:
75 Mat CalcHistogram();
79 bool IsInteracted(int x, int interval);
83 void PlotMouseValue(Mat& frame, int value_idx);
87 std::string to_string_with_precision(const float value, const int n = 6);
88
89protected:
94
95private:
99 std::string winname_;
123 std::vector<double>* x_values_;
127 std::vector<float>* y_values_;
152
153};
154
155#endif
Класс для создания объектов-гистограмм, на которые можно выводить различную информацию
Definition: histogram.h:17
std::vector< float > * y_values_
Значения гистограммы по оси Y.
Definition: histogram.h:127
Mat histogram_background_
cv::Mat фон для гистограммы
Definition: histogram.h:119
static void OnMouse(int event, int x, int y, int flags, void *userdata)
callback функция для определения события (используется для хэндлинга клика мышью)
Definition: histogram.cpp:29
float dead_zone_coeff_
Процент диапазона, который будет нижней мертвой зоной: 1.0 - 100%.
Definition: histogram.h:151
int histogram_frame_width_
Ширина окна гистограммы (включая оффсет)
Definition: histogram.h:107
int histogram_frame_height_
Высота окна гистограммы (включая оффсет)
Definition: histogram.h:111
std::vector< double > * x_values_
Значения гистограммы по оси X.
Definition: histogram.h:123
Point2i last_mouse_coordinates_
Координаты мыши (курсора)
Definition: histogram.h:147
bool IsInteracted(int x, int interval)
Проверяет, соответствует ли точка координате мыши
Definition: histogram.cpp:152
std::string winname_
Название окна
Definition: histogram.h:99
void PlotMouseValue(Mat &frame, int value_idx)
Выводит значение частоты рядом с курсором
Definition: histogram.cpp:162
float histogram_offset_
Оффсет рамки гистограммы
Definition: histogram.h:103
void ShowHistogram()
Выводит гистограмму в окно гистограммы
Definition: histogram.cpp:54
Mat histogram_
cv::Mat изображение гистограммы
Definition: histogram.h:115
void SetHistogramWindowProperty(int prop_id, int prop_value)
Обновляет статус окна гистограммы (например, для вывода на передний план)
Definition: histogram.cpp:80
Mat CalcHistogram()
Вычисляет значения для гистограммы
Definition: histogram.cpp:116
std::string to_string_with_precision(const float value, const int n=6)
Для ограничения кол-ва знаков
Definition: histogram.cpp:174
void SetYValues(std::vector< float > y_values)
Устанавливает Y-ы
Definition: histogram.cpp:69
float signature_interval_
Интервал для делений оси и количество этих делений
Definition: histogram.h:135
void SetXValues(std::vector< double > x_values)
Устанавливает X-ы
Definition: histogram.cpp:64
void DetectEvent(int event, int x, int y, int flags)
callback функция для определения события (используется для хэндлинга клика мышью)
Definition: histogram.cpp:35
void SetHistogramFlag(bool flag)
Устанавливает статус флага отрисовки гистограммы
Definition: histogram.cpp:74
~Histogram()
Деструктор этого класса
Definition: histogram.cpp:23
int signature_amount_
Количество подписей на оси
Definition: histogram.h:139
bool is_histogram_plotted_
Флаг для отрисовки гистограммы
Definition: histogram.h:93
int x_limit_
Максимальное (предельное) значение по оси X.
Definition: histogram.h:143
float axis_signature_offset_
Отступ для подписей оси
Definition: histogram.h:131
void InitHistogramBackground()
Подгатавливаем Histogram::histogram_background_ для дальнейшего использования
Definition: histogram.cpp:85