1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-28 14:53:03 +04:00
Commit Graph

31 Commits

Author SHA1 Message Date
Yuantao Feng 78adab13e9 Merge pull request #27479 from fengyuentau:4x/imgproc/boundingRect-simd
imgproc: supports CV_SIMD_SCALABLE in pointSetBoundingRect #27479

### 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
- [ ] 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
2025-11-12 18:44:41 +03:00
Martin 43112409ef Merge pull request #26974 from klosteraner:Fix-IntersectConvexConvex
Issue 26972: Proper treatment of float values in intersectConvexConvex #26974

As outlined in https://github.com/opencv/opencv/issues/26972 the function `intersectConvexConvex()` may not work as expected in the corner case, where two polygons intersect at a corner. A concrete example is given that I added as unit test. The unit test would fail without the proposed bug fix. I recommend porting the fix to all versions.

Now concerning the fix: When digging into the implementation I found, that when the line intersections are computed, openCV currently does not apply floating point comparison syntax, but pretends that line end points are exact. Instead I replaced the formulation using the eps that is already used in another component of the function in line.277: `epx=1e-5`. IMO that is solid enough, definitely better than assuming an exact floating point comparison is possible.

As a follow up I would suggest to use a scalable eps, s.t. also cases with high floating point numbers would be less error prone. However that would need to be done in all relevant sub steps, not just the line intersection code. So for me outside the scope of this fix.



### 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
- [ ] 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
2025-06-28 22:06:42 +03:00
Alexander Smorkalov 6623c62f56 Fixed result buffer overflow in intersectConvexConvex_ for non-convex input. 2024-06-10 19:38:35 +03:00
Maksim Shabunin c4ce94232b imgproc: fixed alignment issue and improved test for boundingRect 2024-05-03 21:26:40 +03:00
Maksim Shabunin d77dbbe7a0 imgproc: sync boundingRect function with 5.x 2024-04-17 23:01:31 +03:00
Alexander Smorkalov daa8f7dfc6 Partially back-port #25075 to 4.x 2024-03-05 12:15:39 +03:00
Dmitry Kurtaev 6ae7caaa01 Merge pull request #24216 from dkurt:inter_lines_less_compute
Minor optimization of two lines intersection #24216

### Pull Request Readiness Checklist

Not significant, but we can reduce number of multiplications while compute two lines intersection. Both methods are used heavily in their modules.

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
- [ ] 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
2023-09-05 10:44:56 +03:00
Gaotianhong f1dbc7d724 fix warning in pointPolygonTest 2023-04-13 13:13:27 +08:00
Alexander Alekhin 166ecaeda8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-23 19:50:20 +03:00
Thang Tran 1aff378ae8 imgproc: fixed bug from intersectConvexConvex
Added checks for all of vertices from each contour instead of checking
only for the first vertex.
2019-05-01 11:06:30 +02:00
Vadim Pisarevsky ea31c09384 rewrote the line segment intersection function to make the static analyzer happy (#12902)
* rewrote the line segment intersection function to make the static analyzer happy

* fixed bug with improper "no intersection" detection in some of corner cases

* fixed bug with improper "no intersection" detection in some of corner cases
2018-10-23 17:09:23 +03:00
Hamdi Sahloul 5d54def264 Add semicolons after CV_INSTRUMENT macros 2018-09-14 06:45:31 +09:00
Alexander Alekhin 8a3c394d6a don't use constructors for C API structures 2018-09-06 14:34:16 +03:00
Alexander Alekhin b09a4a98d4 opencv: Use cv::AutoBuffer<>::data() 2018-07-04 19:11:29 +03:00
luz.paz d05714995c Misc. modules/ cont. pt2
Found via `codespell`
2018-02-13 11:28:11 -05:00
Juha Reunanen 5b41599911 Fix pointPolygonTest for large coordinate values (#10222)
* Add test that fails

* Fix integer pointPolygonTest for large coordinate values

* Review fixes:
- change type from long long to int64
- move test code to test_contours.cpp, and make it C++98 compliant

* Hopefully fix compiler error by using push_back instead of emplace_back
2017-12-05 15:49:44 +03:00
Vitaly Tuzov 0205238dca Fix for intersectConvexConvex nested contours check 2017-11-08 20:27:07 +03:00
Pavel Vlasov 30a6cee2fe Instrumentation for OpenCV API regions and IPP functions; 2016-08-19 18:10:03 +03:00
Adil Ibragimov 8a4a1bb018 Several type of formal refactoring:
1. someMatrix.data -> someMatrix.prt()
2. someMatrix.data + someMatrix.step * lineIndex -> someMatrix.ptr( lineIndex )
3. (SomeType*) someMatrix.data -> someMatrix.ptr<SomeType>()
4. someMatrix.data -> !someMatrix.empty() ( or !someMatrix.data -> someMatrix.empty() ) in logical expressions
2014-08-13 15:21:35 +04:00
Andrey Kamaev 3890a74565 Drop outdated definitions from internal.hpp
This also fixes few clang build errors
2013-04-01 15:24:35 +04:00
Andrey Kamaev 2a6fb2867e Remove all using directives for STL namespace and members
Made all STL usages explicit to be able automatically find all usages of
particular class or function.
2013-02-25 15:04:17 +04:00
Vadim Pisarevsky dc4d0398f3 converted few more comp. geometry functions to C++ 2013-01-22 16:54:31 +04:00
OpenCV Buildbot 81f826db2b Normalize line endings and whitespace 2012-10-17 15:57:49 +04:00
Vadim Pisarevsky beb7fc3c92 a LOT of obsolete stuff has been moved to the legacy module. 2012-03-30 12:19:25 +00:00
Vadim Pisarevsky 4985c1b632 fixed hundreds of warnings from MSVC 2010. 2012-03-16 21:21:04 +00:00
Victoria Zhislina 0630e7010e CV_USE_UNROLLED for imgproc 2012-02-21 11:31:23 +00:00
Anatoly Baksheev 84db4eb6fa fixed ~200 warnings for windows
minor build system changes (now cuda code in opencv_core is compiled using CUDA_ARCH* cmake variables)
2012-02-14 10:22:34 +00:00
Vadim Pisarevsky 2e9f5c434b added improved ORB implementation, convex-convex polygon intersection, eigen2x2 low-level function ... 2011-11-08 12:01:49 +00:00
Vadim Pisarevsky e5c66b5ed4 fixed pointPolygonTest(). Now it returns -1, 0, 1 when measureDist=false (ticket #1285) 2011-08-07 16:58:29 +00:00
Vadim Pisarevsky 8af2d0acb4 fixed recent failures in shape-convhull & shape-minarearect 2010-11-30 00:17:43 +00:00
Vadim Pisarevsky 127d6649a1 "atomic bomb" commit. Reorganized OpenCV directory structure 2010-05-11 17:44:00 +00:00