From 3b7ba64aa96776ee4aacf3396e49e417549b630c Mon Sep 17 00:00:00 2001 From: Thomas Bonnier Date: Fri, 13 Dec 2024 09:54:40 +0100 Subject: [PATCH] bug --- test/src/arenaCalibration.cpp | 67 +++-------------------------------- 1 file changed, 4 insertions(+), 63 deletions(-) diff --git a/test/src/arenaCalibration.cpp b/test/src/arenaCalibration.cpp index e632e1a..a2e6ee7 100644 --- a/test/src/arenaCalibration.cpp +++ b/test/src/arenaCalibration.cpp @@ -32,68 +32,15 @@ void saveTransformationMatrix(const std::string& filename, const cv::Mat& transf fs.release(); } -cv::Mat upscaleImage(const cv::Mat& image, double scaleFactor) -{ - cv::Mat upscaled; - cv::resize(image, upscaled, cv::Size(), scaleFactor, scaleFactor, cv::INTER_LINEAR); - return upscaled; -} - -cv::Mat sharpenImage(const cv::Mat& image) -{ - cv::Mat sharpened; - cv::Mat sharpeningKernel = (cv::Mat_(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); - cv::filter2D(image, sharpened, -1, sharpeningKernel); - return sharpened; -} - -cv::Mat reduceNoise(const cv::Mat& image) -{ - cv::Mat denoised; - cv::GaussianBlur(image, denoised, cv::Size(5, 5), 0); - return denoised; -} - -cv::Mat gammaCorrection(const cv::Mat& image, double gamma) -{ - cv::Mat adjusted; - cv::Mat lookupTable(1, 256, CV_8U); - uchar* p = lookupTable.ptr(); - for (int i = 0; i < 256; ++i) - { - p[i] = cv::saturate_cast(pow(i / 255.0, gamma) * 255.0); - } - cv::LUT(image, lookupTable, adjusted); - return adjusted; -} - cv::Mat enhanceImage(const cv::Mat& image) { cv::Mat enhanced; - cv::Mat kernel = (cv::Mat_(3, 3) << 1, 1, 1, 1, -7, 1, 1, 1, 1); - cv::filter2D(image, enhanced, CV_32F, kernel); - cv::normalize(enhanced, enhanced, 0, 255, cv::NORM_MINMAX, CV_8UC1); + cv::cvtColor(image, enhanced, cv::COLOR_BGR2GRAY); + cv::equalizeHist(enhanced, enhanced); + cv::GaussianBlur(enhanced, enhanced, cv::Size(5, 5), 0); return enhanced; } -cv::Mat equalizeHistogram(const cv::Mat& image) -{ - cv::Mat equalized; - cv::cvtColor(image, equalized, cv::COLOR_BGR2GRAY); - cv::equalizeHist(equalized, equalized); - cv::cvtColor(equalized, equalized, cv::COLOR_GRAY2BGR); - return equalized; -} - -cv::Mat adaptiveThresholding(const cv::Mat& image) -{ - cv::Mat gray, thresholded; - cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY); - cv::adaptiveThreshold(gray, thresholded, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, cv::THRESH_BINARY, 11, 2); - cv::cvtColor(thresholded, thresholded, cv::COLOR_GRAY2BGR); - return thresholded; -} - std::map fixedMarkerPositions; void loadMarkerPositions(const std::string& filename) @@ -129,13 +76,7 @@ void loadMarkerPositions(const std::string& filename) void processFrame(const cv::Mat& frame, std::map& markerPositions, cv::Mat& transformationMatrix, bool& calibrationDone) { // Apply image processing steps - cv::Mat processedFrame = gammaCorrection(frame, 0.4); - processedFrame = sharpenImage(processedFrame); - processedFrame = upscaleImage(processedFrame, 3.0); - processedFrame = reduceNoise(processedFrame); - processedFrame = enhanceImage(processedFrame); - processedFrame = equalizeHistogram(processedFrame); - processedFrame = adaptiveThresholding(processedFrame); + cv::Mat processedFrame = enhanceImage(frame); // Create ArUco marker detector cv::Ptr dictionary =