mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Post-merge fixes for algorithm hint API.
This commit is contained in:
@@ -1543,7 +1543,7 @@ sigmaX, and sigmaY.
|
||||
CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, Size ksize,
|
||||
double sigmaX, double sigmaY = 0,
|
||||
int borderType = BORDER_DEFAULT,
|
||||
AlgorithmHint hint = cv::ALGO_DEFAULT );
|
||||
AlgorithmHint hint = cv::ALGO_HINT_DEFAULT );
|
||||
|
||||
/** @brief Applies the bilateral filter to an image.
|
||||
|
||||
|
||||
@@ -612,7 +612,7 @@ void GaussianBlur(InputArray _src, OutputArray _dst, Size ksize,
|
||||
{
|
||||
CV_INSTRUMENT_REGION();
|
||||
|
||||
if (hint == cv::ALGO_DEFAULT)
|
||||
if (hint == cv::ALGO_HINT_DEFAULT)
|
||||
hint = cv::getDefaultAlgorithmHint();
|
||||
|
||||
CV_Assert(!_src.empty());
|
||||
@@ -698,7 +698,7 @@ void GaussianBlur(InputArray _src, OutputArray _dst, Size ksize,
|
||||
borderType & ~BORDER_ISOLATED);
|
||||
}
|
||||
|
||||
if (hint == ALGO_APPROX)
|
||||
if (hint == ALGO_HINT_APPROX)
|
||||
{
|
||||
Point ofs;
|
||||
Size wsz(src.cols, src.rows);
|
||||
@@ -768,7 +768,7 @@ void GaussianBlur(InputArray _src, OutputArray _dst, Size ksize,
|
||||
ofs.x, ofs.y, wsz.width - src2.cols - ofs.x, wsz.height - src2.rows - ofs.y, ksize.width, borderType&~BORDER_ISOLATED);
|
||||
}
|
||||
|
||||
if (hint == ALGO_APPROX)
|
||||
if (hint == ALGO_HINT_APPROX)
|
||||
{
|
||||
Point ofs;
|
||||
Size wsz(src.cols, src.rows);
|
||||
|
||||
@@ -288,21 +288,13 @@ TEST_P(GaussianBlurVsBitexact, approx)
|
||||
orig.convertTo(src, dtype);
|
||||
|
||||
cv::Mat gt;
|
||||
GaussianBlur(src, gt, Size(ksize, ksize), sigma, sigma, border, ALGO_ACCURATE);
|
||||
GaussianBlur(src, gt, Size(ksize, ksize), sigma, sigma, border, ALGO_HINT_ACCURATE);
|
||||
|
||||
cv::Mat dst;
|
||||
GaussianBlur(src, dst, Size(ksize, ksize), sigma, sigma, border, ALGO_APPROX);
|
||||
GaussianBlur(src, dst, Size(ksize, ksize), sigma, sigma, border, ALGO_HINT_APPROX);
|
||||
|
||||
cv::Mat diff;
|
||||
cv::absdiff(dst, gt, diff);
|
||||
cv::Mat flatten_diff = diff.reshape(1, diff.rows);
|
||||
|
||||
int nz = countNonZero(flatten_diff);
|
||||
EXPECT_LE(nz, 0.06*src.total()); // Less 6% of different pixels
|
||||
|
||||
double min_val, max_val;
|
||||
minMaxLoc(flatten_diff, &min_val, &max_val);
|
||||
EXPECT_LE(max_val, 2); // expectes results floating +-1
|
||||
EXPECT_LE(cvtest::norm(dst, gt, NORM_INF), 1);
|
||||
EXPECT_LE(cvtest::norm(dst, gt, NORM_L1 | NORM_RELATIVE), 0.06); // Less 6% of different pixels
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(/*nothing*/, GaussianBlurVsBitexact,
|
||||
|
||||
Reference in New Issue
Block a user