diff --git a/modules/ximgproc/src/find_ellipses.cpp b/modules/ximgproc/src/find_ellipses.cpp index 6b52be0eb..66c61d775 100644 --- a/modules/ximgproc/src/find_ellipses.cpp +++ b/modules/ximgproc/src/find_ellipses.cpp @@ -1272,9 +1272,9 @@ void EllipseDetectorImpl::preProcessing(Mat1b &image, Mat1b &dp, Mat1b &dn) { // buffer int *magBuffer[3]; - void *buffer = malloc((imgSize.width + 2) * (imgSize.height + 2) + - (imgSize.width + 2) * 3 * sizeof(int)); - magBuffer[0] = (int *) buffer; + AutoBuffer<int> buffer((imgSize.width + 2) * (imgSize.height + 2) + + (imgSize.width + 2) * 3); + magBuffer[0] = buffer.data(); magBuffer[1] = magBuffer[0] + imgSize.width + 2; magBuffer[2] = magBuffer[1] + imgSize.width + 2; uchar *map = (uchar *) (magBuffer[2] + imgSize.width + 2); @@ -1300,8 +1300,8 @@ void EllipseDetectorImpl::preProcessing(Mat1b &image, Mat1b &dp, Mat1b &dn) { // 2 - the pixel does belong to an edge for (int i = 0; i <= imgSize.height; i++) { int *tmpMag = magBuffer[(i > 0) + 1] + 1; - const short *tmpDx = (short *) (dx[i]); - const short *tmpDy = (short *) (dy[i]); + const short *tmpDx = dx.ptr<short>(i); + const short *tmpDy = dy.ptr<short>(i); uchar *tmpMap; int prevFlag = 0; @@ -1980,4 +1980,4 @@ void findEllipses( Mat(_ellipses).copyTo(ellipses); } } // namespace ximgproc -} // namespace cv \ No newline at end of file +} // namespace cv