Commit Graph

35539 Commits

Author SHA1 Message Date
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
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
Kumataro
fac647aaeb imgcodecs: add test to decode a corrupted APNG 2025-09-13 06:46:53 +09:00
Alexander Smorkalov
5b1d325530 Merge pull request #27778 from mshabunin:fix-openblas-cmake
build: fix OpenBLAS cmake search
2025-09-12 20:50:18 +03:00
pratham-mcw
a7943cef60 Merge pull request #27776 from pratham-mcw:win-arm64-agast-detect-optimization
features2d: performance optimization of detect function on Windows-ARM64 #27776

### 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 detect function on Windows ARM64 targets.
- Added the defined(_M_ARM64) macro in agast.cpp and agast_score.cpp files, aligning ARM64 behavior with how x64 selects internal functions for computation.
- As a result, ARM64 now executes the same internal functions as x64 where applicable, leading to measurable performance improvements in detect function.
- This changes is limited to Windows ARM64 and does not affect other architectures

**Performance impact:**
- Detect function shows improved runtime on ARM64 targets due to reuse of existing efficient computation paths.
<img width="1419" height="408" alt="image" src="https://github.com/user-attachments/assets/feab411a-d256-4bff-bec2-22b2583f63d1" />
2025-09-12 17:28:54 +03:00
hyarasi13
b7bc18670b Merge pull request #27774 from qnx-ports:qnx-4.12.0
Skip ARM assembly file on QNX #27774

This fixes build failures on QNX caused by unsupported ARM NEON assembly in arm/filter_neon.S. The QNX environment does not handle this assembly source correctly, resulting in compilation errors.

Build and test instruction for QNX:
https://github.com/qnx-ports/build-files/blob/main/ports/opencv/README.md


### 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-09-12 11:53:17 +03:00
Maksim Shabunin
6d4be10c44 build: fix OpenBLAS cmake search 2025-09-12 10:48:14 +03:00
Kumataro
dac243bd26 Merge pull request #27769 from Kumataro:refix27557
Add strict validation for encoding parameters for APNG, Animation WebP #27769

Extra fix for https://github.com/opencv/opencv/issues/27557

- Fix for build errors with libspng library.
- Add strict validation for APNG.
- Add strict validation for Animation WebP.

### 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.
- [x] The feature is well documented and sample code can be built with the project CMake
2025-09-11 16:50:58 +03:00
Alexander Smorkalov
16c8308674 Merge pull request #27750 from Kumataro:fix27744
png: add setjmp() to detect libpng internal error for APNG
2025-09-11 10:23:46 +03:00
Quaylyn Rimer
1fdff6da75 Merge pull request #27620 from killerdevildog:fix-scalar-typing-issue-27528
Fix Python Scalar typing issue #27528 #27620

- Add ScalarInput and ScalarOutput types for better type safety
- ScalarInput: Union[Sequence[float], float] for function parameters
- ScalarOutput: Sequence[float] for function return values
- Keep original Scalar type for backwards compatibility (deprecated)
- Add refinement functions to apply new types to specific functions
- Functions returning scalars now use ScalarOutput (mean, sumElems, trace)
- Drawing functions now use ScalarInput for color parameters
- Resolves MyPy compatibility issues with scalar return values
- Maintains full backwards compatibility

closes #27528 

