This commit is contained in:
2023-05-11 14:29:48 +02:00
commit 86cebd3e6c
5 changed files with 182 additions and 0 deletions

74
MarkerTracking.cpp Normal file
View File

@@ -0,0 +1,74 @@
#include <iostream>
#include <opencv2/opencv.hpp>
#include "src/Detector.hpp"
using namespace cv;
using namespace std;
// List of points
typedef vector<Point> contour_t;
// List of contours
typedef vector<contour_t> contour_vector_t;
Mat videoStreamFrameGray;
Mat videoStreamFrameOutput;
// Pos is from UI, dereferencing of the pointer
static void on_trackbar(/* ??? */) {
//*((???*)???) = ???;
}
int main() {
Mat frame;
VideoCapture cap(0);
if (!cap.isOpened()) {
cout << "No webcam, using video file" << endl;
cap.open("MarkerMovie.MP4");
if (cap.isOpened() == false) {
cout << "No video!" << endl;
exit(0);
}
}
const string contoursWindow = "Contours";
const string thresholdWindow = "Threshold";
namedWindow(contoursWindow, WINDOW_FREERATIO);
namedWindow(thresholdWindow, WINDOW_FREERATIO);
const string UI = "Threshold";
int threshold = 65;
createTrackbar(UI, thresholdWindow, &threshold, 255);
Mat imgFiltered;
Detector detector;
while (cap.read(frame)) {
// --- Process Frame ---
Mat grayScale;
imgFiltered = frame.clone();
cvtColor(imgFiltered,grayScale, COLOR_BGR2GRAY);
// Threshold to reduce the noise
adaptiveThreshold(grayScale, grayScale, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 45, 15);
cv::threshold(grayScale, videoStreamFrameGray, threshold, 255, THRESH_OTSU);
detector.detect(videoStreamFrameGray, imgFiltered);
imshow(contoursWindow, imgFiltered);
imshow(thresholdWindow, videoStreamFrameGray);
if (waitKey(10) == 27) {
break;
}
}
destroyWindow(contoursWindow);
return (0);
}