Commit Graph

35586 Commits

Author SHA1 Message Date
Peter Rekdal Khan-Sunde
4e94116e7a Merge pull request #27864 from peters:patch-2
Add OPENCV_FFMPEG_SKIP_LOG_CALLBACK to preserve custom FFmpeg logging #27864 
 
OpenCV’s InternalFFMpegRegister overwrites av_log_set_callback, blocking custom FFmpeg log handlers in statically linked apps.

Add `OPENCV_FFMPEG_SKIP_LOG_CALLBACK` to let applications keep their own 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
- [ ] 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-10-04 13:24:28 +03:00
Alexander Smorkalov
14aae55450 Merge pull request #27859 from D00E:fix-psnr-cap
Updated Tutorial PSNR for identical images
2025-10-03 16:59:37 +03:00
pratham-mcw
8f3976ae97 Merge pull request #27785 from pratham-mcw:dnn-lstm-neon
dnn: added neon intrinsics implementation of fastGEMM1T function #27785

### 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

- This PR improves the performance of the LSTM function on ARM64 targets.
- Added a NEON intrinsics implementation of the fastGEMM1T function and enabled its use in fully connected and recurrent layers file. 
- As a result, ARM64 now benefits from vectorized matrix–vector multiplications, leading to measurable performance improvements in the LSTM layer.
- This change is limited to ARM64 and does not affect other architectures.

**Performance impact:**
- The optimization significantly improves the performance of lstm functions on ARM64 targets.
<img width="930" height="313" alt="image" src="https://github.com/user-attachments/assets/92e251cd-dc6c-4cda-9586-acc19bf16dfd" />
2025-10-03 10:50:50 +03:00
Alexander Smorkalov
bb45afec28 Merge pull request #27854 from asmorkalov:as/inRange_hal
Added inRange HAL entry point
2025-10-03 10:46:58 +03:00
Alexander Smorkalov
aa939b3932 Merge pull request #27860 from asmorkalov:as/python_restored_dbg
Restored PYTHON_DEBUG_LIBRARIES in python bindings
2025-10-03 09:30:08 +03:00
Alexander Smorkalov
4f6dd148e6 Merge pull request #27861 from asmorkalov:as/dlpack_win_warnings
Warning fixes in DLpack integration on Win32
2025-10-02 12:01:54 +03:00
Alexander Smorkalov
80fef356ec Warning fixes in DLpack integration on Win32. 2025-10-02 09:12:05 +03:00
Alexander Smorkalov
d5cdad7629 Restored PYTHON_DEBUG_LIBRARIES in python bindings. 2025-10-02 09:00:22 +03:00
D00E
acc76304d5 Updated Tutorial PSNR for identical images 2025-10-02 00:03:28 +01:00
Alexander Smorkalov
c4763279eb Added inRange HAL entry point. 2025-10-01 12:09:28 +03:00
Alexander Smorkalov
e9bded6ff3 Merge pull request #27833 from asmorkalov:as/move_gen_pattern
Moved pattern generator to apps and rewrote tutorial #27833

