mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
don't use constructors for C API structures
This commit is contained in:
@@ -3064,7 +3064,7 @@ template<typename _Tp> inline void Seq<_Tp>::copyTo(std::vector<_Tp>& vec, const
|
||||
size_t len = !seq ? 0 : range == Range::all() ? seq->total : range.end - range.start;
|
||||
vec.resize(len);
|
||||
if( seq && len )
|
||||
cvCvtSeqToArray(seq, &vec[0], range);
|
||||
cvCvtSeqToArray(seq, &vec[0], cvSlice(range));
|
||||
}
|
||||
|
||||
template<typename _Tp> inline Seq<_Tp>::operator std::vector<_Tp>() const
|
||||
|
||||
@@ -44,7 +44,9 @@
|
||||
#ifndef OPENCV_CORE_TYPES_H
|
||||
#define OPENCV_CORE_TYPES_H
|
||||
|
||||
#if !defined(__OPENCV_BUILD) && !defined(CV__DISABLE_C_API_CTORS)
|
||||
#define CV__ENABLE_C_API_CTORS // enable C API ctors (must be removed)
|
||||
#endif
|
||||
|
||||
//#define CV__VALIDATE_UNUNITIALIZED_VARS 1 // C++11 & GCC only
|
||||
|
||||
|
||||
@@ -1017,7 +1017,7 @@ cvGetRawData( const CvArr* arr, uchar** data, int* step, CvSize* roi_size )
|
||||
*data = mat->data.ptr;
|
||||
|
||||
if( roi_size )
|
||||
*roi_size = cvGetMatSize( mat );
|
||||
*roi_size = cvSize(cvGetMatSize( mat ));
|
||||
}
|
||||
else if( CV_IS_IMAGE( arr ))
|
||||
{
|
||||
@@ -1218,7 +1218,7 @@ cvGetDimSize( const CvArr* arr, int index )
|
||||
CV_IMPL CvSize
|
||||
cvGetSize( const CvArr* arr )
|
||||
{
|
||||
CvSize size;
|
||||
CvSize size = {0, 0};
|
||||
|
||||
if( CV_IS_MAT_HDR_Z( arr ))
|
||||
{
|
||||
@@ -1918,7 +1918,7 @@ cvPtrND( const CvArr* arr, const int* idx, int* _type,
|
||||
CV_IMPL CvScalar
|
||||
cvGet1D( const CvArr* arr, int idx )
|
||||
{
|
||||
CvScalar scalar(0);
|
||||
CvScalar scalar = cvScalar();
|
||||
int type = 0;
|
||||
uchar* ptr;
|
||||
|
||||
@@ -1953,7 +1953,7 @@ cvGet1D( const CvArr* arr, int idx )
|
||||
CV_IMPL CvScalar
|
||||
cvGet2D( const CvArr* arr, int y, int x )
|
||||
{
|
||||
CvScalar scalar(0);
|
||||
CvScalar scalar = cvScalar();
|
||||
int type = 0;
|
||||
uchar* ptr;
|
||||
|
||||
@@ -1987,7 +1987,7 @@ cvGet2D( const CvArr* arr, int y, int x )
|
||||
CV_IMPL CvScalar
|
||||
cvGet3D( const CvArr* arr, int z, int y, int x )
|
||||
{
|
||||
CvScalar scalar(0);
|
||||
CvScalar scalar = cvScalar();
|
||||
int type = 0;
|
||||
uchar* ptr;
|
||||
|
||||
@@ -2009,7 +2009,7 @@ cvGet3D( const CvArr* arr, int z, int y, int x )
|
||||
CV_IMPL CvScalar
|
||||
cvGetND( const CvArr* arr, const int* idx )
|
||||
{
|
||||
CvScalar scalar(0);
|
||||
CvScalar scalar = cvScalar();
|
||||
int type = 0;
|
||||
uchar* ptr;
|
||||
|
||||
@@ -2916,15 +2916,7 @@ cvInitImageHeader( IplImage * image, CvSize size, int depth,
|
||||
if( !image )
|
||||
CV_Error( CV_HeaderIsNull, "null pointer to header" );
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 8
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wclass-memaccess"
|
||||
#endif
|
||||
memset( image, 0, sizeof( *image ));
|
||||
#if defined __GNUC__ && __GNUC__ >= 8
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
image->nSize = sizeof( *image );
|
||||
*image = cvIplImage();
|
||||
|
||||
icvGetColorModel( channels, &colorModel, &channelSeq );
|
||||
for (int i = 0; i < 4; i++)
|
||||
@@ -3081,7 +3073,7 @@ cvResetImageROI( IplImage* image )
|
||||
CV_IMPL CvRect
|
||||
cvGetImageROI( const IplImage* img )
|
||||
{
|
||||
CvRect rect;
|
||||
CvRect rect = {0, 0, 0, 0};
|
||||
if( !img )
|
||||
CV_Error( CV_StsNullPtr, "Null pointer to image" );
|
||||
|
||||
|
||||
@@ -226,7 +226,7 @@ CV_IMPL void cvSetIdentity( CvArr* arr, CvScalar value )
|
||||
|
||||
CV_IMPL CvScalar cvTrace( const CvArr* arr )
|
||||
{
|
||||
return cv::trace(cv::cvarrToMat(arr));
|
||||
return cvScalar(cv::trace(cv::cvarrToMat(arr)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -452,12 +452,12 @@ void write( FileStorage& fs, const String& name, const Mat& value )
|
||||
{
|
||||
if( value.dims <= 2 )
|
||||
{
|
||||
CvMat mat = value;
|
||||
CvMat mat = cvMat(value);
|
||||
cvWrite( *fs, name.size() ? name.c_str() : 0, &mat );
|
||||
}
|
||||
else
|
||||
{
|
||||
CvMatND mat = value;
|
||||
CvMatND mat = cvMatND(value);
|
||||
cvWrite( *fs, name.size() ? name.c_str() : 0, &mat );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ static void icvWriteMat( CvFileStorage* fs, const char* name, const void* struct
|
||||
{
|
||||
const CvMat* mat = (const CvMat*)struct_ptr;
|
||||
char dt[16];
|
||||
CvSize size;
|
||||
cv::Size size;
|
||||
int y;
|
||||
|
||||
assert( CV_IS_MAT_HDR_Z(mat) );
|
||||
@@ -380,7 +380,7 @@ static void icvWriteImage( CvFileStorage* fs, const char* name, const void* stru
|
||||
{
|
||||
const IplImage* image = (const IplImage*)struct_ptr;
|
||||
char dt_buf[16], *dt;
|
||||
CvSize size;
|
||||
cv::Size size;
|
||||
int y, depth;
|
||||
|
||||
assert( CV_IS_IMAGE(image) );
|
||||
@@ -435,7 +435,7 @@ static void* icvReadImage( CvFileStorage* fs, CvFileNode* node )
|
||||
CvFileNode* data;
|
||||
CvFileNode* roi_node;
|
||||
CvSeqReader reader;
|
||||
CvRect roi;
|
||||
cv::Rect roi;
|
||||
int y, width, height, elem_type, coi, depth;
|
||||
const char* origin, *data_order;
|
||||
|
||||
@@ -472,7 +472,7 @@ static void* icvReadImage( CvFileStorage* fs, CvFileNode* node )
|
||||
roi.height = cvReadIntByName( fs, roi_node, "height", 0 );
|
||||
coi = cvReadIntByName( fs, roi_node, "coi", 0 );
|
||||
|
||||
cvSetImageROI( image, roi );
|
||||
cvSetImageROI( image, cvRect(roi) );
|
||||
cvSetImageCOI( image, coi );
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ CV_IMPL CvScalar cvSum( const CvArr* srcarr )
|
||||
sum = cv::Scalar(sum[coi-1]);
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
return cvScalar(sum);
|
||||
}
|
||||
|
||||
CV_IMPL int cvCountNonZero( const CvArr* imgarr )
|
||||
@@ -43,7 +43,7 @@ cvAvg( const void* imgarr, const void* maskarr )
|
||||
mean = cv::Scalar(mean[coi-1]);
|
||||
}
|
||||
}
|
||||
return mean;
|
||||
return cvScalar(mean);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -214,7 +214,7 @@ protected:
|
||||
}
|
||||
|
||||
CvMat* m = (CvMat*)fs["test_mat"].readObj();
|
||||
CvMat _test_mat = test_mat;
|
||||
CvMat _test_mat = cvMat(test_mat);
|
||||
double max_diff = 0;
|
||||
CvMat stub1, _test_stub1;
|
||||
cvReshape(m, &stub1, 1, 0);
|
||||
@@ -234,7 +234,7 @@ protected:
|
||||
cvReleaseMat(&m);
|
||||
|
||||
CvMatND* m_nd = (CvMatND*)fs["test_mat_nd"].readObj();
|
||||
CvMatND _test_mat_nd = test_mat_nd;
|
||||
CvMatND _test_mat_nd = cvMatND(test_mat_nd);
|
||||
|
||||
if( !m_nd || !CV_IS_MATND(m_nd) )
|
||||
{
|
||||
@@ -263,7 +263,7 @@ protected:
|
||||
|
||||
MatND mat_nd2;
|
||||
fs["test_mat_nd"] >> mat_nd2;
|
||||
CvMatND m_nd2 = mat_nd2;
|
||||
CvMatND m_nd2 = cvMatND(mat_nd2);
|
||||
cvGetMat(&m_nd2, &stub, 0, 1);
|
||||
cvReshape(&stub, &stub1, 1, 0);
|
||||
|
||||
|
||||
@@ -415,15 +415,15 @@ TEST(Core_PCA, accuracy)
|
||||
|
||||
#ifdef CHECK_C
|
||||
// 4. check C PCA & ROW
|
||||
_points = rPoints;
|
||||
_testPoints = rTestPoints;
|
||||
_avg = avg;
|
||||
_eval = eval;
|
||||
_evec = evec;
|
||||
_points = cvMat(rPoints);
|
||||
_testPoints = cvMat(rTestPoints);
|
||||
_avg = cvMat(avg);
|
||||
_eval = cvMat(eval);
|
||||
_evec = cvMat(evec);
|
||||
prjTestPoints.create(rTestPoints.rows, maxComponents, rTestPoints.type() );
|
||||
backPrjTestPoints.create(rPoints.size(), rPoints.type() );
|
||||
_prjTestPoints = prjTestPoints;
|
||||
_backPrjTestPoints = backPrjTestPoints;
|
||||
_prjTestPoints = cvMat(prjTestPoints);
|
||||
_backPrjTestPoints = cvMat(backPrjTestPoints);
|
||||
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, CV_PCA_DATA_AS_ROW );
|
||||
cvProjectPCA( &_testPoints, &_avg, &_evec, &_prjTestPoints );
|
||||
@@ -435,13 +435,13 @@ TEST(Core_PCA, accuracy)
|
||||
ASSERT_LE(err, diffBackPrjEps) << "bad accuracy of cvBackProjectPCA() (CV_PCA_DATA_AS_ROW)";
|
||||
|
||||
// 5. check C PCA & COL
|
||||
_points = cPoints;
|
||||
_testPoints = cTestPoints;
|
||||
avg = avg.t(); _avg = avg;
|
||||
eval = eval.t(); _eval = eval;
|
||||
evec = evec.t(); _evec = evec;
|
||||
prjTestPoints = prjTestPoints.t(); _prjTestPoints = prjTestPoints;
|
||||
backPrjTestPoints = backPrjTestPoints.t(); _backPrjTestPoints = backPrjTestPoints;
|
||||
_points = cvMat(cPoints);
|
||||
_testPoints = cvMat(cTestPoints);
|
||||
avg = avg.t(); _avg = cvMat(avg);
|
||||
eval = eval.t(); _eval = cvMat(eval);
|
||||
evec = evec.t(); _evec = cvMat(evec);
|
||||
prjTestPoints = prjTestPoints.t(); _prjTestPoints = cvMat(prjTestPoints);
|
||||
backPrjTestPoints = backPrjTestPoints.t(); _backPrjTestPoints = cvMat(backPrjTestPoints);
|
||||
|
||||
cvCalcPCA( &_points, &_avg, &_eval, &_evec, CV_PCA_DATA_AS_COL );
|
||||
cvProjectPCA( &_testPoints, &_avg, &_evec, &_prjTestPoints );
|
||||
@@ -615,7 +615,7 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
{
|
||||
int sz3[] = {5, 10, 15};
|
||||
MatND A(3, sz3, CV_32F), B(3, sz3, CV_16SC4);
|
||||
CvMatND matA = A, matB = B;
|
||||
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));
|
||||
@@ -625,8 +625,8 @@ void Core_ArrayOpTest::run( int /* start_from */)
|
||||
Scalar val1(-1000, 30, 3, 8);
|
||||
cvSetRealND(&matA, idx0, val0);
|
||||
cvSetReal3D(&matA, idx1[0], idx1[1], idx1[2], -val0);
|
||||
cvSetND(&matB, idx0, val1);
|
||||
cvSet3D(&matB, idx1[0], idx1[1], idx1[2], -val1);
|
||||
cvSetND(&matB, idx0, cvScalar(val1));
|
||||
cvSet3D(&matB, idx1[0], idx1[1], idx1[2], cvScalar(-val1));
|
||||
Ptr<CvMatND> matC(cvCloneMatND(&matB));
|
||||
|
||||
if( A.at<float>(idx0[0], idx0[1], idx0[2]) != val0 ||
|
||||
|
||||
@@ -526,7 +526,7 @@ void Core_CrossProductTest::get_test_array_types_and_sizes( int,
|
||||
RNG& rng = ts->get_rng();
|
||||
int depth = cvtest::randInt(rng) % 2 + CV_32F;
|
||||
int cn = cvtest::randInt(rng) & 1 ? 3 : 1, type = CV_MAKETYPE(depth, cn);
|
||||
CvSize sz;
|
||||
Size sz;
|
||||
|
||||
types[INPUT][0] = types[INPUT][1] = types[OUTPUT][0] = types[REF_OUTPUT][0] = type;
|
||||
|
||||
@@ -549,7 +549,7 @@ void Core_CrossProductTest::run_func()
|
||||
|
||||
void Core_CrossProductTest::prepare_to_validation( int )
|
||||
{
|
||||
CvScalar a(0), b(0), c(0);
|
||||
cv::Scalar a, b, c;
|
||||
|
||||
if( test_mat[INPUT][0].rows > 1 )
|
||||
{
|
||||
@@ -595,7 +595,7 @@ void Core_CrossProductTest::prepare_to_validation( int )
|
||||
}
|
||||
else
|
||||
{
|
||||
cvSet1D( test_array[REF_OUTPUT][0], 0, c );
|
||||
cvSet1D( test_array[REF_OUTPUT][0], 0, cvScalar(c) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -896,7 +896,7 @@ double Core_TransformTest::get_success_error_level( int test_case_idx, int i, in
|
||||
|
||||
void Core_TransformTest::run_func()
|
||||
{
|
||||
CvMat _m = test_mat[INPUT][1], _shift = test_mat[INPUT][2];
|
||||
CvMat _m = cvMat(test_mat[INPUT][1]), _shift = cvMat(test_mat[INPUT][2]);
|
||||
cvTransform( test_array[INPUT][0], test_array[OUTPUT][0], &_m, _shift.data.ptr ? &_shift : 0);
|
||||
}
|
||||
|
||||
@@ -1010,7 +1010,7 @@ double Core_PerspectiveTransformTest::get_success_error_level( int test_case_idx
|
||||
|
||||
void Core_PerspectiveTransformTest::run_func()
|
||||
{
|
||||
CvMat _m = test_mat[INPUT][1];
|
||||
CvMat _m = cvMat(test_mat[INPUT][1]);
|
||||
cvPerspectiveTransform( test_array[INPUT][0], test_array[OUTPUT][0], &_m );
|
||||
}
|
||||
|
||||
@@ -1117,7 +1117,7 @@ static void cvTsPerspectiveTransform( const CvArr* _src, CvArr* _dst, const CvMa
|
||||
|
||||
void Core_PerspectiveTransformTest::prepare_to_validation( int )
|
||||
{
|
||||
CvMat transmat = test_mat[INPUT][1];
|
||||
CvMat transmat = cvMat(test_mat[INPUT][1]);
|
||||
cvTsPerspectiveTransform( test_array[INPUT][0], test_array[REF_OUTPUT][0], &transmat );
|
||||
}
|
||||
|
||||
@@ -1287,9 +1287,9 @@ int Core_CovarMatrixTest::prepare_test_case( int test_case_idx )
|
||||
if( single_matrix )
|
||||
{
|
||||
if( !are_images )
|
||||
*((CvMat*)_hdr_data) = test_mat[INPUT][0];
|
||||
*((CvMat*)_hdr_data) = cvMat(test_mat[INPUT][0]);
|
||||
else
|
||||
*((IplImage*)_hdr_data) = test_mat[INPUT][0];
|
||||
*((IplImage*)_hdr_data) = cvIplImage(test_mat[INPUT][0]);
|
||||
temp_hdrs[0] = _hdr_data;
|
||||
}
|
||||
else
|
||||
@@ -1304,9 +1304,9 @@ int Core_CovarMatrixTest::prepare_test_case( int test_case_idx )
|
||||
part = test_mat[INPUT][0].col(i);
|
||||
|
||||
if( !are_images )
|
||||
*((CvMat*)ptr) = part;
|
||||
*((CvMat*)ptr) = cvMat(part);
|
||||
else
|
||||
*((IplImage*)ptr) = part;
|
||||
*((IplImage*)ptr) = cvIplImage(part);
|
||||
|
||||
temp_hdrs[i] = ptr;
|
||||
}
|
||||
@@ -1539,7 +1539,7 @@ static double cvTsLU( CvMat* a, CvMat* b=NULL, CvMat* x=NULL, int* rank=0 )
|
||||
void Core_DetTest::prepare_to_validation( int )
|
||||
{
|
||||
test_mat[INPUT][0].convertTo(test_mat[TEMP][0], test_mat[TEMP][0].type());
|
||||
CvMat temp0 = test_mat[TEMP][0];
|
||||
CvMat temp0 = cvMat(test_mat[TEMP][0]);
|
||||
test_mat[REF_OUTPUT][0].at<Scalar>(0,0) = cvRealScalar(cvTsLU(&temp0, 0, 0));
|
||||
}
|
||||
|
||||
@@ -1676,7 +1676,7 @@ void Core_InvertTest::prepare_to_validation( int )
|
||||
Mat& temp1 = test_mat[TEMP][1];
|
||||
Mat& dst0 = test_mat[REF_OUTPUT][0];
|
||||
Mat& dst = test_mat[OUTPUT][0];
|
||||
CvMat _input = input;
|
||||
CvMat _input = cvMat(input);
|
||||
double ratio = 0, det = cvTsSVDet( &_input, &ratio );
|
||||
double threshold = (input.depth() == CV_32F ? FLT_EPSILON : DBL_EPSILON)*1000;
|
||||
|
||||
@@ -1733,7 +1733,7 @@ void Core_SolveTest::get_test_array_types_and_sizes( int test_case_idx, vector<v
|
||||
RNG& rng = ts->get_rng();
|
||||
int bits = cvtest::randInt(rng);
|
||||
Base::get_test_array_types_and_sizes( test_case_idx, sizes, types );
|
||||
CvSize in_sz = sizes[INPUT][0];
|
||||
CvSize in_sz = cvSize(sizes[INPUT][0]);
|
||||
if( in_sz.width > in_sz.height )
|
||||
in_sz = cvSize(in_sz.height, in_sz.width);
|
||||
Base::get_test_array_types_and_sizes( test_case_idx, sizes, types );
|
||||
@@ -1813,14 +1813,14 @@ void Core_SolveTest::prepare_to_validation( int )
|
||||
Mat& temp1 = test_mat[TEMP][1];
|
||||
cvtest::convert(input, temp1, temp1.type());
|
||||
dst = Scalar::all(0);
|
||||
CvMat _temp1 = temp1;
|
||||
CvMat _temp1 = cvMat(temp1);
|
||||
double det = cvTsLU( &_temp1, 0, 0 );
|
||||
dst0 = Scalar::all(det != 0);
|
||||
return;
|
||||
}
|
||||
|
||||
double threshold = (input.type() == CV_32F ? FLT_EPSILON : DBL_EPSILON)*1000;
|
||||
CvMat _input = input;
|
||||
CvMat _input = cvMat(input);
|
||||
double ratio = 0, det = cvTsSVDet( &_input, &ratio );
|
||||
if( det < threshold || ratio < threshold )
|
||||
{
|
||||
@@ -2105,7 +2105,7 @@ void Core_SVBkSbTest::get_test_array_types_and_sizes( int test_case_idx, vector<
|
||||
int bits = cvtest::randInt(rng);
|
||||
Base::get_test_array_types_and_sizes( test_case_idx, sizes, types );
|
||||
int min_size, i, m, n;
|
||||
CvSize b_size;
|
||||
cv::Size b_size;
|
||||
|
||||
min_size = MIN( sizes[INPUT][0].width, sizes[INPUT][0].height );
|
||||
|
||||
@@ -2122,7 +2122,7 @@ void Core_SVBkSbTest::get_test_array_types_and_sizes( int test_case_idx, vector<
|
||||
n = sizes[INPUT][0].width;
|
||||
|
||||
sizes[INPUT][1] = Size(0,0);
|
||||
b_size = Size(m,m);
|
||||
b_size = cvSize(m, m);
|
||||
if( have_b )
|
||||
{
|
||||
sizes[INPUT][1].height = sizes[INPUT][0].height;
|
||||
@@ -2174,7 +2174,7 @@ int Core_SVBkSbTest::prepare_test_case( int test_case_idx )
|
||||
cvtest::copy( temp, input );
|
||||
}
|
||||
|
||||
CvMat _input = input;
|
||||
CvMat _input = cvMat(input);
|
||||
cvSVD( &_input, test_array[TEMP][0], test_array[TEMP][1], test_array[TEMP][2], flags );
|
||||
}
|
||||
|
||||
@@ -2210,7 +2210,7 @@ void Core_SVBkSbTest::prepare_to_validation( int )
|
||||
Size w_size = compact ? Size(min_size,min_size) : Size(m,n);
|
||||
Mat& w = test_mat[TEMP][0];
|
||||
Mat wdb( w_size.height, w_size.width, CV_64FC1 );
|
||||
CvMat _w = w, _wdb = wdb;
|
||||
CvMat _w = cvMat(w), _wdb = cvMat(wdb);
|
||||
// use exactly the same threshold as in icvSVD... ,
|
||||
// so the changes in the library and here should be synchronized.
|
||||
double threshold = cv::sum(w)[0]*(DBL_EPSILON*2);//(is_float ? FLT_EPSILON*10 : DBL_EPSILON*2);
|
||||
|
||||
@@ -970,7 +970,7 @@ bool CV_OperationsTest::operations1()
|
||||
Size sz(10, 20);
|
||||
if (sz.area() != 200) throw test_excep();
|
||||
if (sz.width != 10 || sz.height != 20) throw test_excep();
|
||||
if (((CvSize)sz).width != 10 || ((CvSize)sz).height != 20) throw test_excep();
|
||||
if (cvSize(sz).width != 10 || cvSize(sz).height != 20) throw test_excep();
|
||||
|
||||
Vec<double, 5> v5d(1, 1, 1, 1, 1);
|
||||
Vec<double, 6> v6d(1, 1, 1, 1, 1, 1);
|
||||
|
||||
Reference in New Issue
Block a user