if( ksize.width > 0 )
xmax = ksize.width/2;
else
- xmax = std::max(fabs(nstds*sigma_x*c), fabs(nstds*sigma_y*s));
+ xmax = cvRound(std::max(fabs(nstds*sigma_x*c), fabs(nstds*sigma_y*s)));
if( ksize.height > 0 )
ymax = ksize.height/2;
else
- ymax = std::max(fabs(nstds*sigma_x*s), fabs(nstds*sigma_y*c));
+ ymax = cvRound(std::max(fabs(nstds*sigma_x*s), fabs(nstds*sigma_y*c)));
xmin = -xmax;
ymin = -ymax;
CV_Assert( ktype == CV_32F || ktype == CV_64F );
Mat kernel(ymax - ymin + 1, xmax - xmin + 1, ktype);
- double scale = 1/(2*CV_PI*sigma_x*sigma_y);
+ double scale = 1;
double ex = -0.5/(sigma_x*sigma_x);
double ey = -0.5/(sigma_y*sigma_y);
double cscale = CV_PI*2/lambd;
else
kernel.at<double>(ymax - y, xmax - x) = v;
}
-
+
return kernel;
}