diff --git a/modules/aruco/src/apriltag_quad_thresh.cpp b/modules/aruco/src/apriltag_quad_thresh.cpp index 86a86ea4d..591790850 100644 --- a/modules/aruco/src/apriltag_quad_thresh.cpp +++ b/modules/aruco/src/apriltag_quad_thresh.cpp @@ -94,7 +94,7 @@ void ptsort_(struct pt *pts, int sz) // Use stack storage if it's not too big. cv::AutoBuffer _tmp_stack(sz); - memcpy(_tmp_stack, pts, sizeof(struct pt) * sz); + memcpy(_tmp_stack.data(), pts, sizeof(struct pt) * sz); int asz = sz/2; int bsz = sz - asz; @@ -470,11 +470,11 @@ int quad_segment_agg(int sz, struct line_fit_pt *lfps, int indices[4]){ int rvalloc_pos = 0; int rvalloc_size = 3*sz; cv::AutoBuffer rvalloc_(std::max(1, rvalloc_size)); - memset(rvalloc_, 0, sizeof(rvalloc_[0]) * rvalloc_.size()); // TODO Add AutoBuffer zero fill - struct remove_vertex *rvalloc = rvalloc_; + memset(rvalloc_.data(), 0, sizeof(rvalloc_[0]) * rvalloc_.size()); // TODO Add AutoBuffer zero fill + struct remove_vertex *rvalloc = rvalloc_.data(); cv::AutoBuffer segs_(std::max(1, sz)); // TODO Add AutoBuffer zero fill - memset(segs_, 0, sizeof(segs_[0]) * segs_.size()); - struct segment *segs = segs_; + memset(segs_.data(), 0, sizeof(segs_[0]) * segs_.size()); + struct segment *segs = segs_.data(); // populate with initial entries for (int i = 0; i < sz; i++) { @@ -753,8 +753,8 @@ int fit_quad(const Ptr &_params, const Mat im, zarray_t *clu // efficiently computed for any contiguous range of indices. cv::AutoBuffer lfps_(sz); - memset(lfps_, 0, sizeof(lfps_[0]) * lfps_.size()); // TODO Add AutoBuffer zero fill - struct line_fit_pt *lfps = lfps_; + memset(lfps_.data(), 0, sizeof(lfps_[0]) * lfps_.size()); // TODO Add AutoBuffer zero fill + struct line_fit_pt *lfps = lfps_.data(); for (int i = 0; i < sz; i++) { struct pt *p; diff --git a/modules/aruco/src/zmaxheap.cpp b/modules/aruco/src/zmaxheap.cpp index 2a53cb01b..fe1782193 100644 --- a/modules/aruco/src/zmaxheap.cpp +++ b/modules/aruco/src/zmaxheap.cpp @@ -49,9 +49,9 @@ static inline void _swap_default(zmaxheap_t *heap, int a, int b) heap->values[b] = t; cv::AutoBuffer tmp(heap->el_sz); - memcpy(tmp, &heap->data[a*heap->el_sz], heap->el_sz); + memcpy(tmp.data(), &heap->data[a*heap->el_sz], heap->el_sz); memcpy(&heap->data[a*heap->el_sz], &heap->data[b*heap->el_sz], heap->el_sz); - memcpy(&heap->data[b*heap->el_sz], tmp, heap->el_sz); + memcpy(&heap->data[b*heap->el_sz], tmp.data(), heap->el_sz); } static inline void _swap_pointer(zmaxheap_t *heap, int a, int b) diff --git a/modules/optflow/src/dis_flow.cpp b/modules/optflow/src/dis_flow.cpp index 3f7043f8e..77d62e971 100644 --- a/modules/optflow/src/dis_flow.cpp +++ b/modules/optflow/src/dis_flow.cpp @@ -380,12 +380,7 @@ void DISOpticalFlowImpl::precomputeStructureTensor(Mat &dst_I0xx, Mat &dst_I0yy, } } - AutoBuffer sum_xx_buf(ws), sum_yy_buf(ws), sum_xy_buf(ws), sum_x_buf(ws), sum_y_buf(ws); - float *sum_xx = (float *)sum_xx_buf; - float *sum_yy = (float *)sum_yy_buf; - float *sum_xy = (float *)sum_xy_buf; - float *sum_x = (float *)sum_x_buf; - float *sum_y = (float *)sum_y_buf; + AutoBuffer sum_xx(ws), sum_yy(ws), sum_xy(ws), sum_x(ws), sum_y(ws); for (int j = 0; j < ws; j++) { sum_xx[j] = 0.0f; diff --git a/modules/rgbd/src/linemod.cpp b/modules/rgbd/src/linemod.cpp index 509741c7a..861b83fcc 100644 --- a/modules/rgbd/src/linemod.cpp +++ b/modules/rgbd/src/linemod.cpp @@ -290,11 +290,11 @@ static void quantizedOrientations(const Mat& src, Mat& magnitude, float * ptr0y = (float *)sobel_dy.data; float * ptrmg = (float *)magnitude.data; - const int length1 = static_cast(sobel_3dx.step1()); - const int length2 = static_cast(sobel_3dy.step1()); - const int length3 = static_cast(sobel_dx.step1()); - const int length4 = static_cast(sobel_dy.step1()); - const int length5 = static_cast(magnitude.step1()); + const int length1 = static_cast(sobel_3dx.step1()); + const int length2 = static_cast(sobel_3dy.step1()); + const int length3 = static_cast(sobel_dx.step1()); + const int length4 = static_cast(sobel_dy.step1()); + const int length5 = static_cast(magnitude.step1()); const int length0 = sobel_3dy.cols * 3; for (int r = 0; r < sobel_3dy.rows; ++r) diff --git a/modules/rgbd/src/odometry.cpp b/modules/rgbd/src/odometry.cpp index f26ca5d8d..6ddf6c697 100755 --- a/modules/rgbd/src/odometry.cpp +++ b/modules/rgbd/src/odometry.cpp @@ -469,7 +469,7 @@ void computeCorresps(const Mat& K, const Mat& K_inv, const Mat& Rt, const double * Kt_ptr = Kt.ptr(); AutoBuffer buf(3 * (depth1.cols + depth1.rows)); - float *KRK_inv0_u1 = buf; + float *KRK_inv0_u1 = buf.data(); float *KRK_inv1_v1_plus_KRK_inv2 = KRK_inv0_u1 + depth1.cols; float *KRK_inv3_u1 = KRK_inv1_v1_plus_KRK_inv2 + depth1.rows; float *KRK_inv4_v1_plus_KRK_inv5 = KRK_inv3_u1 + depth1.cols; @@ -647,7 +647,7 @@ void calcRgbdLsmMatrices(const Mat& image0, const Mat& cloud0, const Mat& Rt, const double * Rt_ptr = Rt.ptr(); AutoBuffer diffs(correspsCount); - float* diffs_ptr = diffs; + float* diffs_ptr = diffs.data(); const Vec4i* corresps_ptr = corresps.ptr(); @@ -720,10 +720,10 @@ void calcICPLsmMatrices(const Mat& cloud0, const Mat& Rt, const double * Rt_ptr = Rt.ptr(); AutoBuffer diffs(correspsCount); - float * diffs_ptr = diffs; + float * diffs_ptr = diffs.data(); AutoBuffer transformedPoints0(correspsCount); - Point3f * tps0_ptr = transformedPoints0; + Point3f * tps0_ptr = transformedPoints0.data(); const Vec4i* corresps_ptr = corresps.ptr(); diff --git a/modules/tracking/src/feature.cpp b/modules/tracking/src/feature.cpp index b5afe8123..b62dec38e 100644 --- a/modules/tracking/src/feature.cpp +++ b/modules/tracking/src/feature.cpp @@ -925,7 +925,7 @@ void CvHOGEvaluator::integralHistogram( const Mat &img, std::vector &histog Mat qangle( gradSize, CV_8U ); AutoBuffer mapbuf( gradSize.width + gradSize.height + 4 ); - int* xmap = (int*) mapbuf + 1; + int* xmap = mapbuf.data() + 1; int* ymap = xmap + gradSize.width + 2; const int borderType = (int) BORDER_REPLICATE; @@ -937,7 +937,7 @@ void CvHOGEvaluator::integralHistogram( const Mat &img, std::vector &histog int width = gradSize.width; AutoBuffer _dbuf( width * 4 ); - float* dbuf = _dbuf; + float* dbuf = _dbuf.data(); Mat Dx( 1, width, CV_32F, dbuf ); Mat Dy( 1, width, CV_32F, dbuf + width ); Mat Mag( 1, width, CV_32F, dbuf + width * 2 ); diff --git a/modules/tracking/src/trackerKCF.cpp b/modules/tracking/src/trackerKCF.cpp index cc7bb9e59..3d629bd5c 100644 --- a/modules/tracking/src/trackerKCF.cpp +++ b/modules/tracking/src/trackerKCF.cpp @@ -495,7 +495,7 @@ namespace cv{ int rows = dst.rows, cols = dst.cols; AutoBuffer _wc(cols); - float * const wc = (float *)_wc; + float * const wc = _wc.data(); const float coeff0 = 2.0f * (float)CV_PI / (cols - 1); const float coeff1 = 2.0f * (float)CV_PI / (rows - 1); diff --git a/modules/xfeatures2d/src/fast.cpp b/modules/xfeatures2d/src/fast.cpp index cd2f3cedb..fd05c9618 100644 --- a/modules/xfeatures2d/src/fast.cpp +++ b/modules/xfeatures2d/src/fast.cpp @@ -339,7 +339,7 @@ namespace { AutoBuffer _buf((img.cols+16)*3*(sizeof(int) + sizeof(uchar)) + 128); uchar* buf[3]; - buf[0] = _buf; buf[1] = buf[0] + img.cols; buf[2] = buf[1] + img.cols; + buf[0] = _buf.data(); buf[1] = buf[0] + img.cols; buf[2] = buf[1] + img.cols; int* cpbuf[3]; cpbuf[0] = (int*)alignPtr(buf[2] + img.cols, sizeof(int)) + 1; cpbuf[1] = cpbuf[0] + img.cols + 1; diff --git a/modules/xfeatures2d/src/sift.cpp b/modules/xfeatures2d/src/sift.cpp index b2ab2b88f..6ebb84763 100644 --- a/modules/xfeatures2d/src/sift.cpp +++ b/modules/xfeatures2d/src/sift.cpp @@ -341,7 +341,7 @@ static float calcOrientationHist( const Mat& img, Point pt, int radius, float expf_scale = -1.f/(2.f * sigma * sigma); AutoBuffer buf(len*4 + n+4); - float *X = buf, *Y = X + len, *Mag = X, *Ori = Y + len, *W = Ori + len; + float *X = buf.data(), *Y = X + len, *Mag = X, *Ori = Y + len, *W = Ori + len; float* temphist = W + len + 2; for( i = 0; i < n; i++ ) @@ -754,7 +754,7 @@ static void calcSIFTDescriptor( const Mat& img, Point2f ptf, float ori, float sc int rows = img.rows, cols = img.cols; AutoBuffer buf(len*6 + histlen); - float *X = buf, *Y = X + len, *Mag = Y, *Ori = Mag + len, *W = Ori + len; + float *X = buf.data(), *Y = X + len, *Mag = Y, *Ori = Mag + len, *W = Ori + len; float *RBin = W + len, *CBin = RBin + len, *hist = CBin + len; for( i = 0; i < d+2; i++ ) diff --git a/modules/xfeatures2d/src/surf.cpp b/modules/xfeatures2d/src/surf.cpp index d4e16e474..032687c72 100644 --- a/modules/xfeatures2d/src/surf.cpp +++ b/modules/xfeatures2d/src/surf.cpp @@ -676,7 +676,7 @@ struct SURFInvoker : ParallelLoopBody /* Extract a window of pixels around the keypoint of size 20s */ int win_size = (int)((PATCH_SZ+1)*s); CV_Assert( imaxSize >= win_size ); - Mat win(win_size, win_size, CV_8U, winbuf); + Mat win(win_size, win_size, CV_8U, winbuf.data()); if( !upright ) {