Visual Vibration Tracking 0.2
Загрузка...
Поиск...
Не найдено
frame_handler.h
1#ifndef FRAME_HANDLER_H
2#define FRAME_HANDLER_H
3
4// standart headers
5#include <iostream>
6
7// OpenCV headers
8#include <opencv2/imgcodecs.hpp>
9#include <opencv2/highgui.hpp>
10#include <opencv2/imgproc.hpp>
11#include <opencv2/video/tracking.hpp>
12#include <opencv2/opencv.hpp>
13
14// my headers
15#include "VVT-V2/helper.h"
16
17using namespace cv;
18
29{
30public:
37 FrameHandler(const std::string input_file_name, const std::string output_file_name, const std::string main_window_name);
42 void ReadNextFrame();
48 void ShowFrame(Mat frame, bool fullscreen);
53 void WriteFrame(Mat frame);
60 Mat ConcatenateFramesHorizontally(Mat left_frame, Mat right_frame);
67 Mat ConcatenateFramesVertically(Mat top_frame, Mat bottom_frame);
75 Mat PutFrameOverFrame(Mat foreground_frame, Mat background_frame, Point2i translation_vector);
76
77// Геттеры
78public:
84 Mat MakeGrayFrame(Mat frame_to_be_grayed);
89 bool GetInputCapStatus();
94 Mat GetCurrentFrame();
99 String GetMainWindowName();
104 double GetCurrentTimeOfFrame();
114 int GetAmountOfFrames();
119 int GetInputFps();
124 int GetFrameWidth();
129 int GetFrameHeight();
134 float GetTextResizeFactor();
142 Mat AddTips(Mat frame, int mode);
151 Mat GenerateGradScale(int left_limit, int right_limit, int colored_point_mode);
152
153private:
158
159private:
167 VideoCapture* input_cap_;
175 VideoWriter* output_cap_;
179 std::string main_window_name_;
180
185
186 // Параметры видео
218 std::vector<std::string> tip_text_;
219
220};
221
222#endif
Класс для чтения и сохранения кадров видео, а также различной их обработки
Definition: frame_handler.h:29
bool fullscreen_
Флаг полноэкранного режима
int GetAmountOfFrames()
Возвращает общее количество кадров
double current_time_of_frame_
Текущее время кадра из последовательности
String GetMainWindowName()
Возвращает название главного окна, в которое выводятся кадры
int GetFrameWidth()
Возвращает ширину исходного видео
Mat AddTips(Mat frame, int mode)
Добавляет (отрисовывает) подсказки для пользователя на кадр
bool GetInputCapStatus()
Возвращает текущий статус input_cap.
void ShowFrame(Mat frame, bool fullscreen)
Выводит в главное окно принимаемое изображение
Mat current_frame_
Последнний прочитанный кадр
Mat GetCurrentFrame()
Возвращает последний прочитанный на данный момент кадр
std::vector< std::string > tip_text_
Тексты подсказок для пользователя
void ReadNextFrame()
Считывает следующий кадр видео
void WriteFrame(Mat frame)
Записывает кадр с помощью output_cap.
Mat MakeGrayFrame(Mat frame_to_be_grayed)
Возвращает серый кадр с блюром
float text_resize_factor_
Коэффициент масштабирования текста (зависит от разрешения исходного видео)
double input_fps_
FPS исходного видео
VideoCapture * input_cap_
Указатель на объект-захватчик входных кадров видео
double GetCurrentTimeOfFrame()
Возвращает текущее время кадра (таймкод в мс)
bool input_cap_status_
Флаг, принимающий true при удачном чтении кадра и false, если следующий кадр не был считан
int GetInputFps()
Возвращает FPS считываемого видео
int GetCurrentPosOfFrame()
Возвращает текущее положение кадра относительно первого
Mat PutFrameOverFrame(Mat foreground_frame, Mat background_frame, Point2i translation_vector)
Накладывает изображение (переднний план) на другое изображение (задний план)
double input_frame_height_
Высота кадра исходного видео
Mat ConcatenateFramesVertically(Mat top_frame, Mat bottom_frame)
Объединяет два кадра вертикально
Mat ConcatenateFramesHorizontally(Mat left_frame, Mat right_frame)
Объединяет два кадра горизонтально
int GetFrameHeight()
Возвращает высоту считываемого видео
Mat GenerateGradScale(int left_limit, int right_limit, int colored_point_mode)
Генерирует шкалу с градиентом и подписями. Ширина шкалы - ширина исходного видео. Высота регулируется...
double input_frame_width_
Ширина кадра исходного видео
void InitTextResizeFactors()
Инициализирует коэффициент масштабирования текста в зависимости от разрешения видео
float GetTextResizeFactor()
Возвращает коэффициент масштабирования
int current_pos_of_frame_
Текущий номер кадра из последовательности
std::string main_window_name_
Имя главного окна
VideoWriter * output_cap_
Указатель на объект, сохраняющий кадры в последовательность (видео) в зависимости от выбранного кодек...
double input_frame_size_ratio_
Соотношение сторон исходного видео