bug
This commit is contained in:
parent
b1d50517c6
commit
3b7ba64aa9
|
|
@ -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_<float>(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<uchar>(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_<float>(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<int, cv::Point3f> 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<int, cv::Point2f>& 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<cv::aruco::Dictionary> dictionary =
|
||||
|
|
|
|||
Loading…
Reference in New Issue