opencv/modules/imgproc/test/ocl
_Ayaka 4dd54bbec9
Merge pull request #25898 from Octopus136:issue-25853
Add a check for src == dst in ocl warpTransform #25898

As mentioned in #25853, when doing WarpAffine with Mat and UMat respectively, if you force the use of the in-place operation (so that src and dst are passed the same variables), Mat produces the correct results, but UMat produces unexpected results.

Obviously in-place operations are not possible with this transformation. When Mat performs the operation, if dst and src are the same variable, the function inherently makes a copy of src without telling the user. 

74b50c7af0/modules/imgproc/src/imgwarp.cpp (L2831-L2834)

So I did the same check in UMat, but I'm not sure if it's appropriate, should we just do a copy operation without telling the user (even if the user thinks he's doing an in-place operation), or should we throw an exception to indicate that we shouldn't pass in two same variables here?

The possible reason for this problem is that there is a create function here, so it gives the developer the false impression that this create function has allocated new memory for dst, however it does not.

74b50c7af0/modules/imgproc/src/imgwarp.cpp (L2607-L2609)

Because by the time the check is done here, the function has returned back.

74b50c7af0/modules/core/src/umatrix.cpp (L668-L675)

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] 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
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2024-07-19 09:08:19 +03:00
..
test_accumulate.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
test_blend.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
test_boxfilter.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
test_canny.cpp Fix modules/ typos 2019-08-16 17:34:29 +03:00
test_color.cpp Merge pull request #24333 from definitelyuncertain:CvtRGB2YUV422 2023-10-12 10:18:24 +03:00
test_filter2d.cpp Misc. modules/ cont. pt2 2018-02-13 11:28:11 -05:00
test_filters.cpp imgproc(ocl): fix morph generic filter checks 2018-11-14 20:15:01 +03:00
test_gftt.cpp Merge pull request #19392 from amirtu:OCV-165_finalize_goodFeaturesToTrack_returns_also_corner_value_PR 2021-02-15 19:55:57 +00:00
test_histogram.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
test_houghlines.cpp Merge pull request #23109 from seanm:misc-warnings 2023-10-06 13:33:21 +03:00
test_imgproc.cpp Relax accuracy requirements in the OpenCL sqrt perf arithmetic test. 2021-04-06 17:32:48 +01:00
test_match_template.cpp Backport C-API cleanup (imgproc) from 5.x 2023-01-16 23:29:50 +03:00
test_medianfilter.cpp ts: refactor OpenCV tests 2018-02-03 19:39:47 +00:00
test_pyramids.cpp change area() emptiness checks to empty() 2018-10-13 21:35:10 +02:00
test_sepfilter2d.cpp imgproc(test): test bitExact cases in OCL/sepFilter2D 2020-07-08 10:14:56 +00:00
test_warp.cpp Merge pull request #25898 from Octopus136:issue-25853 2024-07-19 09:08:19 +03:00