fixed empty image condition in resize
This commit is contained in:
parent
02aabcca87
commit
5bc10ef796
@ -3477,7 +3477,7 @@ void cv::resize( InputArray _src, OutputArray _dst, Size dsize,
|
|||||||
{
|
{
|
||||||
Size ssize = _src.size();
|
Size ssize = _src.size();
|
||||||
|
|
||||||
CV_Assert( ssize.area() > 0 );
|
CV_Assert( ssize.width > 0 && ssize.height > 0 );
|
||||||
CV_Assert( dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0) );
|
CV_Assert( dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0) );
|
||||||
if( dsize.area() == 0 )
|
if( dsize.area() == 0 )
|
||||||
{
|
{
|
||||||
@ -3498,7 +3498,8 @@ void cv::resize( InputArray _src, OutputArray _dst, Size dsize,
|
|||||||
_dst.create(dsize, src.type());
|
_dst.create(dsize, src.type());
|
||||||
Mat dst = _dst.getMat();
|
Mat dst = _dst.getMat();
|
||||||
|
|
||||||
if (dsize == ssize) {
|
if (dsize == ssize)
|
||||||
|
{
|
||||||
// Source and destination are of same size. Use simple copy.
|
// Source and destination are of same size. Use simple copy.
|
||||||
src.copyTo(dst);
|
src.copyTo(dst);
|
||||||
return;
|
return;
|
||||||
|
@ -1218,3 +1218,34 @@ TEST(Imgproc_Resize_Test, accuracy) { CV_Resize_Test test; test.safe_run(); }
|
|||||||
TEST(Imgproc_Remap_Test, accuracy) { CV_Remap_Test test; test.safe_run(); }
|
TEST(Imgproc_Remap_Test, accuracy) { CV_Remap_Test test; test.safe_run(); }
|
||||||
TEST(Imgproc_WarpAffine_Test, accuracy) { CV_WarpAffine_Test test; test.safe_run(); }
|
TEST(Imgproc_WarpAffine_Test, accuracy) { CV_WarpAffine_Test test; test.safe_run(); }
|
||||||
TEST(Imgproc_WarpPerspective_Test, accuracy) { CV_WarpPerspective_Test test; test.safe_run(); }
|
TEST(Imgproc_WarpPerspective_Test, accuracy) { CV_WarpPerspective_Test test; test.safe_run(); }
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef OPENCV_TEST_BIGDATA
|
||||||
|
|
||||||
|
CV_ENUM(Interpolation, INTER_NEAREST, INTER_LINEAR, INTER_CUBIC, INTER_AREA)
|
||||||
|
|
||||||
|
class Imgproc_Resize :
|
||||||
|
public ::testing::TestWithParam<Interpolation>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void SetUp()
|
||||||
|
{
|
||||||
|
inter = GetParam();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
int inter;
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_P(Imgproc_Resize, BigSize)
|
||||||
|
{
|
||||||
|
cv::Mat src(46342, 46342, CV_8UC3, cv::Scalar::all(10)), dst;
|
||||||
|
ASSERT_FALSE(src.empty());
|
||||||
|
|
||||||
|
ASSERT_NO_THROW(cv::resize(src, dst, cv::Size(), 0.5, 0.5, inter));
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(Imgproc, Imgproc_Resize, Interpolation::all());
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user