Zufällige Bilderausgabe und binäres Bild(verbesserbar)
@ -1,6 +1,5 @@
|
|||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
|
|
||||||
Input::Input(/* args */)
|
Input::Input(/* args */)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -11,15 +10,24 @@ Input::~Input()
|
|||||||
|
|
||||||
Mat Input::readFile(String filePath)
|
Mat Input::readFile(String filePath)
|
||||||
{
|
{
|
||||||
Mat image = imread(filePath, IMREAD_COLOR);
|
std::srand(std::time(0));
|
||||||
|
// Read all .jpg files from the specified folder
|
||||||
|
std::string folder = filePath;
|
||||||
|
std::vector<std::string> filenames;
|
||||||
|
cv::glob(folder, filenames);
|
||||||
|
|
||||||
|
// Random shuffle
|
||||||
|
std::random_shuffle(filenames.begin(), filenames.end());
|
||||||
|
|
||||||
|
Mat image = imread(filenames[0], IMREAD_COLOR);
|
||||||
|
|
||||||
if(image.empty())
|
if(image.empty())
|
||||||
{
|
{
|
||||||
std::cout << "Could not read the image: " << filePath << std::endl;
|
std::cout << "Could not read the image: " << filePath << std::endl;
|
||||||
return Mat();
|
return Mat();
|
||||||
//To do:Exception handeling
|
//To do:Exception handeling
|
||||||
}
|
}
|
||||||
imshow("Display window", image);
|
|
||||||
waitKey(0);
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,8 +47,6 @@ Mat Input::readWebcam()
|
|||||||
}
|
}
|
||||||
|
|
||||||
cap.read(image);
|
cap.read(image);
|
||||||
imshow("Display window", image);
|
|
||||||
waitKey(0);
|
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
@ -1,4 +1,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <algorithm>
|
||||||
#include <opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -8,8 +8,10 @@ Processing::~Processing()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat Processing::calculate_binaray(const Mat& inputPicture)
|
Mat Processing::calculate_binaray(Mat& inputPicture, int thresholdValue)
|
||||||
{
|
{
|
||||||
//cvtColor(inputPicture, inputPicture, COLOR_RGB2GRAY);
|
//Mat &outputPicture;
|
||||||
return Mat();
|
cvtColor(inputPicture, inputPicture, COLOR_BGR2GRAY);
|
||||||
|
threshold(inputPicture, inputPicture, thresholdValue, 255, THRESH_BINARY);
|
||||||
|
return inputPicture;
|
||||||
}
|
}
|
@ -16,5 +16,5 @@ public:
|
|||||||
// End und Anfangspunkt analysieren und Winkel und Ausrichtung der Linie extrahieren (Abstand des untersten Punktes von der Mitte)
|
// End und Anfangspunkt analysieren und Winkel und Ausrichtung der Linie extrahieren (Abstand des untersten Punktes von der Mitte)
|
||||||
~Processing();
|
~Processing();
|
||||||
|
|
||||||
Mat calculate_binaray(const Mat& inputPicture);
|
Mat calculate_binaray(Mat& inputPicture, int thresholdValue);
|
||||||
};
|
};
|
Before Width: | Height: | Size: 253 KiB After Width: | Height: | Size: 253 KiB |
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 268 KiB |
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 311 KiB After Width: | Height: | Size: 311 KiB |
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 254 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 265 KiB |
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 245 KiB |
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 327 KiB |
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 282 KiB |
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 229 KiB |
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 328 KiB |
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 276 KiB |
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 299 KiB After Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 248 KiB After Width: | Height: | Size: 248 KiB |
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 328 KiB |
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 316 KiB |
Before Width: | Height: | Size: 329 KiB After Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 279 KiB |
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 266 KiB |
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 251 KiB |
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 277 KiB |
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
12
lfr.cpp
@ -5,10 +5,18 @@
|
|||||||
|
|
||||||
using namespace cv;
|
using namespace cv;
|
||||||
|
|
||||||
|
const int threshold_binary = 110;
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
std::cout<<"Hello world";
|
std::cout<<"Hello world";
|
||||||
Input test;
|
Input test;
|
||||||
// Mat image1 = test.readFile("C:\\Line-Following-Robot\\Test_data\\WhatsApp Image 2022-10-26 at 09.54.14.jpeg");
|
Processing test1;
|
||||||
Mat image2 = test.readWebcam();
|
Mat image1 = test.readFile("C:\\Line-Following-Robot\\Test_data\\*.jpeg");
|
||||||
|
//Mat image2 = test.readWebcam();
|
||||||
|
|
||||||
|
test1.calculate_binaray(image1, threshold_binary);
|
||||||
|
imshow("Display window", image1);
|
||||||
|
waitKey(0);
|
||||||
|
|
||||||
}
|
}
|