### 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.
- [x ] The feature is well documented and sample code can be built with the project CMake
2025-09-10 16:47:12 +03:00
Alexander Smorkalov
1f5d695df3 Merge pull request #27767 from VadimLevin:dev/vlevin/type-hints-for-path-like-arguments
feat: add PathLike type hints for args annotated with CV_WRAP_FILE_PATH
2025-09-10 16:39:13 +03:00
Vadim Levin
1fe128f7b5 feat: add PathLike type hints for args annotated with CV_WRAP_FILE_PATH 2025-09-10 11:25:32 +03:00
Alexander Smorkalov
ec015d48d6 Merge pull request #27764 from cudawarped:fix_windows_ffmpeg_preprocessor_compilation_issue
[videoio][ffmpeg] Fix Windows build error
2025-09-10 09:14:49 +03:00
Alexander Smorkalov
307442b30b Merge pull request #27762 from KAVYANSHTYAGI:typo-fixes
Fix typos in Einsum layer and G-API docs
2025-09-10 08:39:57 +03:00
cudawarped
08b84558a2 Move preprocessor directives outside of macro to avoid the following error when compiling with MSVC
D:\repos\opencv\opencv\modules\videoio\src\cap_ffmpeg_impl.hpp(1727): error C2121: '#': invalid character: possibly the result of a macro expansion
D:\repos\opencv\opencv\modules\videoio\src\cap_ffmpeg_impl.hpp(1727): error C2143: syntax error: missing ';' before 'if'
D:\repos\opencv\opencv\modules\videoio\src\cap_ffmpeg_impl.hpp(1727): error C2059: syntax error: '>='
2025-09-10 08:00:41 +03:00
Alexander Smorkalov
b3f6c86d47 Merge pull request #27760 from asmorkalov:as/drop_avresample
Remove libavresample from CMake as it's not used in code.
2025-09-09 22:11:12 +03:00
Kavyansh Tyagi
eed87abbcf Fix typos in Einsum layer and G-API docs 2025-09-09 23:21:14 +05:30
Alexander Smorkalov
ae86b400cc Remove libavresample from CMake as it's not used in code. 2025-09-09 16:13:43 +03:00
Alexander Smorkalov
efea09120b Merge pull request #27734 from cudawarped:cuda_double4_dep
[cuda] Add compatibility layer for vector types due for depreciation in CUDA 14.0
2025-09-09 14:49:48 +03:00
Alexander Smorkalov
3a21ed56e3 Merge pull request #27738 from arrzhev:fix_memoryleak_pybindings
Fix memory leaks in pybindings
2025-09-09 14:46:50 +03:00
Dmitry Kurtaev
8e0c0dc347 Merge pull request #27755 from dkurt:ffmpeg/sws_scale_frame
Optimize FFmpeg VideoCapture with swscale threads option #27755

### Pull Request Readiness Checklist

resolves https://github.com/opencv/opencv/issues/21969

* Switch to `sws_scale_from` for `libswscale >= 6.4.100` (FFmpeg >= 5.0)
* Use new context init API with threads option (`libswscale >= 8.12.100`: 2a091d4f2e)
* Replicate `sws_getCachedContext` with threads option for `libswscale < 8.12.100`

