mirror of
https://github.com/opencv/opencv.git
synced 2025-06-20 18:10:51 +08:00
Merge pull request #9997 from ElenaGvozdeva:GaussianBlur_bug
This commit is contained in:
commit
73d4f12c14
@ -508,7 +508,6 @@ Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( rows == 1 ) _step = minstep;
|
|
||||||
CV_DbgAssert( _step >= minstep );
|
CV_DbgAssert( _step >= minstep );
|
||||||
|
|
||||||
if (_step % esz1 != 0)
|
if (_step % esz1 != 0)
|
||||||
@ -516,7 +515,8 @@ Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
|
|||||||
CV_Error(Error::BadStep, "Step must be a multiple of esz1");
|
CV_Error(Error::BadStep, "Step must be a multiple of esz1");
|
||||||
}
|
}
|
||||||
|
|
||||||
flags |= _step == minstep ? CONTINUOUS_FLAG : 0;
|
if (_step == minstep || rows == 1)
|
||||||
|
flags |= CONTINUOUS_FLAG;
|
||||||
}
|
}
|
||||||
step[0] = _step;
|
step[0] = _step;
|
||||||
step[1] = esz;
|
step[1] = esz;
|
||||||
@ -541,7 +541,6 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( rows == 1 ) _step = minstep;
|
|
||||||
CV_DbgAssert( _step >= minstep );
|
CV_DbgAssert( _step >= minstep );
|
||||||
|
|
||||||
if (_step % esz1 != 0)
|
if (_step % esz1 != 0)
|
||||||
@ -549,7 +548,8 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step)
|
|||||||
CV_Error(Error::BadStep, "Step must be a multiple of esz1");
|
CV_Error(Error::BadStep, "Step must be a multiple of esz1");
|
||||||
}
|
}
|
||||||
|
|
||||||
flags |= _step == minstep ? CONTINUOUS_FLAG : 0;
|
if (_step == minstep || rows == 1)
|
||||||
|
flags |= CONTINUOUS_FLAG;
|
||||||
}
|
}
|
||||||
step[0] = _step;
|
step[0] = _step;
|
||||||
step[1] = esz;
|
step[1] = esz;
|
||||||
|
@ -1982,6 +1982,27 @@ TEST(Imgproc_Blur, borderTypes)
|
|||||||
EXPECT_DOUBLE_EQ(0.0, cvtest::norm(expected_dst, dst, NORM_INF));
|
EXPECT_DOUBLE_EQ(0.0, cvtest::norm(expected_dst, dst, NORM_INF));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Imgproc_GaussianBlur, borderTypes)
|
||||||
|
{
|
||||||
|
Size kernelSize(3, 3);
|
||||||
|
|
||||||
|
Mat src_16(16, 16, CV_8UC1, cv::Scalar::all(42)), dst_16;
|
||||||
|
Mat src_roi_16 = src_16(Rect(1, 1, 14, 14));
|
||||||
|
src_roi_16.setTo(cv::Scalar::all(3));
|
||||||
|
|
||||||
|
cv::GaussianBlur(src_roi_16, dst_16, kernelSize, 0, 0, BORDER_REPLICATE);
|
||||||
|
|
||||||
|
EXPECT_EQ(20, dst_16.at<uchar>(0, 0));
|
||||||
|
|
||||||
|
Mat src(3, 12, CV_8UC1, cv::Scalar::all(42)), dst;
|
||||||
|
Mat src_roi = src(Rect(1, 1, 10, 1));
|
||||||
|
src_roi.setTo(cv::Scalar::all(2));
|
||||||
|
|
||||||
|
cv::GaussianBlur(src_roi, dst, kernelSize, 0, 0, BORDER_REPLICATE);
|
||||||
|
|
||||||
|
EXPECT_EQ(27, dst.at<uchar>(0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(Imgproc_Morphology, iterated)
|
TEST(Imgproc_Morphology, iterated)
|
||||||
{
|
{
|
||||||
RNG& rng = theRNG();
|
RNG& rng = theRNG();
|
||||||
|
Loading…
Reference in New Issue
Block a user