### 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
- [ ] 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-10-01 09:42:22 +03:00
Alexander Smorkalov
7994f88ecb Merge pull request #27850 from asmorkalov:as/python_linkage_update
Dropped depricated PYTHON_DEBUG_LIBRARIES and resolved options clash with Clang
2025-10-01 09:33:16 +03:00
Alexander Smorkalov
f699d3c777 Merge pull request #27849 from asmorkalov:as/webp_memory_leak
Fixed memory leak in webp backend of imgcodecs
2025-10-01 08:37:29 +03:00
Alexander Smorkalov
2ba688f23c Merge pull request #27847 from asmorkalov:as/bmp_out_of_bound
Fixed out-of-bound access during extra params handing in BMP encoder.
2025-09-30 19:42:02 +03:00
Alexander Smorkalov
9ee9a47302 Merge pull request #27851 from asmorkalov:as/gdal_version
Output GDAL library version in CMake status output.
2025-09-30 19:38:20 +03:00
Alexander Smorkalov
ebb5b3037e Output GDAL library version in CMake status output. 2025-09-30 18:34:10 +03:00
Alexander Smorkalov
e69eeb1558 Dropped depricated PYTHON__DEBUG_LIBRARIES and resolved options clash with Clang. 2025-09-30 12:13:34 +03:00
Alexander Smorkalov
8f3f1cd193 Fixed memory leak in webp backend of imgcodecs
WebPMuxAssemble always alloc output buffer and do not reuse provided one.
It overrites provided buffer and it's not freed in the previous version.
WebPDataClear cannot be used with shared pointer as it does not free the object memory itself.
webpFree expects void*, but not const void* that's why const cast is required here.
2025-09-30 10:57:53 +03:00
Alexander Smorkalov
9a82458c43 Fixed out-of-bound access during extra params handing in BMP encoder. 2025-09-30 08:14:38 +03:00
Alexander Smorkalov
0e88b49a53 Merge pull request #27837 from jasseeeem:qr-decode-degenerate-quadrilateral-fix
Fix to prevent QR code decoding from throwing exception on degenerate quadrilaterals
2025-09-29 10:18:18 +03:00
Muhammed Jaseem Pallikkal
5d54e90fa4 fix to prevent QR code decoding from throwing on degenerate source points 2025-09-29 00:51:14 +05:30
Alexander Smorkalov
edfa999b93 Merge pull request #27828 from asmorkalov:as/js_extend
Added option to wrap opencv_contrib into JS too.
2025-09-25 23:46:44 +03:00
Alexander Smorkalov
5755d4f224 Added option to wrap opencv_contrib into JS too. 2025-09-25 17:25:04 +03:00
Alexander Smorkalov
939e58f260 Merge pull request #27825 from vrabaud:c_headers
Remove more C code
2025-09-25 16:24:00 +03:00
Vincent Rabaud
b88c3dff4f Remove more C code 2025-09-25 13:31:30 +02:00
Alexander Smorkalov
659106a99d Merge pull request #27817 from Kumataro:trial27793
core: verify length check when converting from vector to InputArray
2025-09-25 13:35:11 +03:00
Timi
9282afa0c7 Merge pull request #27726 from DasoTD:fix/string-property-binding
Fix string property bindings in JS generator #27726

Fixes #27712

This PR fixes the binding generation logic in embindgen.py to correctly handle enum and string properties:
Enum properties now use binding_utils::underlying_ptr(&Class::property).
Standard string properties are bound directly with &Class::property.
Other properties continue to use the default template.

Testing:
Verified generated bindings locally to ensure the expected output for enums and strings.
2025-09-25 10:59:27 +03:00
Alexander Smorkalov
255d1d2b0c Merge pull request #27820 from undingen:speedup_charuco
Speedup ChArUco by avoiding temporary copies
2025-09-24 10:50:59 +03:00
Marius Wachtler
6f9f8f49dd Speedup ChArUco by avoiding temporary copies
This speeds up processing a 132x128 board by more than 100 times.
This methods return std::vectors<> which means lots of copies and allocations.
2025-09-23 19:33:15 -05:00
Alexander Smorkalov
6f040337e9 Merge pull request #27818 from asmorkalov:as/win_linkage_hardening
Use /safeseh for x86 32-bit only.
2025-09-23 22:15:41 +03:00
SaraKuhnert
79793e169e Merge pull request #27369 from SaraKuhnert:minEnclosingPolygon
imgproc: add minEnclosingConvexPolygon #27369

### Pull Request Readiness Checklist

