mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 23:33:05 +04:00
don't use constructors for C API structures
This commit is contained in:
@@ -49,7 +49,7 @@
|
||||
(deltas)[6] = (step), (deltas)[7] = (step) + (nch))
|
||||
|
||||
static const CvPoint icvCodeDeltas[8] =
|
||||
{ CvPoint(1, 0), CvPoint(1, -1), CvPoint(0, -1), CvPoint(-1, -1), CvPoint(-1, 0), CvPoint(-1, 1), CvPoint(0, 1), CvPoint(1, 1) };
|
||||
{ {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1} };
|
||||
|
||||
CV_IMPL void
|
||||
cvStartReadChainPoints( CvChain * chain, CvChainPtReader * reader )
|
||||
@@ -77,19 +77,15 @@ cvStartReadChainPoints( CvChain * chain, CvChainPtReader * reader )
|
||||
CV_IMPL CvPoint
|
||||
cvReadChainPoint( CvChainPtReader * reader )
|
||||
{
|
||||
schar *ptr;
|
||||
int code;
|
||||
CvPoint pt;
|
||||
|
||||
if( !reader )
|
||||
CV_Error( CV_StsNullPtr, "" );
|
||||
|
||||
pt = reader->pt;
|
||||
cv::Point2i pt = reader->pt;
|
||||
|
||||
ptr = reader->ptr;
|
||||
if( ptr )
|
||||
schar *ptr = reader->ptr;
|
||||
if (ptr)
|
||||
{
|
||||
code = *ptr++;
|
||||
int code = *ptr++;
|
||||
|
||||
if( ptr >= reader->block_max )
|
||||
{
|
||||
@@ -104,7 +100,7 @@ cvReadChainPoint( CvChainPtReader * reader )
|
||||
reader->pt.y = pt.y + icvCodeDeltas[code].y;
|
||||
}
|
||||
|
||||
return pt;
|
||||
return cvPoint(pt);
|
||||
}
|
||||
|
||||
|
||||
@@ -209,14 +205,7 @@ cvStartFindContours_Impl( void* _img, CvMemStorage* storage,
|
||||
CV_Error( CV_StsBadSize, "" );
|
||||
|
||||
CvContourScanner scanner = (CvContourScanner)cvAlloc( sizeof( *scanner ));
|
||||
#if defined __GNUC__ && __GNUC__ >= 8
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wclass-memaccess"
|
||||
#endif
|
||||
memset( scanner, 0, sizeof(*scanner) );
|
||||
#if defined __GNUC__ && __GNUC__ >= 8
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
scanner->storage1 = scanner->storage2 = storage;
|
||||
scanner->img0 = (schar *) img;
|
||||
@@ -700,7 +689,7 @@ icvFetchContourEx( schar* ptr,
|
||||
int deltas[MAX_SIZE];
|
||||
CvSeqWriter writer;
|
||||
schar *i0 = ptr, *i1, *i3, *i4 = NULL;
|
||||
CvRect rect;
|
||||
cv::Rect rect;
|
||||
int prev_s = -1, s, s_end;
|
||||
int method = _method - 1;
|
||||
|
||||
@@ -810,14 +799,14 @@ icvFetchContourEx( schar* ptr,
|
||||
cvEndWriteSeq( &writer );
|
||||
|
||||
if( _method != CV_CHAIN_CODE )
|
||||
((CvContour*)contour)->rect = rect;
|
||||
((CvContour*)contour)->rect = cvRect(rect);
|
||||
|
||||
CV_DbgAssert( (writer.seq->total == 0 && writer.seq->first == 0) ||
|
||||
writer.seq->total > writer.seq->first->count ||
|
||||
(writer.seq->first->prev == writer.seq->first &&
|
||||
writer.seq->first->next == writer.seq->first) );
|
||||
|
||||
if( _rect ) *_rect = rect;
|
||||
if( _rect ) *_rect = cvRect(rect);
|
||||
}
|
||||
|
||||
|
||||
@@ -888,7 +877,7 @@ icvFetchContourEx_32s( int* ptr,
|
||||
int deltas[MAX_SIZE];
|
||||
CvSeqWriter writer;
|
||||
int *i0 = ptr, *i1, *i3, *i4;
|
||||
CvRect rect;
|
||||
cv::Rect rect;
|
||||
int prev_s = -1, s, s_end;
|
||||
int method = _method - 1;
|
||||
const int right_flag = INT_MIN;
|
||||
@@ -1000,14 +989,14 @@ icvFetchContourEx_32s( int* ptr,
|
||||
cvEndWriteSeq( &writer );
|
||||
|
||||
if( _method != CV_CHAIN_CODE )
|
||||
((CvContour*)contour)->rect = rect;
|
||||
((CvContour*)contour)->rect = cvRect(rect);
|
||||
|
||||
CV_DbgAssert( (writer.seq->total == 0 && writer.seq->first == 0) ||
|
||||
writer.seq->total > writer.seq->first->count ||
|
||||
(writer.seq->first->prev == writer.seq->first &&
|
||||
writer.seq->first->next == writer.seq->first) );
|
||||
|
||||
if( _rect ) *_rect = rect;
|
||||
if (_rect) *_rect = cvRect(rect);
|
||||
}
|
||||
|
||||
|
||||
@@ -1035,7 +1024,7 @@ cvFindNextContour( CvContourScanner scanner )
|
||||
int width = scanner->img_size.width;
|
||||
int height = scanner->img_size.height;
|
||||
int mode = scanner->mode;
|
||||
CvPoint lnbd = scanner->lnbd;
|
||||
cv::Point2i lnbd = scanner->lnbd;
|
||||
int nbd = scanner->nbd;
|
||||
int prev = img[x - 1];
|
||||
int new_mask = -2;
|
||||
@@ -1125,7 +1114,7 @@ cvFindNextContour( CvContourScanner scanner )
|
||||
_CvContourInfo *par_info = 0;
|
||||
CvSeq *seq = 0;
|
||||
int is_hole = 0;
|
||||
CvPoint origin;
|
||||
cv::Point2i origin;
|
||||
|
||||
/* if not external contour */
|
||||
if( (!img_i && !(prev == 0 && p == 1)) ||
|
||||
@@ -1259,7 +1248,7 @@ cvFindNextContour( CvContourScanner scanner )
|
||||
|
||||
l_cinfo->is_hole = is_hole;
|
||||
l_cinfo->contour = seq;
|
||||
l_cinfo->origin = origin;
|
||||
l_cinfo->origin = cvPoint(origin);
|
||||
l_cinfo->parent = par_info;
|
||||
|
||||
if( scanner->approx_method1 != scanner->approx_method2 )
|
||||
@@ -1292,7 +1281,7 @@ cvFindNextContour( CvContourScanner scanner )
|
||||
scanner->l_cinfo = l_cinfo;
|
||||
scanner->pt.x = !img_i ? x + 1 : x + 1 - is_hole;
|
||||
scanner->pt.y = y;
|
||||
scanner->lnbd = lnbd;
|
||||
scanner->lnbd = cvPoint(lnbd);
|
||||
scanner->img = (schar *) img;
|
||||
scanner->nbd = nbd;
|
||||
return l_cinfo->contour;
|
||||
@@ -1480,7 +1469,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
|
||||
uchar* src_data = 0;
|
||||
int img_step = 0;
|
||||
CvSize img_size;
|
||||
cv::Size img_size;
|
||||
|
||||
int connect_flag;
|
||||
int lower_total;
|
||||
@@ -1529,7 +1518,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
CV_Error( CV_StsBadArg, "Input array must be 8uC1 or 8sC1" );
|
||||
src_data = mat->data.ptr;
|
||||
img_step = mat->step;
|
||||
img_size = cvGetMatSize( mat );
|
||||
img_size = cvGetMatSize(mat);
|
||||
|
||||
// Create temporary sequences
|
||||
runs = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvLinkedRunPoint), storage00 );
|
||||
@@ -1550,7 +1539,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
tmp_prev = upper_line;
|
||||
for( j = 0; j < img_size.width; )
|
||||
{
|
||||
j = findStartContourPoint(src_data, img_size, j, haveSIMD);
|
||||
j = findStartContourPoint(src_data, cvSize(img_size), j, haveSIMD);
|
||||
|
||||
if( j == img_size.width )
|
||||
break;
|
||||
@@ -1560,7 +1549,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
tmp_prev->next = (CvLinkedRunPoint*)CV_GET_WRITTEN_ELEM( writer );
|
||||
tmp_prev = tmp_prev->next;
|
||||
|
||||
j = findEndContourPoint(src_data, img_size, j + 1, haveSIMD);
|
||||
j = findEndContourPoint(src_data, cvSize(img_size), j + 1, haveSIMD);
|
||||
|
||||
tmp.pt.x = j - 1;
|
||||
CV_WRITE_SEQ_ELEM( tmp, writer );
|
||||
@@ -1584,7 +1573,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
all_total = runs->total;
|
||||
for( j = 0; j < img_size.width; )
|
||||
{
|
||||
j = findStartContourPoint(src_data, img_size, j, haveSIMD);
|
||||
j = findStartContourPoint(src_data, cvSize(img_size), j, haveSIMD);
|
||||
|
||||
if( j == img_size.width ) break;
|
||||
|
||||
@@ -1593,7 +1582,7 @@ icvFindContoursInInterval( const CvArr* src,
|
||||
tmp_prev->next = (CvLinkedRunPoint*)CV_GET_WRITTEN_ELEM( writer );
|
||||
tmp_prev = tmp_prev->next;
|
||||
|
||||
j = findEndContourPoint(src_data, img_size, j + 1, haveSIMD);
|
||||
j = findEndContourPoint(src_data, cvSize(img_size), j + 1, haveSIMD);
|
||||
|
||||
tmp.pt.x = j - 1;
|
||||
CV_WRITE_SEQ_ELEM( tmp, writer );
|
||||
@@ -1908,11 +1897,11 @@ void cv::findContours( InputOutputArray _image, OutputArrayOfArrays _contours,
|
||||
image = image0;
|
||||
}
|
||||
MemStorage storage(cvCreateMemStorage());
|
||||
CvMat _cimage = image;
|
||||
CvMat _cimage = cvMat(image);
|
||||
CvSeq* _ccontours = 0;
|
||||
if( _hierarchy.needed() )
|
||||
_hierarchy.clear();
|
||||
cvFindContours_Impl(&_cimage, storage, &_ccontours, sizeof(CvContour), mode, method, offset + offset0, 0);
|
||||
cvFindContours_Impl(&_cimage, storage, &_ccontours, sizeof(CvContour), mode, method, cvPoint(offset0 + offset), 0);
|
||||
if( !_ccontours )
|
||||
{
|
||||
_contours.clear();
|
||||
|
||||
Reference in New Issue
Block a user