diff --git a/modules/imgproc/src/filter.cpp b/modules/imgproc/src/filter.cpp index 101b3ffed0..cd4d5fd517 100644 --- a/modules/imgproc/src/filter.cpp +++ b/modules/imgproc/src/filter.cpp @@ -175,17 +175,18 @@ void FilterEngine::init( const Ptr& _filter2D, CV_Assert( 0 <= anchor.x && anchor.x < ksize.width && 0 <= anchor.y && anchor.y < ksize.height ); - borderElemSize = srcElemSize/(CV_MAT_DEPTH(srcType) >= CV_32S ? sizeof(int) : 1); - borderTab.resize( std::max(ksize.width - 1, 1)*borderElemSize); - + borderElemSize = srcElemSize/(CV_MAT_DEPTH(srcType) >= CV_32S ? sizeof(int) : 1); + int borderLength = std::max(ksize.width - 1, 1); + borderTab.resize(borderLength*borderElemSize); + maxWidth = bufStep = 0; constBorderRow.clear(); if( rowBorderType == BORDER_CONSTANT || columnBorderType == BORDER_CONSTANT ) { - constBorderValue.resize(srcElemSize*(ksize.width - 1)); + constBorderValue.resize(srcElemSize*borderLength); scalarToRawData(_borderValue, &constBorderValue[0], srcType, - (ksize.width-1)*CV_MAT_CN(srcType)); + borderLength*CV_MAT_CN(srcType)); } wholeSize = Size(-1,-1);