48 lines
907 B
C++

#pragma once
#include <iostream>
#include <future>
#include <thread>
#include <opencv2/opencv.hpp>
#include <input.h>
#include <processing.h>
#include <control_module.h>
#include <interpreter.h>
#include <intersection_handler.h>
using namespace cv;
class LFR
{
Input input;
Processing processing;
ControlModule controlModule;
Interpreter interpreter;
IntersectionHandler intersectionHandler;
volatile bool iAmLooping;
void loop();
thread loopThread;
int thresholdBinary;
int gaussKernelSize;
void provideOutput(Mat originalImage, Mat processedImage, const FrameData& frameData, const Rect& roi);
public:
LFR() = delete;
LFR(int videoHeight, int videoWidth, int thresholdBinary, int gaussKernelSize);
~LFR();
void startLoop();
void endLoop();
bool videoFlag;
bool saveOutputFlag;
std::string outputFileName;
};