Merge pull request #2219 from ilya-lavrenov:createHanningWindow
This commit is contained in:
@@ -576,20 +576,23 @@ void cv::createHanningWindow(OutputArray _dst, cv::Size winSize, int type)
|
||||
_dst.create(winSize, type);
|
||||
Mat dst = _dst.getMat();
|
||||
|
||||
int rows = dst.rows;
|
||||
int cols = dst.cols;
|
||||
int rows = dst.rows, cols = dst.cols;
|
||||
|
||||
AutoBuffer<double> _wc(cols);
|
||||
double * const wc = (double *)_wc;
|
||||
|
||||
double coeff0 = 2.0 * CV_PI / (double)(cols - 1), coeff1 = 2.0f * CV_PI / (double)(rows - 1);
|
||||
for(int j = 0; j < cols; j++)
|
||||
wc[j] = 0.5 * (1.0 - cos(coeff0 * j));
|
||||
|
||||
if(dst.depth() == CV_32F)
|
||||
{
|
||||
for(int i = 0; i < rows; i++)
|
||||
{
|
||||
float* dstData = dst.ptr<float>(i);
|
||||
double wr = 0.5 * (1.0f - cos(2.0f * CV_PI * (double)i / (double)(rows - 1)));
|
||||
double wr = 0.5 * (1.0 - cos(coeff1 * i));
|
||||
for(int j = 0; j < cols; j++)
|
||||
{
|
||||
double wc = 0.5 * (1.0f - cos(2.0f * CV_PI * (double)j / (double)(cols - 1)));
|
||||
dstData[j] = (float)(wr * wc);
|
||||
}
|
||||
dstData[j] = (float)(wr * wc[j]);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -597,12 +600,9 @@ void cv::createHanningWindow(OutputArray _dst, cv::Size winSize, int type)
|
||||
for(int i = 0; i < rows; i++)
|
||||
{
|
||||
double* dstData = dst.ptr<double>(i);
|
||||
double wr = 0.5 * (1.0 - cos(2.0 * CV_PI * (double)i / (double)(rows - 1)));
|
||||
double wr = 0.5 * (1.0 - cos(coeff1 * i));
|
||||
for(int j = 0; j < cols; j++)
|
||||
{
|
||||
double wc = 0.5 * (1.0 - cos(2.0 * CV_PI * (double)j / (double)(cols - 1)));
|
||||
dstData[j] = wr * wc;
|
||||
}
|
||||
dstData[j] = wr * wc[j];
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user