Getting rid of all the hard coded constants

This commit is contained in:
Tim Zeuner 2022-11-10 20:55:23 +01:00
parent cd3b613b0a
commit d00cd2945b
5 changed files with 22 additions and 12 deletions

View File

@ -1,12 +1,9 @@
#include "input.h"
Input::Input(/* args */) : cap(0)
Input::Input(int video_height, int video_width) : cap(0), video_height(video_height), video_width(video_width)
{
const int VID_HEIGHT = 240;
const int VID_WIDTH = 320;
this->cap.set(CAP_PROP_FRAME_HEIGHT, VID_HEIGHT);
this->cap.set(CAP_PROP_FRAME_WIDTH, VID_WIDTH);
this->cap.set(CAP_PROP_FRAME_HEIGHT, video_height);
this->cap.set(CAP_PROP_FRAME_WIDTH, video_width);
}
Input::~Input()

View File

@ -17,7 +17,10 @@ private:
VideoCapture cap;
public:
Input(/* args */);
int video_height;
int video_width;
Input(int video_height, int video_width);
Input() = delete;
~Input();
Mat readFile(String filePath);
Mat readWebcam();

View File

@ -1,5 +1,4 @@
#include "lfr.h"
#include <opencv2/core/utils/logger.hpp>
int main(void)
@ -7,8 +6,13 @@ int main(void)
//Disable opencv logging messages
cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_WARNING);
LFR lfr;
const int threshold_binary = 110;
const int video_height = 240;
const int video_width = 320;
LFR lfr(video_height, video_width, threshold_binary);
lfr.startLoop();
//To end the video stream, write any char in the console.
char a;
std::cin >> a;
lfr.endLoop();

View File

@ -2,8 +2,11 @@
const int threshold_binary = 110;
LFR::LFR() : iAmLooping(false), input(), processing(), controlModule(), interpreter(), intersectionHandler()
LFR::LFR(int video_height, int video_width, int threshold_binary)
: iAmLooping(false), input(video_height, video_width), processing(), controlModule(), interpreter(), intersectionHandler()
{
this->iAmLooping = false;
this->threshold_binary = threshold_binary;
}
LFR::~LFR()
@ -20,7 +23,8 @@ void LFR::loop()
while(iAmLooping)
{
Mat image = input.readWebcam();
processing.calculate_binaray(image, threshold_binary);
processing.calculate_binaray(image, this->threshold_binary);
std::vector<LFRLine> lines = processing.calculate_line_segments(image);
imshow("Display window", image);
char c = (char)waitKey(1);
}

4
lfr.h
View File

@ -25,10 +25,12 @@ class LFR
volatile bool iAmLooping;
void loop();
thread loopThread;
int threshold_binary;
public:
LFR();
LFR() = delete;
LFR(int video_height, int video_width, int threshold_binary);
~LFR();
void startLoop();