- [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
- [ ] 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-09-23 22:14:12 +03:00
Alexander Smorkalov
3492b71dfb Merge pull request #27812 from asmorkalov:as/python_loglevel_constants
Tunned Python bindings for logging.
2025-09-23 15:58:52 +03:00
pratham-mcw
95354f044c Merge pull request #27596 from pratham-mcw:core-kmeans-loop-unroll
core: ARM64 loop unrolling in kmeans to improve Weighted Filter performance #27596

### 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

- This PR improves the performance of the Weighted Filter function from the ximgproc module on Windows on ARM64.
- The optimization is achieved by unrolling two performance-critical loops in the generateCentersPP function in modules/core/src/kmeans.cpp, which is internally used by the Weighted Filter function.
- The unrolling is enabled only for ARM64 builds using #if defined(_M_ARM64) guards to preserve compatibility and maintain performance on other architectures.

**Performance Improvements:** 
- Improves execution time for Weighted Filter performance tests on ARM64 without affecting other platforms.
<img width="772" height="558" alt="image" src="https://github.com/user-attachments/assets/ae28c0af-97d3-460b-ad5a-207d3fc6936f" />
2025-09-23 15:48:10 +03:00
Alexander Smorkalov
ceb197b7de Use /safeseh for x86 32-bit only. 2025-09-23 15:24:27 +03:00
Kumataro
6dbf7612f9 core: verify length check from vector to InputArray 2025-09-23 20:56:16 +09:00
Madan mohan Manokar
691b1bdc05 Merge pull request #27795 from amd:fast_gaussian_simd
Improved Gaussian Blur #27795

- Horizontal and vertical kernels of 3N131 and 5N14641 are combined for non-border(inner) regions.
- Temporary storage of intermediate results are avoided by combining the kernels.
- Further refinement of other 3N, 5N to be added later.

### 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
2025-09-22 17:30:28 +03:00
Alexander Smorkalov
ca7f668e6a Tunned Python bindings for logging. 2025-09-22 17:21:51 +03:00
Kumataro
3c3a26b6ab Merge pull request #27811 from Kumataro:fix27789
imgcodecs: bmp: relax decoding size limit to over 1GiB #27811

Close https://github.com/opencv/opencv/issues/27789
Close https://github.com/opencv/opencv/issues/23233

### 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
2025-09-22 11:49:47 +03:00
Kumataro
744d5ecd14 Merge pull request #27806 from Kumataro:fix27784
libtiff upgrade to version 4.7.1 #27806

close https://github.com/opencv/opencv/issues/27784

### 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
2025-09-22 10:11:28 +03:00
Alexander Smorkalov
64bb4ad035 Merge pull request #27802 from opencv-pushbot:gitee/alalek/issue_27724
core: restore parallel name on failure attempt
2025-09-22 08:29:44 +03:00
Alexander Smorkalov
a9148b88f3 Merge pull request #27808 from underdevelopedprefrontalcortex:patch-1
fix "algorighm" typo in approxPolyN docstring
2025-09-22 08:20:53 +03:00
underdevelopedprefrontalcortex
3372286c7b Update imgproc.hpp, fix "algorighm" typo in approxPolyN docstring 2025-09-20 19:29:12 -04:00
Alexander Smorkalov
89e767b0d9 Merge pull request #27787 from Kumataro:fix27783
objdetect: enable setEpsY() for QRDetectMulti
2025-09-19 17:57:12 +03:00
pratham-mcw
cb659575e8 Merge pull request #27642 from pratham-mcw:perf_arm64_fast_loop_unroll
stitching: enable loop unrolling in fast.cpp to improve ARM64 performance #27642

### 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


- This PR introduces an ARM64-specific performance optimization in the FAST_t function by applying loop unrolling. 
- The optimization is guarded with #if defined(_M_ARM64) to ensure it only affects ARM64 builds. 
- This optimizations lead to performance improvements in stitching module functions.

**Performance Improvements:** 

- This change significantly improved the performance on Windows ARM64 targets.
<img width="935" height="579" alt="image" src="https://github.com/user-attachments/assets/a03833d1-ac9b-408f-916b-243fd6ae2d53" />
2025-09-19 16:49:21 +03:00
pratham-mcw
15d3c56548 Merge pull request #27777 from pratham-mcw:dnn-softmax-loop-unroll
dnn: improve performance of softmax_3d with loop unrolling #27777

### 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

- This PR applies loop unrolling in the softmax function.
- The change does not affect functional correctness.

**Performance Improvements**
- The optimization significantly improves the performance of softmax_3d on Windows ARM64 targets.
<img width="703" height="203" alt="image" src="https://github.com/user-attachments/assets/85997c15-f543-432c-95e5-69099d71fe71" />
2025-09-19 16:45:04 +03:00
Alexander Smorkalov
0ff1452400 Merge pull request #27781 from Kumataro:test27744
imgcodecs: add test to decode a corrupted APNG
2025-09-19 13:02:48 +03:00
Alexander Smorkalov
b99c604d02 Merge pull request #27799 from asmorkalov:as/charuco_dict_offset
Added option to define Aruco index offset in pattern generator
2025-09-19 12:20:32 +03:00
Alexander Smorkalov
a3814ea237 Added option to define Aruco index offset in pattern generator. 2025-09-19 11:17:21 +03:00
Alexander Alekhin
8ff2d29804 core: restore parallel name on failure attempt 2025-09-19 03:25:40 +00:00
Jie Pan
5c1c39afc1 Merge pull request #27773 from jiepan-intel:wasm-optimization
dnn: Tune CONV_NR_FP32 size for WASM #27773

We can see ~20% inference time reduction on local benchmark.
The local benchmark includes face detection with res10_300x300_ssd_iter_140000_fp16.caffemodel and image classification with squeezenet.onnx .

### 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
- [ ] 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-09-17 17:24:44 +03:00