mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 15:23:05 +04:00
Merge pull request #29132 from hcy11123323:4.x
core: fix inverted continuity check in cvReshapeMatND() #29132 ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [√] I agree to contribute to the project under Apache 2 License. - [√] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [ ] The PR is proposed to the proper branch - [ ] There is a reference to the original bug report and related work - [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
@@ -2660,7 +2660,7 @@ cvReshapeMatND( const CvArr* arr,
|
||||
mat = &stub;
|
||||
}
|
||||
|
||||
if( CV_IS_MAT_CONT( mat->type ))
|
||||
if( !CV_IS_MAT_CONT( mat->type ))
|
||||
CV_Error( cv::Error::StsBadArg, "Non-continuous nD arrays are not supported" );
|
||||
|
||||
size1 = mat->dim[0].size;
|
||||
|
||||
@@ -2626,6 +2626,24 @@ TEST(Mat1D, DISABLED_basic)
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Mat, regression_cvReshapeMatND_continuous)
|
||||
{
|
||||
int sizes[] = {2, 3, 4};
|
||||
Mat mat(3, sizes, CV_32SC1);
|
||||
CvMatND src = cvMatND(mat);
|
||||
CvMatND reshaped;
|
||||
int new_sizes[] = {4, 3, 2};
|
||||
CvArr* result = 0;
|
||||
|
||||
ASSERT_NO_THROW(result = cvReshapeMatND(&src, sizeof(reshaped), &reshaped, 0, 3, new_sizes));
|
||||
ASSERT_NE((CvArr*)0, result);
|
||||
EXPECT_EQ(3, reshaped.dims);
|
||||
EXPECT_EQ(new_sizes[0], reshaped.dim[0].size);
|
||||
EXPECT_EQ(new_sizes[1], reshaped.dim[1].size);
|
||||
EXPECT_EQ(new_sizes[2], reshaped.dim[2].size);
|
||||
EXPECT_EQ(src.data.ptr, reshaped.data.ptr);
|
||||
}
|
||||
|
||||
TEST(Mat, ptrVecni_20044)
|
||||
{
|
||||
Mat_<int> m(3,4); m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
|
||||
|
||||
Reference in New Issue
Block a user