Visual Vibration Tracking 0.2
Загрузка...
Поиск...
Не найдено
video_undistorter.h
1#ifndef VIDEO_UNDISTORTER_H
2#define VIDEO_UNDISTORTER_H
3
4// OpenCV headers
5#include <opencv2/core.hpp>
6#include <opencv2/imgcodecs.hpp>
7#include <opencv2/highgui.hpp>
8#include "opencv2/calib3d.hpp"
9#include "opencv2/imgproc.hpp"
10#include <opencv2/videoio/videoio.hpp>
11
12#include <iostream>
13#include <fstream>
14#include <iomanip>
15
16// my headers
17#include "VVT-V2/helper.h"
18
19using namespace cv;
20
31{
32public:
40 VideoUndistorter(std::string input_file_name_, std::string output_file_name, std::string txt_file_name);
48
49private:
56 void AddTips(Mat& frame, std::string tip);
62 void SaveFrame(Mat frame);
67 void LoadFoundParamsFromFile(std::string txt_file_name);
74 std::vector<std::string> SplitString(std::string line, std::string delimiter);
75
76private:
80 std::string winname_;
84 VideoCapture* input_cap_;
88 VideoWriter* output_cap_;
104 double fps_;
108 std::string input_file_name_;
112 std::string output_file_name_;
134 double fx_;
139 double fy_;
144 double px_;
149 double py_;
154 std::string txt_file_name_;
155};
156
157#endif
Класс для удаления дисторсии на видео
void AddTips(Mat &frame, std::string tip)
По аналогии с FrameHandler::AddTips добавляет подсказки пользователя. В данном случае это - номер тек...
int ExecuteVideoUndistortion()
Основная часть. Выполняет удаление дисторсии из видео
double fy_
Коэффициент матрицы VideoUndistorter::camera_matrix_.
double frame_height_
Ширина кадра (входного и выходного)
VideoCapture * input_cap_
"Поток" из кадров входного видео (последовательности)
double px_
Коэффициент матрицы VideoUndistorter::camera_matrix_.
double frame_width_
Ширина кадра (входного и выходного)
double fps_
ФПС входного видео
Mat current_frame_
Текущий кадр с дисторсией
std::string input_file_name_
Путь к входному видео
double frame_count_
Количество кадров входного видео
Mat camera_matrix_
Та самая матрица, присущая конкретной паре - линща + камера.
Mat distortion_coefficients_
Коэффициенты дисторсии
double py_
Коэффициент матрицы VideoUndistorter::camera_matrix_.
double fx_
Коэффициент матрицы VideoUndistorter::camera_matrix_.
VideoWriter * output_cap_
"Поток" из кадров выходного видео (последовательности)
std::string winname_
Название главного окна
void SaveFrame(Mat frame)
Сохраняет кадр в выходную последовательность (видео)
void LoadFoundParamsFromFile(std::string txt_file_name)
Загружает параметры (коэффициенты fx, fy, cx, cy), необходимые для удаления дисторсии....
std::string output_file_name_
Путь к выходному видео
std::vector< std::string > SplitString(std::string line, std::string delimiter)
Разделяет строку на некоторое количество подстрок по специальному символу - разделителю
Mat undistorted_frame_
Текущий кадр с удалённой дисторсией
std::string txt_file_name_
Путь к файлу с коэффициентами