#pragma once #include #include #include #include #include #include #include #include #include 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; };