Visual Vibration Tracking 0.2
Загрузка...
Поиск...
Не найдено
main_menu.h
1#ifndef MAIN_MENU_H
2#define MAIN_MENU_H
3
4#define MAIN_MENU_WINDOW_NAME "Main menu"
5
6// standart headers
7#include <iostream>
8#include <fstream>
9
10// OpenCV headers
11#include <opencv2/opencv.hpp>
12#include <opencv2/core.hpp>
13
14// my headers
15#include "VVT-V2\vibration_detector.h"
16#include "CamCalib\video_undistorter.h"
17#include "CamCalib\camera_calibrator.h"
18#include "MovEn/movement_enlargement.h"
19
20using namespace cv;
21
26{
30 enum MODE
31 {
32 CALIBRATION,
33 UNDISTORTION,
34 VIBRATION_MONITORING,
35 MOVEMENT_ENLARGEMENT
36 };
37
38public:
43 MainMenu(std::string txt_file_name);
44
45private:
49 void LoadPaths();
54 void ExecuteCameraCalibration(std::string chessboards_path);
60 void ExecuteVideoUndistortion(std::string input_file_name, std::string output_file_name);
66 void ExecuteVibrationMonitoring(std::string input_file_name, std::string output_file_name);
72 void ExecuteMotionMagnification(std::string input_file_name, std::string output_file_name);
76 void CreateMenu();
84 static void OnMouse(int event, int x, int y, int flags, void* userdata);
88 void DetectEvent(int event, int x, int y, int flags);
92 void Idle();
93
94private:
98 std::string params_file_name_;
102 std::string winname_;
106 Mat menu_;
110 std::vector<Rect> buttons_;
114 std::string button_text_[4];
154 int font;
167
175 std::vector<Scalar> buttons_color_;
184
185private:
209 std::string chessboards_path_;
218
219};
220
221#endif
Класс для создания начального меню выбора режима работы программы
Definition: main_menu.h:26
void ExecuteCameraCalibration(std::string chessboards_path)
Запускает калибровку камеры по картинкам шахматных досок
Definition: main_menu.cpp:59
std::string input_vibration_detection_
Имя (путь) входного файла (видео) для детекции вибрации
Definition: main_menu.h:201
int button_height_
Высота кнопки
Definition: main_menu.h:134
int font
Шрифт
Definition: main_menu.h:154
Mat menu_
Изображение меню, на котором будет происходить отрисовка
Definition: main_menu.h:106
int thickness
Толщина шрифта
Definition: main_menu.h:162
std::string output_movement_enlargement_
Имя (путь) выходного файла (видео) для усиления движения
Definition: main_menu.h:217
double font_scale
Величина шрифта
Definition: main_menu.h:158
std::string params_file_name_
Путь файла с параметрами
Definition: main_menu.h:98
void ExecuteVideoUndistortion(std::string input_file_name, std::string output_file_name)
Запускает удаление дисторсии
Definition: main_menu.cpp:65
int button_spacing_
Отступ между кнопками
Definition: main_menu.h:138
Point2i last_mouse_position_
Последние найденные в callback координаты курсора
Definition: main_menu.h:171
std::string input_distorted_video_
Имя (путь) входного файла (видео) для удаления дисторсии
Definition: main_menu.h:193
std::string output_vibration_detection_
Имя (путь) выходного файла (видео) после детекции вибрации
Definition: main_menu.h:205
std::string input_calibration_video_
Имя (путь) входного файла (видео) для калибровки
Definition: main_menu.h:189
bool wanna_quit_
Флаг выхода из программы
Definition: main_menu.h:183
void CreateMenu()
Строит сетку меню с кнопками и надписями на Mat-объекте menu_.
Definition: main_menu.cpp:89
void Idle()
Definition: main_menu.cpp:216
std::string button_text_[4]
Тексты кнопок
Definition: main_menu.h:114
void ExecuteMotionMagnification(std::string input_file_name, std::string output_file_name)
Запускает увеличение движения
Definition: main_menu.cpp:83
int top_offset_
Отступ от застаканных кнопок сверху
Definition: main_menu.h:142
int menu_width_
Ширина меню
Definition: main_menu.h:118
bool mode_chosen_
Флаг выбранного режима
Definition: main_menu.h:179
std::string winname_
Название окна
Definition: main_menu.h:102
int baseline
Параметр для cv::getText()
Definition: main_menu.h:166
void DetectEvent(int event, int x, int y, int flags)
callback функция для определения события (используется для хэндлинга клика мышью)
Definition: main_menu.cpp:162
void ExecuteVibrationMonitoring(std::string input_file_name, std::string output_file_name)
Запускает детекцию вибрации (основной режим)
Definition: main_menu.cpp:77
int button_width_
Ширина кнопки
Definition: main_menu.h:130
std::string input_movement_enlargment_
Имя (путь) входного файла (видео) для усиления движения
Definition: main_menu.h:213
std::vector< Rect > buttons_
Контейнер, хранящий в себе прямоугольники-кнопки (фактически тут хранятся координаты кнопок)
Definition: main_menu.h:110
int width_offset_
Отступ с двух сторон от кнопки по ширине
Definition: main_menu.h:150
void LoadPaths()
Открывает нужные пути
Definition: main_menu.cpp:39
int button_amount_
Количество кнопок
Definition: main_menu.h:126
std::vector< Scalar > buttons_color_
Контейнер для хранения цвета каждой кнопки
Definition: main_menu.h:175
std::string output_undistorted_video_
Имя (путь) выходного файла (видео) после удаления дисторсии
Definition: main_menu.h:197
int menu_height_
Высота меню
Definition: main_menu.h:122
std::string chessboards_path_
Путь к папке с фотографиями шахматной доски
Definition: main_menu.h:209
int bottom_offset_
Отступ от застаканных кнопок снизу
Definition: main_menu.h:146
MODE
Перечисление со списком основных режимов работы
Definition: main_menu.h:31
void UpdateBtnColorAndText()
Раскрашивает кнопки и наносит на них текст
Definition: main_menu.cpp:129
static void OnMouse(int event, int x, int y, int flags, void *userdata)
callback функция для определения события (используется для хэндлинга клика мышью)
Definition: main_menu.cpp:156