1 hour mp4 video every frame reading
| HW | sws_scale | sws_scale_frame + 16 threads | sws_scale_frame + 24 threads (#cpus) | 
|---|---|---|---|
| Intel Core i9-12900 CPU | 45.1 sec | 25.4 sec (x1.77) | 30 sec (x1.50) | 
| NVIDIA GPU 4090 | 232 sec | 89.4 sec (x2.59) | 77 sec (x3.01) |

```
import time
import numpy as np
import os
import cv2 as cv

# os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "hwaccel;cuvid|video_codec;h264_cuvid|vsync;0"

start = time.time()
video = "test.mp4"
cap = cv.VideoCapture(video, cv.CAP_FFMPEG)
while True:
    has_frame, frame = cap.read()
    if not has_frame:
        break

print(time.time() - start)
```

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
2025-09-09 14:21:18 +03:00
Alexander Smorkalov
646e94aad4 Merge pull request #27759 from uilianries:docs/update-conan-url
[docs] Update Conan URL to use official Conan Center
2025-09-09 12:10:07 +03:00
Uilian Ries
7e3550dff8 Update Conan URL to use official Conan Center
Signed-off-by: Uilian Ries <uilianries@gmail.com>
2025-09-09 09:53:08 +02:00
Kumataro
9196edd299 Merge pull request #27559 from Kumataro:fix27555
imgcodecs: bmp: support to write 32bpp BMP with BI_BITFIELDS #27559

### 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-09 09:23:43 +03:00
Alexander Smorkalov
ee41f46b46 Merge pull request #27758 from asmorkalov:as/stitching_false_overload
Renamed templated BlocksCompensator::feed method to exclude claches with base class pure virtual method
2025-09-08 18:19:10 +03:00
Nadezhda Mizonova
9663b582a2 Merge pull request #27720 from nmizonov:fix_ipp_bilateral_tiling
Set limitation to IPP Bilateral Filter tiles number to avoid too small tiles #27720

### Pull Request Readiness Checklist

This PR fixes the following issue in Bilateral Filter tiling in IPP integration: image ROI can't be closer to the image border than the filter window radius. This issue shows itself during separation of the image to tiles for multithreaded processing. If the tile size small enough, the second tile is closer to the upper image border than the bilateral filter radius, which leads to the incorrect result. To fix this, we need a limitation to the tile size - done in this PR.

_Note: red build status looks like unrelated to the current change_

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-09-08 16:11:20 +03:00
Alexander Smorkalov
b28d9bef1d Renamed templated BlocksCompensator::feed method to exclude claches with base class pure virtual method. 2025-09-08 14:52:58 +03:00
cudawarped
54b03cc2f8 Merge pull request #27737 from cudawarped:fix_videowriter_raw_return_code
[videoio][VideoWriter] Fix return code from CvVideoWriter_FFMPEG::writeFrame() when encapsulating encoded video #27737

Currently the return code from `CvVideoWriter_FFMPEG::writeFrame()` when `encode_video==true` (encapsulating raw encoded video) is wrong and results in the following warning implying it has been unsuccessful

> [ WARN:0@15.551] global cap_ffmpeg.cpp:198 write FFmpeg: Failed to write frame

### 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-08 12:34:49 +03:00
Alexander Smorkalov
2352436a61 Merge pull request #27735 from cudawarped:cuda_silence_wd4505
[cuda] Silence unreferenced function with internal linkage has been removed warnings in Windows
2025-09-08 11:03:04 +03:00
Kumataro
98a70539cc Merge pull request #27730 from Kumataro:fix27729
doc: fix doxygen warnings for imgcodecs, flann and objdetect #27730

Close https://github.com/opencv/opencv/issues/27729

### 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-08 10:35:01 +03:00
Alexander Smorkalov
b52feed94d Merge pull request #27728 from MaximSmolskiy:remove_useless_variables_from_fitEllipse_tests
Remove useless variables from fitEllipse tests
2025-09-08 09:51:49 +03:00
Alexander Smorkalov
3d3e962652 Merge pull request #27745 from nina16448:fix_1
Fix typos in documentation
2025-09-08 09:51:05 +03:00
Dmitry Kurtaev
65cb3fd86c Merge pull request #27741 from dkurt:libpng_1.6.45
libpng upgrade to 1.6.45 and cICP metadata support for PNG imwrite #27741

### Pull Request Readiness Checklist

resolves #24185

libpng docs: https://www.w3.org/TR/png-3/#cICP-chunk
similar code from ffmpeg: a700f0f72d/libavcodec/pngenc.c (L452-L456)

So issue #24185 can be solved by replacing `cv.imwrite` in user's code to `cv.imwriteWithMetadata`:
```python
cv.imwriteWithMetadata("frame.png", frame, [cv.IMAGE_METADATA_CICP], np.array([[9, 18, 0, 1]], np.uint8))
```
```
$ exiftool /home/d.kurtaev/opencv_build/frames_pr/image_38.png
ExifTool Version Number         : 12.76
File Name                       : image_38.png
Directory                       : /home/d.kurtaev/opencv_build/frames_pr
File Size                       : 3.8 MB
File Modification Date/Time     : 2025:09:02 20:48:22+03:00
File Access Date/Time           : 2025:09:02 20:48:22+03:00
File Inode Change Date/Time     : 2025:09:02 20:48:22+03:00
File Permissions                : -rw-r--r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 1080
Image Height                    : 1920
Bit Depth                       : 8
Color Type                      : RGB
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Color Primaries                 : BT.2020, BT.2100
Transfer Characteristics        : BT.2100 HLG, ARIB STD-B67
Matrix Coefficients             : Identity matrix
Video Full Range Flag           : 1
Image Size                      : 1080x1920
Megapixels                      : 2.1
```

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.
- [x] The feature is well documented and sample code can be built with the project CMake
2025-09-08 09:49:26 +03:00
Alexander Smorkalov
e22c1065ec Merge pull request #27742 from asmorkalov:as/clang21
Build fix for Clang 21.
2025-09-08 08:57:57 +03:00
Dmitry Kurtaev
443d0ae63f Merge pull request #27746 from dkurt:d.kurtaev/av_packet_side_data_get
fix: FFmpeg 8.0 support #27746

### Pull Request Readiness Checklist

related comment: https://github.com/opencv/opencv/pull/27691#discussion_r2322695640

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
2025-09-08 08:52:56 +03:00
Kumataro
d9572861d1 png: add setjmp() to detect libpng internal error 2025-09-05 20:07:56 +09:00
nina16448
92e2c67896 fix typos 2025-09-05 01:00:28 +08:00
Alexander Smorkalov
f51f2f6797 Build fix for Clang 21. 2025-09-03 16:43:18 +03:00
Arsenii Rzhevskii
e41ce4dbf4 Fix memory leaks in pybindings 2025-09-02 17:35:41 +02:00
cudawarped
a56877a016 Silence unreferenced function with internal linkage has been removed warnings on windows
e.g.

contrib\modules\cudev\include\opencv2\cudev/ptr2d/warping.hpp(86): warning C4505: 'cv::cudev::affineMap': unreferenced function with internal linkage has been removed
contrib\modules\cudev\include\opencv2\cudev/ptr2d/warping.hpp(134): warning C4505: 'cv::cudev::perspectiveMap': unreferenced function with internal linkage has been removed
2025-09-01 16:43:04 +03:00
cudawarped
ca35ed2f1c cuda: add compatibility layer for depreciated vector types 2025-09-01 13:25:50 +03:00
MaximSmolskiy
518735b509 Remove useless variables from fitEllipse tests 2025-08-30 00:42:33 +03:00
Maxim Smolskiy
6d889ee74c Merge pull request #27717 from MaximSmolskiy:improve_fitellipsedirect_tests
Improve fitEllipseDirect tests #27717

### Pull Request Readiness Checklist

Previous `fit_and_check_ellipse` implementation was very weak - it only checks that points center lies inside ellipse.
Current implementation `fit_and_check_ellipse` checks that points RMS (Root Mean Square) algebraic distance is quite small. It means that on average points are near boundary of ellipse. Because for points on ellipse algebraic distance is equal to `0` and for points that are close to boundary of ellipse is quite small

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-08-29 13:16:22 +03:00
Alexander Smorkalov
2ae5a1ee27 Merge pull request #27706 from kallaballa:enable_hog_with_inter_linear
HOG: stay on fast-path by using INTER_LINEAR resize when ALGO_HINT_APPROX is defined
2025-08-29 13:14:20 +03:00
Alexander Smorkalov
e4a7bab00e Merge pull request #27677 from kallaballa:data_races_in_ocl_cpp2
Added source comments to mark TSAN false positives
2025-08-29 13:13:03 +03:00
Alexander Smorkalov
d9556920dc Merge pull request #27718 from asmorkalov:as/obj_construct_fix
Fixed Subdiv2D constructor overload.
2025-08-27 13:48:58 +03:00
Alexander Smorkalov
0e9c3b5a3b Fixed Subdiv2D constructor overload. 2025-08-27 11:37:39 +03:00
damon-spacemit
ad22d482e6 Merge pull request #27378 from spacemit-com:4.x
Add canny, scharr and sobel for riscv-rvv hal. #27378

### 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-08-26 20:05:08 +03:00