35906 Commits

Author SHA1 Message Date
Alessandro de Oliveira Faria (A.K.A.CABELO)
9c3d3dbee7 Merge pull request #28082 from cabelo:4.x
Analog Gauge Reader - cabelo@opensuse.org #28082

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

I humbly offer this example so that all developers can understand that many problems can be solved without VLM models.

<img width="269" height="267" alt="image" src="https://github.com/user-attachments/assets/d31f1557-7648-4e9c-8933-dcadb1f326aa" />
<img width="269" height="267" alt="image" src="https://github.com/user-attachments/assets/4039417c-b5c9-4228-ac7b-5336aeb88325" />
<img width="840" height="288" alt="image" src="https://github.com/user-attachments/assets/53f8ddf9-63cd-43b1-bff0-2e9e39d14153" />
2025-12-03 10:05:50 +03:00
Alexander Smorkalov
5a4f23f9d6 Merge pull request #28088 from Ghazi-raad:fix/drawcontours-line-type-swap-26413
Fix LINE_4/LINE_8 swap in drawContours (issue #26413)
2025-12-03 09:34:01 +03:00
sinkboy-chen
4c7fd071f0 Merge pull request #28118 from sinkboy-chen:bugfix/cuda-race-condition
stitching: pass warp params by value to avoid CUDA constant races #28118

### 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 the Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on 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 are accuracy tests, performance tests, and test data in the opencv_extra repository, if applicable.  
      The patch to opencv_extra uses the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake configuration.

Fixes #26870.

In `modules/stitching/src/cuda/build_warp_maps.cu`, the original implementation copied parameters into global GPU constant symbols:

```cpp
cudaSafeCall(cudaMemcpyToSymbol(build_warp_maps::ck_rinv, k_rinv, 9 * sizeof(float)));
cudaSafeCall(cudaMemcpyToSymbol(build_warp_maps::cr_kinv, r_kinv, 9 * sizeof(float)));
cudaSafeCall(cudaMemcpyToSymbol(build_warp_maps::cscale, &scale, sizeof(float)));
```

As discussed in the issue, this can cause race conditions when multiple warps are built concurrently. This patch removes the use of these global constant symbols and instead passes the required data as kernel parameters (a total of 11 floats encapsulated in `WarpParams`).

One potential concern is increased register pressure due to additional kernel arguments. However, based on experiments using the test case from issue #26870, there is no significant performance regression; in fact, a small speed‑up was observed.

Testing was performed on an NVIDIA GeForce RTX 4090 (single GPU).

Note: ./bin/opencv_perf_stitching did not run successfully on my system even with an unmodified git checkout, so performance was evaluated using the test case from issue #26870 instead.
2025-12-03 08:51:59 +03:00
Alexander Smorkalov
2c8cfdebde Added RISC-V RVV diagnostics for PNG. 2025-12-02 10:40:01 +03:00
Galina Bykova
fc7e70ef4a fix bug in approxPolyDP: calculate distance to a segment, not to a line 2025-12-01 21:22:11 +03:30
Alexander Smorkalov
54d066b89c Force 3rdparty build for CI test. 2025-12-01 17:14:08 +03:00
Alexander Smorkalov
e47916120f Updated libpng to v1.6.51 and added RISC-V optimimizations. 2025-12-01 13:47:27 +03:00
Alexander Smorkalov
a08565253e Merge pull request #28102 from satyam102006:fix-issue-28101
highgui: fix memory leak in CvWindow Qt backend
2025-12-01 10:50:15 +03:00
Alexander Smorkalov
6bc22ad5c3 Merge pull request #28091 from ParalYAO:fix/brisk/descriptor-calculation-pointer-bug
fix(features2d): Correct pointer arithmetic in BRISK corner traversal
2025-12-01 10:34:12 +03:00
satyam yadav
fbd550438f Merge pull request #28073 from satyam102006:issue-OpenCV-to-MSMF-
catch _com_error exceptions to suppress debugger flooding #28073

Resolves: #27643

This PR fixes an issue where the Microsoft Media Foundation (MSMF) backend triggers repeated C++ exceptions (_com_error) during video capture. While these exceptions are often non-fatal "first-chance" exceptions, they cause the Visual Studio debugger to break execution repeatedly, making debugging difficulty and flooding the output window.

Changes
cap_msmf.cpp: Added try-catch blocks around critical COM interaction paths.

Updated SourceReaderCB::OnReadSample (Async callback) to catch _com_error.

Updated CvCapture_MSMF::grabFrame (Synchronous grab) to catch _com_error.

Added CV_LOG_WARNING to log the error message from the caught exception, ensuring that actual errors are still visible in the logs without crashing the application or halting the debugger.

Impact
Users debugging OpenCV applications on Windows with Visual Studio will no longer be interrupted by internal MSMF exceptions when using the default backend.

The application flow remains uninterrupted even if MSMF encounters transient internal errors.
2025-12-01 09:07:08 +03:00
satyam yadav
be607ce6c8 memory leak 2025-11-30 17:57:21 +05:30
Alexander Smorkalov
1c712fe2ff Merge pull request #28093 from AKash-A007:fix-pytest-cov-warnings-27867
python: fix pytest-cov false warnings by compiling config scripts with full path (#27867)
2025-11-28 13:21:35 +03:00
Ghazi-raad
47a6419290 Merge pull request #28086 from Ghazi-raad:fix/aravis-default-pixel-format-26523
fix: set default pixel format for Aravis cameras when unsupported format #28086

Fixes #26523

This PR fixes an issue where Aravis VideoCapture returns empty frames when the camera's pixel format is not explicitly set via CAP_PROP_FOURCC.

Problem:

The Aravis backend's retrieveFrame() function only processes four specific pixel formats:
- ARV_PIXEL_FORMAT_MONO_8
- ARV_PIXEL_FORMAT_BAYER_GR_8
- ARV_PIXEL_FORMAT_MONO_12
- ARV_PIXEL_FORMAT_MONO_16

If the camera has a different pixel format configured (or the camera's default format is unsupported), retrieveFrame() returns false on line 333 and all frames appear empty. This happens even though:
- The camera opens successfully (isOpened() returns true)
- The camera is capturing data
- The user has set up autotrigger and auto-exposure correctly

Root Cause:

In open() at line 271, the code retrieves the camera's current pixel format with arv_camera_get_pixel_format(). But if this format doesn't match one of the four supported formats, there's no fallback, causing all subsequent frames to fail retrieval.

Solution:

Added a check after retrieving the camera's pixel format. If the format is not one of the four supported formats, the code now:
1. Sets pixelFormat to a sensible default (MONO_8)
2. Applies this format to the camera via arv_camera_set_pixel_format()

This ensures:
- Cameras work out-of-the-box without requiring explicit CAP_PROP_FOURCC setup
- Users can still override the format with CAP_PROP_FOURCC if needed
- Behavior matches user expectations from other camera backends (V4L2, MSMF, etc.)

The default of MONO_8 was chosen because it's the most universally supported format across USB3 Vision and GigE Vision cameras.

Changes:

modules/videoio/src/cap_aravis.cpp: Added pixel format validation and default setting (10 lines)

Testing:

With this fix:
- Cameras with unsupported default formats will automatically switch to MONO_8
- The sample code from the issue works without uncommenting the CAP_PROP_FOURCC line
- Users can still explicitly set their preferred format via CAP_PROP_FOURCC

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
- [x] The PR is proposed to the proper branch (4.x)
- [x] There is a reference to the original bug report and related work (issue #26523)
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      N/A - This requires specialized USB3 Vision / GigE Vision hardware not available in CI
- [x] The feature is well documented and sample code can be built with the project CMake
      The fix maintains existing API behavior and makes the backend work as expected
2025-11-28 12:40:08 +03:00
Alexander Smorkalov
329f0fddaf Merge pull request #28092 from dkurt:flatbuffers_25.9.23
Update FlatBuffers source code to 25.9.23
2025-11-28 10:54:30 +03:00
Akash Arunkumar
13210cbb1d python: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper 2025-11-27 17:31:05 +00:00
Dmitry Kurtaev
895be753ac Update FlatBuffers source code to 25.9.23 2025-11-27 18:31:10 +03:00
Ghazi-raad
2cf9c68da0 Merge pull request #28087 from Ghazi-raad:fix/tempfile-race-condition-19648
Fix tempfile race condition on Windows (issue #19648) #28087

Fix tempfile race condition on Windows

Addresses issue #19648

Problem
The cv::tempfile() function on Windows used GetTempFileNameA() followed by an immediate DeleteFileA() call. This created a race condition where multiple OpenCV processes running simultaneously could receive the same temporary filename, leading to name collisions.

Root Cause
The previous implementation:

Called GetTempFileNameA() to generate a temp filename
Immediately deleted the file to free the name
Returned just the filename string
Between steps 2 and 3, another process could call GetTempFileNameA() and receive the same filename, causing a collision.

Solution
Replaced GetTempFileNameA() with GUID-based filename generation using CoCreateGuid(), following the same approach already used in GetTempFileNameWinRT() and Microsoft's recommendations for scenarios requiring many temp files.

Changes
modules/core/src/system.cpp:

Removed GetTempFileNameA() and DeleteFileA() calls
Added CoCreateGuid() to generate unique GUID-based filenames
Format: "ocv{GUID}" where GUID ensures uniqueness across processes
Benefits

Eliminates race condition in multi-process scenarios
No file I/O overhead from creating and deleting placeholder files
Consistent with WinRT implementation approach
Follows Microsoft best practices
Testing
Standard OpenCV test suite. The change only affects Windows temp file naming and maintains the same String return type and usage pattern.
2025-11-27 17:57:42 +03:00
Haodi Yao
29746ab963 fix(features2d): Correct pointer arithmetic in BRISK corner traversal
The pointer offset to move from top-right to bottom-right was incorrect. This change corrects the pointer calculation to use the proper row stride, ensuring it lands on the correct pixel.
2025-11-27 16:34:26 +08:00
Alexander Smorkalov
641a7aa2a6 Merge pull request #28090 from asmorkalov:as/system_aravis
Unblock system-wide installation of Aravis SDK.
2025-11-27 10:18:21 +03:00
Ghazi-raad
71c759b7cd Merge pull request #28085 from Ghazi-raad:fix/multiband-blender-memory-leak-27333
Fixed multiband blender memory leak 27333 #28085

Fixes #27333

This PR fixes a memory leak in MultiBandBlender where memory from pyramid vectors was not being released when prepare() was called multiple times or when the blender object was reused.

Problem:

MultiBandBlender retains hundreds of MB to several GB of memory even after the blender pointer is released. The issue occurs because:

1. The resize() function on std::vector does not release memory when the new size is less than or equal to the current size
2. It only adjusts the size marker while retaining the capacity and existing data
3. When prepare() is called, the pyramid vectors are resized but old data remains allocated

Example from the bug report: Blending 14 images (1920x1080) retained ~200MB after blender.release(). With larger images, several GB could be retained.

Root Cause:

GPU path (lines 254-256): Correctly calls clear() before operations
Non-GPU path (lines 285-298): Missing clear() calls, causing resize() to retain old data

Solution:

Added .clear() calls before .resize() in the non-GPU path to match the GPU path behavior. This ensures:
- Memory from previous blend operations is released in prepare()
- Reusing a blender object doesn't accumulate memory
- Behavior is consistent between GPU and non-GPU code paths

Changes:

modules/stitching/src/blenders.cpp: Added 2 clear() calls (dst_pyr_laplace_.clear() and dst_band_weights_.clear()) before resize() in the non-GPU path

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
- [x] The PR is proposed to the proper branch (4.x)
- [x] There is a reference to the original bug report and related work (issue #27333)
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      N/A - This is a memory management fix that doesn't affect algorithm behavior. Existing stitching tests verify correctness.
- [x] The feature is well documented and sample code can be built with the project CMake
      The fix maintains existing API behavior, no documentation changes needed
2025-11-27 09:57:21 +03:00
Alexander Smorkalov
1c2cdb1818 Unblock system-wide installation of Aravis SDK. 2025-11-27 09:38:43 +03:00
Ghazi-raad
a27a13921b Fix LINE_4/LINE_8 swap in drawContours (issue #26413)
Changed condition to correctly route LINE_8 to Line() instead of Line2().

The condition 'line_type == 1 || line_type == 4' was causing LINE_8 (value 8)
to be processed by Line2() which implements 4-connectivity, and LINE_4 (value 4)
to be processed by Line() which was implementing 8-connectivity behavior. This
resulted in swapped line connectivity.

Changed to 'line_type == 1 || line_type == 8' so LINE_8 goes to Line() with
8-connectivity and LINE_4 goes to Line2() with 4-connectivity, matching the
documented behavior where LINE_4 should produce 4-connected lines and LINE_8
should produce 8-connected lines.

Fixes #26413
2025-11-26 21:41:28 +00:00
Alexander Smorkalov
4da9a518ef Merge pull request #28076 from asmorkalov:as/ubuntu_arm_update
Update ARM config label to Ubuntu 24.04.
2025-11-26 17:05:50 +03:00
Alexander Smorkalov
638f372c2e Update ARM config label to Ubuntu 24.04. 2025-11-26 16:47:13 +03:00
Anshu
166f4591d2 Merge pull request #28047 from 0AnshuAditya0:fix-pyos-fspath-memory-leak
Fix memory leak in pyopencv_to for path-like objects #28047
   
This PR fixes a memory leak in pyopencv_to when handling path-like objects (e.g., pathlib.Path).
Problem:
PyOS_FSPath() returns a new strong reference, but the code was not calling Py_XDECREF to decrement it, causing a memory leak on every call with path-like arguments.
Solution:

Store the returned reference from PyOS_FSPath() in a separate variable path_obj
Call Py_XDECREF(path_obj) on all function exit paths (both success and error paths)
This ensures proper reference counting without changing the function's behavior

Testing:
The leak can be reproduced using the steps in issue #28046 with Python built with --with-address-sanitizer. This fix ensures the reference is properly released.
Fixes #28046

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

 ✓ I agree to contribute to the project under Apache 2 License.
 ✓ 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 (4.x)
 ✓ There is a reference to the original bug report and related work (#28046)
 NA 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-26 12:18:42 +03:00
Dmitry Kurtaev
621ad482d6 Merge pull request #28051 from dkurt:minAreaRect_angle
Correct minAreaRect angle to be in range [-90, 0) #28051

### Pull Request Readiness Checklist

Box angle range over all imgproc tests is in interval `[-90, -0.0581199]`

resolves https://github.com/opencv/opencv/issues/27667
resolves https://github.com/opencv/opencv/issues/19472
resolves https://github.com/opencv/opencv/issues/24436

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-11-25 15:56:59 +03:00
Alexander Smorkalov
52a5b6c3df Merge pull request #28065 from AKash-A007:fix-avif-matrixcoeff-unspecified
imgcodecs: avif: use UNSPECIFIED matrixCoefficients instead of IDENTITY for YUV400
2025-11-25 09:19:41 +03:00
Alexander Smorkalov
09a92e811b Merge pull request #28072 from Kumataro:fix28071
imgcodecs: avif: support to encode with metadata for 1ch Mat
2025-11-25 09:19:00 +03:00
Kumataro
3c3596c6ef Merge pull request #28063 from Kumataro:fix28062
imgcodecs: Fix IMWRITE_AVIF_DEPTH typo and update AVIF details on imwrite() #28063

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

- Corrected the documentation for `IMWRITE_AVIF_DEPTH`.
- Added descriptions for the new AVIF encoder parameters in `imwrite()` documentation.

### 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-11-24 10:46:12 +03:00
Alexander Smorkalov
d54fb714eb Merge pull request #28067 from dimitre:4.x
typo COMPENSACTION -> COMPENSATION
2025-11-24 10:43:59 +03:00
Alexander Smorkalov
71b476b256 Merge pull request #28059 from cabelo:realsense
Just original author.
2025-11-24 09:31:28 +03:00
Kumataro
6617a7ca34 imgcodecs: avif: support metadata for 1ch Mat 2025-11-24 08:19:25 +09:00
Akash A
79cfef49ff imgcodecs: avif: set matrixCoefficients to UNSPECIFIED for monochrome images
Fixes issue with libavif >= 1.3.0 where subsampling with identity matrix
coefficients is invalid. Aligns OpenCV AVIF writer with updated libavif
conformance rules.
2025-11-23 12:13:54 +00:00
Alessandro de Oliveira Faria (A.K.A. CABELO)
76c1c60d7b Just original author. 2025-11-22 15:15:00 -03:00
Alexander Smorkalov
49607438bd Merge pull request #28048 from asmorkalov:as/stateless_hal_filtering
Improved HAL status check for filter, sepFilter and morphology operations to support stateless HAL
2025-11-22 12:41:05 +03:00
Alexander Smorkalov
79fd6d018b Merge pull request #28052 from JayPol559:fix-openblas-28049
Fix OpenBLAS detection on Fedora/RHEL: header path + threaded library selection (Issue #28049)
2025-11-22 12:39:59 +03:00
Dmytro Dadyka
6231b080ff Merge pull request #27952 from DDmytro:ecc/template-mask-rework
Add optional template mask for findTransformECC #27952

Supersedes #22997

**Summary**
Add optional template mask support to findTransformECC so that only pixels valid in both the template and the image are used in ECC. Backward compatibility is preserved (existing signatures unchanged; one new overload adds templateMask).

**Motivation**

- Real-world frames often contain moving foreground artifacts (e.g., a football over a static field). Masking the object in one frame only is insufficient because its position changes independently of the background. Since we don’t know the warp a priori, we can’t back-project a single mask across frames. The correct approach is to supply both masks and take their intersection.
- Templates may include uninformative/low-texture or noisy regions, or partial overlaps with other objects. Excluding such regions from the alignment improves robustness and convergence.

This PR completes and replaces https://github.com/opencv/opencv/pull/22997

### 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-11-21 11:50:29 +03:00
Dmitry Kurtaev
2cc5b69fd1 Merge pull request #28043 from dkurt:d.kurtaev/convexHull_eps
Handle near-zero convexity in convexHull #28043

### Pull Request Readiness Checklist

resolves https://github.com/opencv/opencv/issues/21482
closes https://github.com/opencv/opencv/issues/14401

Also skip a code that determines orientation inside rotatingCalipers and rely on the order after convexHull

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-11-21 10:54:38 +03:00
Adrian Kretz
c0364e4e31 Merge pull request #27993 from akretz:undistortPoints_convergence
Undistort points convergence #27993

I have looked into the `undistortPoints()` problem of issue #27916 and have found a solution. The problem is, as @Linhuihang has correctly pointed out, that the fixed-point iterations do not converge. Here are the functions which are optimized for the undistortion problem:

$$
\begin{aligned}
  r^2  &= x'^2 + y'^2 \\
  f_1(x') &= \frac{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}{1 + k_1 r^2 + k_2 r^4 + k_3 r^6} (x'' - 2p_1 x' y' - p_2(r^2 + 2 x'^2) - s_1 r^2 + s_2 r^4) = x' \\
  f_2(y') &=  \frac{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}{1 + k_1 r^2 + k_2 r^4 + k_3 r^6} (y'' - p_1 (r^2 + 2 y'^2) - 2 p_2 x' y' - s_3 r^2 - s_4 r^4) = y'
\end{aligned}
$$

where $x', y'$ are the undistorted points we want to compute and and $x'', y''$ are the given distorted points. This problem is solved using fixed-point iterations like

$$
  x'_{k+1} = f_1(x'_k),\quad
  y'_{k+1} = f_2(y'_k)
$$

I guess the issue here is that the distortion function does not necessarily satisfy the [Banach fixed-point theorem](https://en.wikipedia.org/wiki/Banach_fixed-point_theorem), i.e. the slope of the function can be too large. This can be seen in @Linhuihang's comment https://github.com/opencv/opencv/issues/27916#issuecomment-3417883642 - the point series jumps around and doesn't converge.

A common solution is to instead do damped fixed-point iterations, so that the updates are "more smooth".

$$
  x'_{k+1} = (1 - \alpha) x'_k + \alpha f_1(x'_k),\quad
  y'_{k+1} = (1 - \alpha) y'_k + \alpha f_2(y'_k)
$$

I have implemented a simple logic which starts with $\alpha = 1$ (so just like it is now) and reduces $\alpha$ whenever the optimization error would increase. This seems reasonable to me: the initial logic is to do normal fixed-point iterations and to gradually become "more damped" when we notice that we don't converge. Perhaps there is a better way to ensure convergence, but this is the most straightforward modification to the current code that I have found.

This problem is not due to the $\tau_x, \tau_y$ parameters; it also occurs when they are zero. In fact, the fixed-point iterations are done when the tilt correction of $\tau_x, \tau_y$ has already been applied. I have added a test to reproduce the problem. This PR fixes #27916.


### 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
2025-11-21 10:52:02 +03:00
Pierre Chatelier
fdf0332954 Merge pull request #23913 from chacha21:GpuMatND_InputOutputArray
make cuda::GpuMatND compatible with InputArray/OutputArray #23913

continuation of  [PR#19259](https://github.com/opencv/opencv/pull/19259) 

Make cuda::GpuMatND wrappable in InputArray/OutputArray
The goal for now is just wrapping, some functions are not supported (InputArray::size(), InputArray::convertTo(), InputArray::assign()...)

No new feature for cuda::GpuMatND

- [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-11-21 08:41:12 +03:00
JayPol999
35f82d4599 Fix OpenBLAS detection on Fedora/RHEL (Issue #28049) 2025-11-20 23:24:55 +05:30
Alexander Smorkalov
b90041b30a Merge pull request #27975 from asmorkalov:as/windows_arm_round
Use rounding intrinsic on Windows for ARM
2025-11-20 20:09:46 +03:00
Alexander Smorkalov
f7d3850183 Use rounding intrinsic on Windows for ARM. 2025-11-20 18:51:59 +03:00
Alexander Smorkalov
308631197f Improved HAL status check for filter, sepFilter and morphology operations to support stateless HAL. 2025-11-20 08:55:03 +03:00
Alexander Smorkalov
8fb0b7177f Merge pull request #28040 from vrabaud:bmp
Avoid integer overflow in BmpDecoder::readData
2025-11-19 15:40:49 +03:00
Vincent Rabaud
01cce12ce7 Avoid integer overflow in BmpDecoder::readData
This solves https://g-issues.oss-fuzz.com/issues/457623761
2025-11-19 10:20:06 +01:00
Alexander Smorkalov
f627368ebc Merge pull request #28029 from StefaniaHergane:hs/govbackend_update_ov_tensor_data_usage
Update usage of ov::Tensor::data in govbackend
2025-11-18 11:08:19 +03:00
Stefania Hergane
67bece1d99 Update usage of ov::Tensor::data in govbackend.cpp
Signed-off-by: StefaniaHergane <stefania-persida.hergane@intel.com>
2025-11-17 16:20:24 +00:00
Alexander Smorkalov
2a5f3980f0 Merge pull request #26480 from saolaolsson:consistent-termcriteria-for-undistortimagepoints
Make undistortImagePoints default criteria undistortPoints consistent
2025-11-17 13:35:28 +03:00
Kumataro
6f74546488 Merge pull request #27318 from Kumataro:fix27298
core: add copyAt() for ROI operation #27318

Close https://github.com/opencv/opencv/issues/27320
Close https://github.com/opencv/opencv/issues/27298

### 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
2025-11-17 10:58:20 +03:00