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

24423 Commits

Author SHA1 Message Date
Alexander Smorkalov 7b58ffebd0 Merge pull request #25486 from asmorkalov:as/gapi_warning_fix
Fixed build warnings introduced in #24938
2024-04-25 11:23:55 +03:00
inkredibl 2225b257cf Merge pull request #25488 from inkredibl:doc-fix-findEssentialMat
Fix documentation for findEssentialMat to reflect how it actually works. #25488

Documentation for findEssentialMat() incorrectly states that the method uses the same cameraMatrix for both lists of points even though there are two cameraMatrix and distCoeffs.

Checked the code and it does the right thing i.e. uses cameraMatrix1, distCoeffs1 for points1 and cameraMatrix2, distCoeffs2 for points2.

Updated the documentation for the method to clarify what it does. The code itself is not changed.
2024-04-25 11:05:16 +03:00
Alexander Smorkalov 7bad12c33b Fixed build warnings introduced in #24938 2024-04-25 10:07:25 +03:00
Daria Mityagina ebea65777f Merge pull request #24938 from DariaMityagina:icv/dm/add-media-frame-support-to-govbackend
G-API OV backend requires cv::MediaFrame #24938

### Pull Request Readiness Checklist

**Background_subtraction demo G-API issue. Update:**

Porting to API20 resulted in an error (both for CPU and NPU):
```
[ERROR] OpenCV(4.9.0-dev) /home/runner/work/open_model_zoo/open_model_zoo/cache/opencv/modules/gapi/src/backends/ov/govbackend.cpp:813: error: (-215: assertion not done ) cv::util::holds_alternative<cv::GMatDesc>(input_meta) in function 'cfgPreProcessing'
```

Adding cv::MediaFrame support to govbackend resulted in the following (tested with CPU):
<img width="941" alt="image" src="https://github.com/opencv/opencv/assets/52502732/3a003d61-bda7-4b1e-9117-3410cda1ba32">

### TODO

