diff --git a/Input/input.cpp b/Input/input.cpp index 890c40a..a85139b 100644 --- a/Input/input.cpp +++ b/Input/input.cpp @@ -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() diff --git a/Input/input.h b/Input/input.h index 39834ee..1fc1e32 100644 --- a/Input/input.h +++ b/Input/input.h @@ -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(); diff --git a/autonomous_mode_main.cpp b/autonomous_mode_main.cpp index 35fb233..19139d0 100644 --- a/autonomous_mode_main.cpp +++ b/autonomous_mode_main.cpp @@ -1,5 +1,4 @@ #include "lfr.h" - #include 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(); diff --git a/lfr.cpp b/lfr.cpp index 05d7b55..b53ad93 100644 --- a/lfr.cpp +++ b/lfr.cpp @@ -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 lines = processing.calculate_line_segments(image); imshow("Display window", image); char c = (char)waitKey(1); } diff --git a/lfr.h b/lfr.h index 3ac3434..7d7d432 100644 --- a/lfr.h +++ b/lfr.h @@ -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();