diff --git a/modules/stereo/include/opencv2/stereo/descriptor.hpp b/modules/stereo/include/opencv2/stereo/descriptor.hpp index 397fd315a..544336ada 100644 --- a/modules/stereo/include/opencv2/stereo/descriptor.hpp +++ b/modules/stereo/include/opencv2/stereo/descriptor.hpp @@ -222,7 +222,7 @@ namespace cv for (int j = n2 + 2; j <= width - n2 - 2; j++) { int c[nr_img]; - memset(c,0,nr_img); + memset(c, 0, sizeof(c[0]) * nr_img); for(int step = step_start; step <= step_end; step += step_inc) { for (int ii = - n2; ii <= + n2_stop; ii += step) diff --git a/modules/xfeatures2d/src/sift.cpp b/modules/xfeatures2d/src/sift.cpp index 080e45da9..ec1abf1f5 100644 --- a/modules/xfeatures2d/src/sift.cpp +++ b/modules/xfeatures2d/src/sift.cpp @@ -1147,19 +1147,20 @@ void SIFT_Impl::detectAndCompute(InputArray _image, InputArray _mask, } Mat base = createInitialImage(image, firstOctave < 0, (float)sigma); - std::vector gpyr, dogpyr; + std::vector gpyr; int nOctaves = actualNOctaves > 0 ? actualNOctaves : cvRound(std::log( (double)std::min( base.cols, base.rows ) ) / std::log(2.) - 2) - firstOctave; //double t, tf = getTickFrequency(); //t = (double)getTickCount(); buildGaussianPyramid(base, gpyr, nOctaves); - buildDoGPyramid(gpyr, dogpyr); //t = (double)getTickCount() - t; //printf("pyramid construction time: %g\n", t*1000./tf); if( !useProvidedKeypoints ) { + std::vector dogpyr; + buildDoGPyramid(gpyr, dogpyr); //t = (double)getTickCount(); findScaleSpaceExtrema(gpyr, dogpyr, keypoints); KeyPointsFilter::removeDuplicatedSorted( keypoints );