mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
Merge pull request #25075 from mshabunin:cleanup-imgproc-1
C-API cleanup: apps, imgproc_c and some constants #25075 Merge with https://github.com/opencv/opencv_contrib/pull/3642 * Removed obsolete apps - traincascade and createsamples (please use older OpenCV versions if you need them). These apps relied heavily on C-API * removed all mentions of imgproc C-API headers (imgproc_c.h, types_c.h) - they were empty, included core C-API headers * replaced usage of several C constants with C++ ones (error codes, norm modes, RNG modes, PCA modes, ...) - most part of this PR (split into two parts - all modules and calib+3d - for easier backporting) * removed imgproc C-API headers (as separate commit, so that other changes could be backported to 4.x) Most of these changes can be backported to 4.x.
This commit is contained in:
@@ -1461,7 +1461,7 @@ typedef ArithmTestBase Normalize;
|
||||
|
||||
OCL_TEST_P(Normalize, Mat)
|
||||
{
|
||||
static int modes[] = { CV_MINMAX, CV_L2, CV_L1, CV_C };
|
||||
static int modes[] = { NORM_MINMAX, NORM_L2, NORM_L1, NORM_INF };
|
||||
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
#include "test_precomp.hpp"
|
||||
#include "ref_reduce_arg.impl.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
@@ -634,7 +636,7 @@ static void inRange(const Mat& src, const Mat& lb, const Mat& rb, Mat& dst)
|
||||
(const cv::bfloat16_t*)bptr, dptr, total, cn);
|
||||
break;
|
||||
default:
|
||||
CV_Error(CV_StsUnsupportedFormat, "");
|
||||
CV_Error(cv::Error::StsUnsupportedFormat, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -699,7 +701,7 @@ static void inRangeS(const Mat& src, const Scalar& lb, const Scalar& rb, Mat& ds
|
||||
inRangeS_((const cv::bfloat16_t*)sptr, lbuf.f, rbuf.f, dptr, total, cn);
|
||||
break;
|
||||
default:
|
||||
CV_Error(CV_StsUnsupportedFormat, "");
|
||||
CV_Error(cv::Error::StsUnsupportedFormat, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1781,7 +1783,7 @@ TEST(Core_ArithmMask, uninitialized)
|
||||
}
|
||||
Mat d1;
|
||||
d.convertTo(d1, depth);
|
||||
EXPECT_LE(cvtest::norm(c, d1, CV_C), DBL_EPSILON);
|
||||
EXPECT_LE(cvtest::norm(c, d1, NORM_INF), DBL_EPSILON);
|
||||
}
|
||||
|
||||
Mat_<uchar> tmpSrc(100,100);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
#include "test_precomp.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
|
||||
@@ -2114,8 +2115,8 @@ void Core_GraphScanTest::run( int )
|
||||
|
||||
cvReleaseGraphScanner( &scanner );
|
||||
|
||||
CV_TS_SEQ_CHECK_CONDITION( cvtest::norm(Mat(vtx_mask),CV_L1) == graph->active_count &&
|
||||
cvtest::norm(Mat(edge_mask),CV_L1) == graph->edges->active_count,
|
||||
CV_TS_SEQ_CHECK_CONDITION( cvtest::norm(Mat(vtx_mask),NORM_L1) == graph->active_count &&
|
||||
cvtest::norm(Mat(edge_mask),NORM_L1) == graph->edges->active_count,
|
||||
"Some vertices or edges have not been visited" );
|
||||
update_progressbar();
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
#include "test_precomp.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
|
||||
@@ -97,7 +98,7 @@ static void DFT_1D( const Mat& _src, Mat& _dst, int flags, const Mat& _wave=Mat(
|
||||
}
|
||||
}
|
||||
else
|
||||
CV_Error(CV_StsUnsupportedFormat, "");
|
||||
CV_Error(cv::Error::StsUnsupportedFormat, "");
|
||||
}
|
||||
|
||||
|
||||
@@ -878,7 +879,7 @@ protected:
|
||||
{
|
||||
cout << "actual:\n" << dst << endl << endl;
|
||||
cout << "reference:\n" << dstz << endl << endl;
|
||||
CV_Error(CV_StsError, "");
|
||||
CV_Error(cv::Error::StsError, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
#include "test_precomp.hpp"
|
||||
|
||||
#include "opencv2/core/core_c.h"
|
||||
#include <fstream>
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
@@ -118,12 +118,12 @@ protected:
|
||||
int cn = cvtest::randInt(rng) % 4 + 1;
|
||||
Mat test_mat(cvtest::randInt(rng)%30+1, cvtest::randInt(rng)%30+1, CV_MAKETYPE(depth, cn));
|
||||
|
||||
rng0.fill(test_mat, CV_RAND_UNI, Scalar::all(ranges[depth][0]), Scalar::all(ranges[depth][1]));
|
||||
rng0.fill(test_mat, RNG::UNIFORM, Scalar::all(ranges[depth][0]), Scalar::all(ranges[depth][1]));
|
||||
if( depth >= CV_32F )
|
||||
{
|
||||
exp(test_mat, test_mat);
|
||||
Mat test_mat_scale(test_mat.size(), test_mat.type());
|
||||
rng0.fill(test_mat_scale, CV_RAND_UNI, Scalar::all(-1), Scalar::all(1));
|
||||
rng0.fill(test_mat_scale, RNG::UNIFORM, Scalar::all(-1), Scalar::all(1));
|
||||
cv::multiply(test_mat, test_mat_scale, test_mat);
|
||||
}
|
||||
|
||||
@@ -136,12 +136,12 @@ protected:
|
||||
};
|
||||
MatND test_mat_nd(3, sz, CV_MAKETYPE(depth, cn));
|
||||
|
||||
rng0.fill(test_mat_nd, CV_RAND_UNI, Scalar::all(ranges[depth][0]), Scalar::all(ranges[depth][1]));
|
||||
rng0.fill(test_mat_nd, RNG::UNIFORM, Scalar::all(ranges[depth][0]), Scalar::all(ranges[depth][1]));
|
||||
if( depth >= CV_32F )
|
||||
{
|
||||
exp(test_mat_nd, test_mat_nd);
|
||||
MatND test_mat_scale(test_mat_nd.dims, test_mat_nd.size, test_mat_nd.type());
|
||||
rng0.fill(test_mat_scale, CV_RAND_UNI, Scalar::all(-1), Scalar::all(1));
|
||||
rng0.fill(test_mat_scale, RNG::UNIFORM, Scalar::all(-1), Scalar::all(1));
|
||||
cv::multiply(test_mat_nd, test_mat_scale, test_mat_nd);
|
||||
}
|
||||
|
||||
@@ -421,9 +421,9 @@ protected:
|
||||
fs["g1"] >> og1;
|
||||
CV_Assert( mi2.empty() );
|
||||
CV_Assert( mv2.empty() );
|
||||
CV_Assert( cvtest::norm(Mat(mi3), Mat(mi4), CV_C) == 0 );
|
||||
CV_Assert( cvtest::norm(Mat(mi3), Mat(mi4), NORM_INF) == 0 );
|
||||
CV_Assert( mv4.size() == 1 );
|
||||
double n = cvtest::norm(mv3[0], mv4[0], CV_C);
|
||||
double n = cvtest::norm(mv3[0], mv4[0], NORM_INF);
|
||||
CV_Assert( vudt2.empty() );
|
||||
CV_Assert( vudt3 == vudt4 );
|
||||
CV_Assert( n == 0 );
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include "opencv2/core/cuda.hpp"
|
||||
#include "opencv2/core/bindings_utils.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
|
||||
@@ -322,7 +323,7 @@ TEST(Core_PCA, accuracy)
|
||||
rng.fill( rPoints, RNG::UNIFORM, Scalar::all(0.0), Scalar::all(1.0) );
|
||||
rng.fill( rTestPoints, RNG::UNIFORM, Scalar::all(0.0), Scalar::all(1.0) );
|
||||
|
||||
PCA rPCA( rPoints, Mat(), CV_PCA_DATA_AS_ROW, maxComponents ), cPCA;
|
||||
PCA rPCA( rPoints, Mat(), PCA::DATA_AS_ROW, maxComponents ), cPCA;
|
||||
|
||||
// 1. check C++ PCA & ROW
|
||||
Mat rPrjTestPoints = rPCA.project( rTestPoints );
|
||||
@@ -362,7 +363,7 @@ TEST(Core_PCA, accuracy)
|
||||
// check pca eigenvalues
|
||||
evalEps = 1e-5, evecEps = 5e-3;
|
||||
err = cvtest::norm(rPCA.eigenvalues, subEval, NORM_L2 | NORM_RELATIVE);
|
||||
EXPECT_LE(err , evalEps) << "pca.eigenvalues is incorrect (CV_PCA_DATA_AS_ROW)";
|
||||
EXPECT_LE(err , evalEps) << "pca.eigenvalues is incorrect (PCA::DATA_AS_ROW)";
|
||||
// check pca eigenvectors
|
||||
for(int i = 0; i < subEvec.rows; i++)
|
||||
{
|
||||
@@ -379,7 +380,7 @@ TEST(Core_PCA, accuracy)
|
||||
double mval = 0; Point mloc;
|
||||
minMaxLoc(tmp, 0, &mval, 0, &mloc);
|
||||
|
||||
EXPECT_LE(err, evecEps) << "pca.eigenvectors is incorrect (CV_PCA_DATA_AS_ROW) at " << i << " "
|
||||
EXPECT_LE(err, evecEps) << "pca.eigenvectors is incorrect (PCA::DATA_AS_ROW) at " << i << " "
|
||||
<< cv::format("max diff is %g at (i=%d, j=%d) (%g vs %g)\n",
|
||||
mval, mloc.y, mloc.x, rPCA.eigenvectors.at<float>(mloc.y, mloc.x),
|
||||
subEvec.at<float>(mloc.y, mloc.x))
|
||||
@@ -399,7 +400,7 @@ TEST(Core_PCA, accuracy)
|
||||
err = cvtest::norm(rPrjTestPoints.row(i), prj, NORM_L2 | NORM_RELATIVE);
|
||||
if (err < prjEps)
|
||||
{
|
||||
EXPECT_LE(err, prjEps) << "bad accuracy of project() (CV_PCA_DATA_AS_ROW)";
|
||||
EXPECT_LE(err, prjEps) << "bad accuracy of project() (PCA::DATA_AS_ROW)";
|
||||
continue;
|
||||
}
|
||||
// check pca backProject
|
||||
@@ -407,22 +408,22 @@ TEST(Core_PCA, accuracy)
|
||||
err = cvtest::norm(rBackPrjTestPoints.row(i), backPrj, NORM_L2 | NORM_RELATIVE);
|
||||
if (err > backPrjEps)
|
||||
{
|
||||
EXPECT_LE(err, backPrjEps) << "bad accuracy of backProject() (CV_PCA_DATA_AS_ROW)";
|
||||
EXPECT_LE(err, backPrjEps) << "bad accuracy of backProject() (PCA::DATA_AS_ROW)";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// 2. check C++ PCA & COL
|
||||
cPCA( rPoints.t(), Mat(), CV_PCA_DATA_AS_COL, maxComponents );
|
||||
cPCA( rPoints.t(), Mat(), PCA::DATA_AS_COL, maxComponents );
|
||||
diffPrjEps = 1, diffBackPrjEps = 1;
|
||||
Mat ocvPrjTestPoints = cPCA.project(rTestPoints.t());
|
||||
err = cvtest::norm(cv::abs(ocvPrjTestPoints), cv::abs(rPrjTestPoints.t()), NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of project() (CV_PCA_DATA_AS_COL)";
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of project() (PCA::DATA_AS_COL)";
|
||||
err = cvtest::norm(cPCA.backProject(ocvPrjTestPoints), rBackPrjTestPoints.t(), NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of backProject() (CV_PCA_DATA_AS_COL)";
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of backProject() (PCA::DATA_AS_COL)";
|
||||
|
||||
// 3. check C++ PCA w/retainedVariance
|
||||
cPCA( rPoints.t(), Mat(), CV_PCA_DATA_AS_COL, retainedVariance );
|
||||
cPCA( rPoints.t(), Mat(), PCA::DATA_AS_COL, retainedVariance );
|
||||
diffPrjEps = 1, diffBackPrjEps = 1;
|
||||
Mat rvPrjTestPoints = cPCA.project(rTestPoints.t());
|
||||
|
||||
@@ -431,9 +432,9 @@ TEST(Core_PCA, accuracy)
|
||||
else
|
||||
err = cvtest::norm(cv::abs(rvPrjTestPoints), cv::abs(rPrjTestPoints.colRange(0,cPCA.eigenvectors.rows).t()), NORM_L2 | NORM_RELATIVE);
|
||||
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of project() (CV_PCA_DATA_AS_COL); retainedVariance=" << retainedVariance;
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of project() (PCA::DATA_AS_COL); retainedVariance=" << retainedVariance;
|
||||
err = cvtest::norm(cPCA.backProject(rvPrjTestPoints), rBackPrjTestPoints.t(), NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of backProject() (CV_PCA_DATA_AS_COL); retainedVariance=" << retainedVariance;
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of backProject() (PCA::DATA_AS_COL); retainedVariance=" << retainedVariance;
|
||||
|
||||
#ifdef CHECK_C
|
||||
// 4. check C PCA & ROW
|
||||
@@ -447,14 +448,14 @@ TEST(Core_PCA, accuracy)
|
||||
_prjTestPoints = cvMat(prjTestPoints);
|
||||
_backPrjTestPoints = cvMat(backPrjTestPoints);
|
||||
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, CV_PCA_DATA_AS_ROW );
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, PCA::DATA_AS_ROW );
|
||||
cvProjectPCA( &_testPoints, &_avg, &_evec, &_prjTestPoints );
|
||||
cvBackProjectPCA( &_prjTestPoints, &_avg, &_evec, &_backPrjTestPoints );
|
||||
|
||||
err = cvtest::norm(prjTestPoints, rPrjTestPoints, NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of cvProjectPCA() (CV_PCA_DATA_AS_ROW)";
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of cvProjectPCA() (PCA::DATA_AS_ROW)";
|
||||
err = cvtest::norm(backPrjTestPoints, rBackPrjTestPoints, NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of cvBackProjectPCA() (CV_PCA_DATA_AS_ROW)";
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of cvBackProjectPCA() (PCA::DATA_AS_ROW)";
|
||||
|
||||
// 5. check C PCA & COL
|
||||
_points = cvMat(cPoints);
|
||||
@@ -465,14 +466,14 @@ TEST(Core_PCA, accuracy)
|
||||
prjTestPoints = prjTestPoints.t(); _prjTestPoints = cvMat(prjTestPoints);
|
||||
backPrjTestPoints = backPrjTestPoints.t(); _backPrjTestPoints = cvMat(backPrjTestPoints);
|
||||
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, CV_PCA_DATA_AS_COL );
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, PCA::DATA_AS_COL );
|
||||
cvProjectPCA( &_testPoints, &_avg, &_evec, &_prjTestPoints );
|
||||
cvBackProjectPCA( &_prjTestPoints, &_avg, &_evec, &_backPrjTestPoints );
|
||||
|
||||
err = cvtest::norm(cv::abs(prjTestPoints), cv::abs(rPrjTestPoints.t()), NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of cvProjectPCA() (CV_PCA_DATA_AS_COL)";
|
||||
ASSERT_LE(err, diffPrjEps) << "bad accuracy of cvProjectPCA() (PCA::DATA_AS_COL)";
|
||||
err = cvtest::norm(backPrjTestPoints, rBackPrjTestPoints.t(), NORM_L2 | NORM_RELATIVE);
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of cvBackProjectPCA() (CV_PCA_DATA_AS_COL)";
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of cvBackProjectPCA() (PCA::DATA_AS_COL)";
|
||||
#endif
|
||||
// Test read and write
|
||||
const std::string filename = cv::tempfile("PCA_store.yml");
|
||||
@@ -599,7 +600,7 @@ static void setValue(SparseMat& M, const int* idx, double value, RNG& rng)
|
||||
else if( M.type() == CV_64F )
|
||||
*(double*)ptr = value;
|
||||
else
|
||||
CV_Error(CV_StsUnsupportedFormat, "");
|
||||
CV_Error(cv::Error::StsUnsupportedFormat, "");
|
||||
}
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ == 11 || __GNUC__ == 12 || __GNUC__ == 13)
|
||||
@@ -651,8 +652,8 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
MatND A(3, sz3, CV_32F), B(3, sz3, CV_16SC4);
|
||||
CvMatND matA = cvMatND(A), matB = cvMatND(B);
|
||||
RNG rng;
|
||||
rng.fill(A, CV_RAND_UNI, Scalar::all(-10), Scalar::all(10));
|
||||
rng.fill(B, CV_RAND_UNI, Scalar::all(-10), Scalar::all(10));
|
||||
rng.fill(A, RNG::UNIFORM, Scalar::all(-10), Scalar::all(10));
|
||||
rng.fill(B, RNG::UNIFORM, Scalar::all(-10), Scalar::all(10));
|
||||
|
||||
int idx0[] = {3,4,5}, idx1[] = {0, 9, 7};
|
||||
float val0 = 130;
|
||||
@@ -808,7 +809,7 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
all_vals.resize(nz0);
|
||||
all_vals2.resize(nz0);
|
||||
Mat_<double> _all_vals(all_vals), _all_vals2(all_vals2);
|
||||
rng.fill(_all_vals, CV_RAND_UNI, Scalar(-1000), Scalar(1000));
|
||||
rng.fill(_all_vals, RNG::UNIFORM, Scalar(-1000), Scalar(1000));
|
||||
if( depth == CV_32F )
|
||||
{
|
||||
Mat _all_vals_f;
|
||||
@@ -824,9 +825,9 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
}
|
||||
|
||||
minMaxLoc(_all_vals, &min_val, &max_val);
|
||||
double _norm0 = cv/*test*/::norm(_all_vals, CV_C);
|
||||
double _norm1 = cv/*test*/::norm(_all_vals, CV_L1);
|
||||
double _norm2 = cv/*test*/::norm(_all_vals, CV_L2);
|
||||
double _norm0 = cv/*test*/::norm(_all_vals, NORM_INF);
|
||||
double _norm1 = cv/*test*/::norm(_all_vals, NORM_L1);
|
||||
double _norm2 = cv/*test*/::norm(_all_vals, NORM_L2);
|
||||
|
||||
for( i = 0; i < nz0; i++ )
|
||||
{
|
||||
@@ -861,9 +862,9 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
SparseMat M3; SparseMat(Md).convertTo(M3, Md.type(), 2);
|
||||
|
||||
int nz1 = (int)M.nzcount(), nz2 = (int)M3.nzcount();
|
||||
double norm0 = cv/*test*/::norm(M, CV_C);
|
||||
double norm1 = cv/*test*/::norm(M, CV_L1);
|
||||
double norm2 = cv/*test*/::norm(M, CV_L2);
|
||||
double norm0 = cv/*test*/::norm(M, NORM_INF);
|
||||
double norm1 = cv/*test*/::norm(M, NORM_L1);
|
||||
double norm2 = cv/*test*/::norm(M, NORM_L2);
|
||||
double eps = depth == CV_32F ? FLT_EPSILON*100 : DBL_EPSILON*1000;
|
||||
|
||||
if( nz1 != nz0 || nz2 != nz0)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
#include "opencv2/core/softfloat.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
|
||||
@@ -2737,11 +2738,11 @@ TEST(Core_Invert, small)
|
||||
cv::Mat b = a.t()*a;
|
||||
cv::Mat c, i = Mat_<float>::eye(3, 3);
|
||||
cv::invert(b, c, cv::DECOMP_LU); //std::cout << b*c << std::endl;
|
||||
ASSERT_LT( cvtest::norm(b*c, i, CV_C), 0.1 );
|
||||
ASSERT_LT( cvtest::norm(b*c, i, NORM_INF), 0.1 );
|
||||
cv::invert(b, c, cv::DECOMP_SVD); //std::cout << b*c << std::endl;
|
||||
ASSERT_LT( cvtest::norm(b*c, i, CV_C), 0.1 );
|
||||
ASSERT_LT( cvtest::norm(b*c, i, NORM_INF), 0.1 );
|
||||
cv::invert(b, c, cv::DECOMP_CHOLESKY); //std::cout << b*c << std::endl;
|
||||
ASSERT_LT( cvtest::norm(b*c, i, CV_C), 0.1 );
|
||||
ASSERT_LT( cvtest::norm(b*c, i, NORM_INF), 0.1 );
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
#include "test_precomp.hpp"
|
||||
#include "opencv2/ts/ocl_test.hpp" // T-API like tests
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
namespace opencv_test {
|
||||
namespace {
|
||||
@@ -773,14 +774,14 @@ bool CV_OperationsTest::TestTemplateMat()
|
||||
mvf.push_back(Mat_<float>::zeros(4, 3));
|
||||
merge(mvf, mf2);
|
||||
split(mf2, mvf2);
|
||||
CV_Assert( cvtest::norm(mvf2[0], mvf[0], CV_C) == 0 &&
|
||||
cvtest::norm(mvf2[1], mvf[1], CV_C) == 0 );
|
||||
CV_Assert( cvtest::norm(mvf2[0], mvf[0], NORM_INF) == 0 &&
|
||||
cvtest::norm(mvf2[1], mvf[1], NORM_INF) == 0 );
|
||||
|
||||
{
|
||||
Mat a(2,2,CV_32F,1.f);
|
||||
Mat b(1,2,CV_32F,1.f);
|
||||
Mat c = (a*b.t()).t();
|
||||
CV_Assert( cvtest::norm(c, CV_L1) == 4. );
|
||||
CV_Assert( cvtest::norm(c, NORM_L1) == 4. );
|
||||
}
|
||||
|
||||
bool badarg_catched = false;
|
||||
@@ -1130,13 +1131,13 @@ bool CV_OperationsTest::operations1()
|
||||
Matx33f b(1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f);
|
||||
Mat c;
|
||||
cv::add(Mat::zeros(3, 3, CV_32F), b, c);
|
||||
CV_Assert( cvtest::norm(b, c, CV_C) == 0 );
|
||||
CV_Assert( cvtest::norm(b, c, NORM_INF) == 0 );
|
||||
|
||||
cv::add(Mat::zeros(3, 3, CV_64F), b, c, noArray(), c.type());
|
||||
CV_Assert( cvtest::norm(b, c, CV_C) == 0 );
|
||||
CV_Assert( cvtest::norm(b, c, NORM_INF) == 0 );
|
||||
|
||||
cv::add(Mat::zeros(6, 1, CV_64F), 1, c, noArray(), c.type());
|
||||
CV_Assert( cvtest::norm(Matx61f(1.f, 1.f, 1.f, 1.f, 1.f, 1.f), c, CV_C) == 0 );
|
||||
CV_Assert( cvtest::norm(Matx61f(1.f, 1.f, 1.f, 1.f, 1.f, 1.f), c, NORM_INF) == 0 );
|
||||
|
||||
vector<Point2f> pt2d(3);
|
||||
vector<Point3d> pt3d(2);
|
||||
@@ -1182,11 +1183,11 @@ bool CV_OperationsTest::TestSVD()
|
||||
Mat A = (Mat_<double>(3,4) << 1, 2, -1, 4, 2, 4, 3, 5, -1, -2, 6, 7);
|
||||
Mat x;
|
||||
SVD::solveZ(A,x);
|
||||
if( cvtest::norm(A*x, CV_C) > FLT_EPSILON )
|
||||
if( cvtest::norm(A*x, NORM_INF) > FLT_EPSILON )
|
||||
throw test_excep();
|
||||
|
||||
SVD svd(A, SVD::FULL_UV);
|
||||
if( cvtest::norm(A*svd.vt.row(3).t(), CV_C) > FLT_EPSILON )
|
||||
if( cvtest::norm(A*svd.vt.row(3).t(), NORM_INF) > FLT_EPSILON )
|
||||
throw test_excep();
|
||||
|
||||
Mat Dp(3,3,CV_32FC1);
|
||||
@@ -1210,11 +1211,11 @@ bool CV_OperationsTest::TestSVD()
|
||||
W=decomp.w;
|
||||
Mat I = Mat::eye(3, 3, CV_32F);
|
||||
|
||||
if( cvtest::norm(U*U.t(), I, CV_C) > FLT_EPSILON ||
|
||||
cvtest::norm(Vt*Vt.t(), I, CV_C) > FLT_EPSILON ||
|
||||
if( cvtest::norm(U*U.t(), I, NORM_INF) > FLT_EPSILON ||
|
||||
cvtest::norm(Vt*Vt.t(), I, NORM_INF) > FLT_EPSILON ||
|
||||
W.at<float>(2) < 0 || W.at<float>(1) < W.at<float>(2) ||
|
||||
W.at<float>(0) < W.at<float>(1) ||
|
||||
cvtest::norm(U*Mat::diag(W)*Vt, Q, CV_C) > FLT_EPSILON )
|
||||
cvtest::norm(U*Mat::diag(W)*Vt, Q, NORM_INF) > FLT_EPSILON )
|
||||
throw test_excep();
|
||||
}
|
||||
catch(const test_excep&)
|
||||
|
||||
@@ -48,7 +48,7 @@ bool Core_RandTest::check_pdf(const Mat& hist, double scale,
|
||||
sum += H[i];
|
||||
CV_Assert( fabs(1./sum - scale) < FLT_EPSILON );
|
||||
|
||||
if( dist_type == CV_RAND_UNI )
|
||||
if( dist_type == RNG::UNIFORM )
|
||||
{
|
||||
float scale0 = (float)(1./hsz);
|
||||
for( i = 0; i < hsz; i++ )
|
||||
@@ -79,7 +79,7 @@ bool Core_RandTest::check_pdf(const Mat& hist, double scale,
|
||||
}
|
||||
realval = chi2;
|
||||
|
||||
double chi2_pval = chi2_p95(hsz - 1 - (dist_type == CV_RAND_NORMAL ? 2 : 0));
|
||||
double chi2_pval = chi2_p95(hsz - 1 - (dist_type == RNG::NORMAL ? 2 : 0));
|
||||
refval = chi2_pval*0.01;
|
||||
return realval <= refval;
|
||||
}
|
||||
@@ -108,7 +108,7 @@ void Core_RandTest::run( int )
|
||||
int depth = cvtest::randInt(rng) % (CV_64F+1);
|
||||
int c, cn = (cvtest::randInt(rng) % 4) + 1;
|
||||
int type = CV_MAKETYPE(depth, cn);
|
||||
int dist_type = cvtest::randInt(rng) % (CV_RAND_NORMAL+1);
|
||||
int dist_type = cvtest::randInt(rng) % (RNG::NORMAL+1);
|
||||
int i, k, SZ = N/cn;
|
||||
Scalar A, B;
|
||||
|
||||
@@ -116,18 +116,18 @@ void Core_RandTest::run( int )
|
||||
if (depth == CV_64F)
|
||||
eps = 1.e-7;
|
||||
|
||||
bool do_sphere_test = dist_type == CV_RAND_UNI;
|
||||
bool do_sphere_test = dist_type == RNG::UNIFORM;
|
||||
Mat arr[2], hist[4];
|
||||
int W[] = {0,0,0,0};
|
||||
|
||||
arr[0].create(1, SZ, type);
|
||||
arr[1].create(1, SZ, type);
|
||||
bool fast_algo = dist_type == CV_RAND_UNI && depth < CV_32F;
|
||||
bool fast_algo = dist_type == RNG::UNIFORM && depth < CV_32F;
|
||||
|
||||
for( c = 0; c < cn; c++ )
|
||||
{
|
||||
int a, b, hsz;
|
||||
if( dist_type == CV_RAND_UNI )
|
||||
if( dist_type == RNG::UNIFORM )
|
||||
{
|
||||
a = (int)(cvtest::randInt(rng) % (_ranges[depth][1] -
|
||||
_ranges[depth][0])) + _ranges[depth][0];
|
||||
@@ -188,8 +188,8 @@ void Core_RandTest::run( int )
|
||||
const uchar* data = arr[0].ptr();
|
||||
int* H = hist[c].ptr<int>();
|
||||
int HSZ = hist[c].cols;
|
||||
double minVal = dist_type == CV_RAND_UNI ? A[c] : A[c] - B[c]*4;
|
||||
double maxVal = dist_type == CV_RAND_UNI ? B[c] : A[c] + B[c]*4;
|
||||
double minVal = dist_type == RNG::UNIFORM ? A[c] : A[c] - B[c]*4;
|
||||
double maxVal = dist_type == RNG::UNIFORM ? B[c] : A[c] + B[c]*4;
|
||||
double scale = HSZ/(maxVal - minVal);
|
||||
double delta = -minVal*scale;
|
||||
|
||||
@@ -210,7 +210,7 @@ void Core_RandTest::run( int )
|
||||
H[ival]++;
|
||||
W[c]++;
|
||||
}
|
||||
else if( dist_type == CV_RAND_UNI )
|
||||
else if( dist_type == RNG::UNIFORM )
|
||||
{
|
||||
if( (minVal <= val && val < maxVal) || (depth >= CV_32F && val == maxVal) )
|
||||
{
|
||||
@@ -224,14 +224,14 @@ void Core_RandTest::run( int )
|
||||
}
|
||||
}
|
||||
|
||||
if( dist_type == CV_RAND_UNI && W[c] != SZ )
|
||||
if( dist_type == RNG::UNIFORM && W[c] != SZ )
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "Uniform RNG gave values out of the range [%g,%g) on channel %d/%d\n",
|
||||
A[c], B[c], c, cn);
|
||||
ts->set_failed_test_info( cvtest::TS::FAIL_INVALID_OUTPUT );
|
||||
return;
|
||||
}
|
||||
if( dist_type == CV_RAND_NORMAL && W[c] < SZ*.90)
|
||||
if( dist_type == RNG::NORMAL && W[c] < SZ*.90)
|
||||
{
|
||||
ts->printf( cvtest::TS::LOG, "Normal RNG gave too many values out of the range (%g+4*%g,%g+4*%g) on channel %d/%d\n",
|
||||
A[c], B[c], A[c], B[c], c, cn);
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
|
||||
#include "test_precomp.hpp"
|
||||
#include "opencv2/ts/ocl_test.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
|
||||
using namespace opencv_test;
|
||||
using namespace testing;
|
||||
|
||||
Reference in New Issue
Block a user