- [ ] **As part of the review process [this comment](https://github.com/opencv/opencv/pull/24938#discussion_r1487694043) was addressed which make it impossible to run the demo. I will bring those changes back in a separate PR [support `PartialShape`]**

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
- [ ] 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
2024-04-24 16:25:00 +03:00
Maksim Shabunin 7e56908306 Merge pull request #25469 from mshabunin:cpp-emd
imgproc: refactor EMD to reduce C-API usage #25469

- added more tests for EMD
- refactored to remove CvArr
- used BufferArea for memory allocations
- renamed functions and variables and formatted the code
- kept legacy functions intact in separate header
2024-04-24 14:28:31 +03:00
Alexander Smorkalov 5b0843728e Merge pull request #25453 from Kumataro:fix25452
imgcodecs: jpeg: refactoring for JpegEncoder
2024-04-22 16:38:00 +03:00
Alexander Smorkalov 50b6edc9ba Merge pull request #25321 from dkurt:skip_gapi_test
Skip InferList.TestStreamingInfer
2024-04-22 11:43:25 +03:00
LuukvandenBent ae85e516c0 Merge pull request #25423 from LuukvandenBent:CalibrateHandEyeDatatypeFix
Calibrate hand eye datatype fix #25423

Fix for issue https://github.com/opencv/opencv/issues/25421.

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-04-22 11:12:29 +03:00
Alexander Smorkalov 3f8b56ec49 Merge pull request #25459 from Kumataro:investigate_tiff_test
imgcodecs: tiff: test: ASSERT_NO_THROW() for imwrite/imread
2024-04-22 09:55:14 +03:00
Laurent Berger fb2af90daa Merge pull request #25354 from LaurentBerger:uiname
Add cv::currentUIFramework #25354

issue https://github.com/opencv/opencv/issues/25329

### 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
- [ ] The PR is proposed to the proper branch
- [x] 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.
- [x] The feature is well documented and sample code can be built with the project CMake
2024-04-19 13:38:17 +03:00
Kumataro 26798e1f7c imgcodecs: tiff: test: ASSERT_NO_THROW() for imwrite/imread 2024-04-19 19:20:05 +09:00
Vincent Rabaud fc5eb101bf Merge pull request #25447 from vrabaud:tiff
Remove unnecessary FIXIT section in grfmt_tiff.cpp #25447

No int64/uint64 is used in the code anymore.

grfmt_tiff.hpp includes the tiff.h header inside of the tiff_dummy_namespace declaration. One implication of this is that all namespaced declarations made in tiff.h become qualified with tiff_dummy_namespace::.

Because tiff.h includes standard library headers, the std namespace declarations are converted to tiff_dummy_namespace::std declarations.

Subsequently, grfmt_tiff.hpp declares using namespace tiff_dummy_namespace;.

This can lead to an ambiguity error during the resolution of the std namespace.

### 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
2024-04-19 13:00:27 +03:00
Alexander Smorkalov 5da17a4b03 Merge pull request #25454 from fengyuentau:fix_core_gemm_acc
core: fix `Core_GEMM.accuracy` failure on recent macOS
2024-04-19 11:36:31 +03:00
fengyuentau 4ef5986d4d remove manual unrolling that causes problem 2024-04-19 14:24:26 +08:00
Kumataro fb194a4582 imgcodecs: jpeg: refactoring for JpegEncoder 2024-04-19 15:06:28 +09:00
Maksim Shabunin d77dbbe7a0 imgproc: sync boundingRect function with 5.x 2024-04-17 23:01:31 +03:00
Vincent Rabaud c317a3ee89 Merge pull request #25419 from vrabaud:ffmpeg
Fix race condition in InternalFFMpegRegister initialization. #25419

initLogger_ does not check if the logger has been initizalized before and it might initialize it several times from different threads, racing with other threads that are logging.

### 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
2024-04-17 16:58:10 +03:00
Alexander Smorkalov 05a54b1405 Merge pull request #25397 from asmorkalov:as/HAL_GaussianBlur_bit_exact
Added HAL function for popular bit-exact branch of GaussianBlur with sigma=0
2024-04-17 14:24:17 +03:00
Maksim Shabunin f9e9567870 Merge pull request #25424 from mshabunin:fix-features2d-test
features2d: reduce accuracy test avg memory consumption #25424

**Merge with contrib**: https://github.com/opencv/opencv_contrib/pull/3722

I've observed high memory consumption in the `opencv_test_features2d` (x86_64, Ubuntu 22.04, Debug):

![image](https://github.com/opencv/opencv/assets/3304494/419d65d9-d727-4d1e-bdec-dbde6681c188)
It's always more than 180 MiB with peak at 535 MiB

This was caused by pointers to the algorithm object instances stored in the tests parameters. I've replaced them with factory functions/lambdas with the following result:

![image](https://github.com/opencv/opencv/assets/3304494/bd4ff0ea-3db4-4ab8-8e6d-192a3826e99c)
Now peak is at 355 MiB and permanent consumption level is ~ 1-2 MiB


**Note:** current peak is caused by KAZE features allocating 8x image size utility buffers. Not sure if we can or should do anything about it: https://github.com/opencv/opencv/blob/66fb5021e9253e3decab376d00322eaf2b279c89/modules/features2d/src/kaze/KAZEFeatures.cpp#L61-L68
2024-04-17 14:19:05 +03:00
Alexander Smorkalov 577ad0a5ad Merge pull request #25399 from asmorkalov:as/HAL_remap
New HAL API for remap
2024-04-17 14:14:21 +03:00
Linaname 37ca0308a7 Merge pull request #25402 from Linaname:4.x
Handle top and left border masked pixels correctly in inpaint method #25402

Fixes #25389

### 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
- [ ] 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
2024-04-17 11:26:56 +03:00
Alexander Smorkalov a4b4808d9d New HAL API for remap 2024-04-17 11:17:32 +03:00
Alexander Smorkalov f643964c68 Added HAL function for popular bit-exact branch of GaussianBlur with sigma=0. 2024-04-17 10:13:35 +03:00
alexlyulkov f9dd20eb07 Merge pull request #25414 from alexlyulkov:al/range-fixed
Fixed ONNX range layer #25414

Partially address https://github.com/opencv/opencv/issues/25363
Fixed ONNX range layer. It should support any input type.
Added tests (extra [PR](https://github.com/opencv/opencv_extra/pull/1170))

### 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
- [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-04-17 09:38:21 +03:00
Alexander Smorkalov 66fb5021e9 Merge pull request #25413 from Linaname:#25404
Correct inpainting floating point values with Telea's algorithm
2024-04-16 12:16:35 +03:00
Alexander Panov e2621f128e Merge pull request #25378 from AleksandrPanov:move_charuco_tutorial
Move Charuco/Calib tutorials and samples to main repo #25378

Merge with https://github.com/opencv/opencv_contrib/pull/3708

Move Charuco/Calib tutorials and samples to main repo:

- [x] update/fix charuco_detection.markdown and samples
- [x] update/fix charuco_diamond_detection.markdown and samples
- [x] update/fix aruco_calibration.markdown and samples
- [x] update/fix aruco_faq.markdown
- [x] move tutorials, samples and tests to main repo
- [x] remove old tutorials, samples and tests from contrib


### 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.
- [ ] The feature is well documented and sample code can be built with the project CMake
2024-04-16 12:14:33 +03:00
Alexander Smorkalov c622ffd95f Merge pull request #25365 from MaximSmolskiy:take-first-suitable-neighbor-in-ChessBoardDetector-findQuadNeighbors
Take first suitable neighbor in ChessBoardDetector::findQuadNeighbors
2024-04-15 14:37:41 +03:00
Alexander Smorkalov 0eef34a670 Merge pull request #25407 from Kumataro:fix25401
imgproc: doc: fix arrow symbols in header
2024-04-15 09:06:14 +03:00
mikhail.shtennikov dfb6069ad9 Inpainting floating point values with Telea's algorithm gives unexpected results 2024-04-15 05:21:54 +05:00
Alexander Smorkalov 0bd066ee58 Merge pull request #25406 from VadimLevin:dev/vlevin/numpy-array-typing-constraints
feat: use numeric dtype for MatLike instead of generic
2024-04-13 11:06:58 +03:00
Kumataro 2eb9e915d9 imgproc: doc: fix arrow symbols in header 2024-04-13 06:15:11 +09:00
Vadim Levin caa09aca36 feat: use numeric dtype for MatLike instead of generic 2024-04-12 15:10:59 +03:00
Alexander Smorkalov ecbfc1bfd8 Merge pull request #25395 from susumu-iino:fix-dnn-plugin-build-win32
Fix dnn plugin build win32
2024-04-12 11:05:34 +03:00
Alexander Alekhin 06c1c7b5cb Merge pull request #25396 from mshabunin:test-tag-contours 2024-04-11 15:34:49 +00:00
Maksim Shabunin c081efe3c6 imgproc: add 512mb tag for FindContours.accuracy test 2024-04-11 14:37:32 +03:00
Yuantao Feng 197626a5bf Merge pull request #25387 from fengyuentau:complete-float16_t-renaming
Rename remaining float16_t for future proof #25387

Resolves comment: https://github.com/opencv/opencv/pull/25217#discussion_r1547733187.

`std::float16_t` and `std::bfloat16_t` are introduced since c++23: https://en.cppreference.com/w/cpp/types/floating-point.

### 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-04-11 14:02:44 +03:00
Alexander Smorkalov 2c5b296ab2 Merge pull request #25343 from asmorkalov:as/HAL_bilaterialFilter
HAL interface for bilaterialFilter
2024-04-11 09:15:15 +03:00
Alexander Smorkalov 17c7f76da3 HALL interface for bilaterialFilter. 2024-04-11 09:02:45 +03:00
Kumataro d22d0bd49c core: persistence: use hfloat instead of float16_t 2024-04-11 05:18:25 +09:00
Alexander Smorkalov 9813ea2b7a Merge pull request #25306 from utibenkei:fix_build_of_dynamic_framework_for_visionos
fix build of dynamic framework for visionos
2024-04-10 16:50:38 +03:00
Kumataro b14ea19466 Merge pull request #25351 from Kumataro:fix25073_format_g
core: persistence: output reals as human-friendly expression. #25351

Close #25073
Related https://github.com/opencv/opencv/pull/25087

This patch is need to merge same time with https://github.com/opencv/opencv_contrib/pull/3714

### 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-04-10 15:17:15 +03:00
Alexander Smorkalov 5bad694b7f Removed old C API usage in new findContours implementation. 2024-04-10 11:19:55 +03:00
Alexander Smorkalov 369760116e Merge pull request #25375 from asmorkalov:as/win32_arm_warning
Supress build warnings on Win32 for ARM
2024-04-10 09:50:30 +03:00
Maksim Shabunin 148b2ec3e0 calib3d: increased AP3P test threshold for RISC-V platform 2024-04-09 23:53:50 +03:00
Maksim Shabunin f37924796f Merge pull request #25364 from mshabunin:fix-unaligned-filter
imgproc: fix unaligned memory access in filters and Gaussian blur #25364

* filter/SIMD: removed parts which casted 8u pointers to int causing unaligned memory access on RISC-V platform.
* GaussianBlur/fixed_point: replaced casts from s16 to u32 with union operations

Performance comparison:
- [x] check performance on x86_64 - (4 threads, `-DCPU_BASELINE=AVX2`, GCC 11.4, Ubuntu 22) - [report_imgproc_x86_64.ods](https://github.com/opencv/opencv/files/14904702/report_x86_64.ods)
- [x] check performance on AArch64 - (4 cores of RK3588, GCC 11.4 aarch64, Raspbian) - [report_imgproc_aarch64.ods](https://github.com/opencv/opencv/files/14908437/report_aarch64.ods)

Note: for some reason my performance results are quite unstable, unaffected functions show speedups and slowdowns in many cases. Filter2D and GaussianBlur seem to be OK.

Slightly related PR: https://github.com/opencv/ci-gha-workflow/pull/165
2024-04-09 17:44:36 +03:00
Alexander Smorkalov e4677fbf64 Merge pull request #25361 from hanliutong:rvv-f32
Further optimize fastDepthwiseConv for RISC-V Vector.
2024-04-09 16:04:02 +03:00
Alexander Smorkalov 4221ae1d64 Supress build warnings on Win32 for ARM. 2024-04-09 12:57:23 +03:00
Alexander Smorkalov b0d905864d Merge pull request #25371 from alexlyulkov:al/adaptive-threshold-tests
Added tests for adaptiveThreshold and sepFilter2D
2024-04-09 11:51:00 +03:00
Maksim Shabunin a25132986a Merge pull request #25146 from mshabunin:cpp-contours
Reworked findContours to reduce C-API usage #25146

What is done:
* rewritten `findContours` and `icvApproximateChainTC89` using C++ data structures
* extracted LINK_RUNS mode to separate new public functions - `findContoursLinkRuns` (it uses completely different algorithm)
* ~added new public `cv::approximateChainTC89`~ - ** decided to hide it**
* enabled chain code output (method = 0, no public enum value for this in C++ yet)
* kept old function as `findContours_old` (exported, but not exposed to user)
* added more tests for findContours (`test_contours_new.cpp`), some tests compare results of old function with new one. Following tests have been added:
  * contours of random rectangle
  * contours of many small (1-2px) blobs
  * contours of random noise
  * backport of old accuracy test
  * separate test for LINK RUNS variant

What is left to be done (can be done now or later):
* improve tests: 
  * some tests have limited verification (e.g. only verify contour sizes)
  * perhaps reference data can be collected and stored
  * maybe more test variants can be added (?)
* add enum value for chain code output and a method of returning starting points (e.g. first 8 elements of returned `vector<uchar>` can represent 2 int point coordinates)
* add documentation for new functions - **✔️ DONE**
* check and improve performance (my experiment showed 0.7x-1.1x some time ago)
* remove old functions completely (?)
* change contour return order (BFS) or allow to select it (?)
* return result tree as-is (?) (new data structures should be exposed, bindings should adapt)
2024-04-09 09:37:49 +03:00
Alexander Smorkalov e5d530abae Merge pull request #25342 from asmorkalov:as/HAL_transpose
HAL interface for transpose2d.
2024-04-09 09:03:13 +03:00