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

34232 Commits

Author SHA1 Message Date
Vincent Rabaud 7e3f6875c1 Prevent signed integer overflow in LshTable
This change keeps everything as size_t and the expression is valid
because maxk_block > 0 in hte loop.
2024-05-24 23:47:36 +02:00
Alexander Smorkalov ba28b7d6df Merge pull request #25636 from FantasqueX:use-left-arrow-1
Use leftarrow in color conversion Doc
2024-05-24 20:49:57 +03:00
Alexander Smorkalov 28c3000f62 Merge pull request #25629 from arobase-che:fix-opencv.js-compilation-memory-init-file
Fix the compilation of OpenCV.js by deleting the option --memory-init-file of em++
2024-05-24 10:28:16 +03:00
Letu Ren 6bee2facf3 Use leftarrow in color conversion Doc 2024-05-24 14:56:50 +08:00
Alexander Alekhin f1aef892bf Merge pull request #25619 from opencv-pushbot:gitee/alalek/update_ffmpeg_4.x 2024-05-23 16:54:30 +00:00
Alexander Smorkalov f5793d26b7 Merge pull request #25632 from bebuch:patch-1
Support VS 2022 17.1x.y
2024-05-23 18:24:37 +03:00
Alexander Smorkalov de3eb0ec5f Merge pull request #25626 from asmorkalov:as/HAL_lut_size
Fixed width and height order in HAL call for LUT
2024-05-23 17:52:43 +03:00
Alexander Smorkalov 4824354e46 Merge pull request #25631 from asmorkalov:as/png_build_fix
Fixed CMake Missing variable is: CMAKE_ASM_COMPILE_OBJECT in PNG build #25631

Error message with `-DBUILD_PNG=ON` on ARM64:
```
-- Configuring done
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_ASM_COMPILE_OBJECT
-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
```

### 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-05-23 17:14:01 +03:00
Benjamin Buch 6fb3f63331 Support VS 2022 17.1x.y
With 17.10.0 the MSVC toolset was set to 19.40.x which breaks the compatibility test in the OpenCV's CMake Config files.
2024-05-23 16:05:19 +02:00
Alexander Smorkalov 16b5096ed0 Merge pull request #25618 from asmorkalov:as/kleidicv_0.1.0
KleidiCV HAL update to version 0.1.0. #25618

Original integration PR: https://github.com/opencv/opencv/pull/25443

Force the library for testing with CI

### 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-05-23 16:55:44 +03:00
Alexander Smorkalov 9f1559595b Merge pull request #25627 from vrabaud:tiff
Disambiguate cv::format
2024-05-23 12:51:16 +03:00
ache f8ad6eb71b Delete option --memory-init-file of em++ 2024-05-23 10:59:09 +02:00
Vincent Rabaud 500207785a Disambiguate cv::format
Otherwise, this test does not compile with C++20, which includes
std::format.
2024-05-23 10:41:03 +02:00
Alexander Smorkalov f85014534f Fixed width and height order in HAL call for LUT. 2024-05-23 10:30:33 +03:00
Alexander Smorkalov f2c48e5e97 Merge pull request #25622 from lackhole:remove-unicode-character
Replace non-ascii character in comment
2024-05-22 22:24:13 +03:00
Suleyman TURKMEN e765c9f9c8 Merge pull request #25580 from sturkmen72:libpng_1_6_43
3rdparty: update libpng 1.6.43 #25580

### 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
2024-05-22 15:45:10 +03:00
lackhole 28d029c158 Replace non-ascii character 2024-05-22 20:01:54 +09:00
Alexander Alekhin 5696413bbc ffmpeg/4.x: update FFmpeg wrapper 2024.05 2024-05-22 08:53:39 +00:00
Alexander Smorkalov 8393885a39 Merge pull request #25615 from asmorkalov:update_version_4.10.0-pre
pre: OpenCV 4.10.0 (version++)
2024-05-21 16:58:41 +03:00
Yuantao Feng 49f80cb3c4 Merge pull request #24804 from fengyuentau:fix_lapack_warnings
core: try to solve warnings caused by Apple's new LAPACK interface #24804

Resolves https://github.com/opencv/opencv/issues/24660

Apple's BLAS documentation: https://developer.apple.com/documentation/accelerate/blas?language=objc

New interface since macOS >= 13.3, iOS >= 16.4.

Todo:

- [x] Detect macOS version.
- [x] ~Detect iOS versions (major and minor version).~ No calling of Accelerate New LAPACK on iOS.
- [x] Solve calling `cblas_cgemm` and `cblas_zgemm`.

### 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-05-21 16:58:16 +03:00
HAN Liutong e52540162f Merge pull request #25586 from hanliutong:rvv-64f
Fix v_round and enable unit tests for scalable universal intrinsic 64F type. #25586

This may be a legacy issue from the previous PR #24325. I don't quite remember why the float 64 part of the unit test was not enabled at that time.

Whatever, this patch enables the unit tests for scalable 64F type , and makes the necessary modifications to the RVV backend to make the tests pass.

This patch is compiled by GCC 14 and LLVM 17 &18, and tested on QEMU and k230.

### 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
- [ ] 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-05-21 14:10:19 +03:00
Alexander Smorkalov 0b39a51be8 pre: OpenCV 4.10.0 (version++). 2024-05-21 11:37:05 +03:00
Alexander Smorkalov c71d495273 Merge pull request #25611 from asmorkalov:as/openjpeg_2.5.2
OpenJPEG update to 2.5.2.
2024-05-20 19:57:07 +03:00
Alexander Smorkalov 40faced6c1 OpenJPEG update to 2.5.2. 2024-05-20 13:44:43 +03:00
Alexander Smorkalov 23ba63b0be Merge pull request #25574 from savuor:rv/hal_sub8x32f
HAL for sub8x32f added
2024-05-20 13:19:05 +03:00
Rostislav Vasilikhin d95ff3ac04 HAL for sub8x32f added 2024-05-20 10:48:56 +03:00
Rostislav Vasilikhin 69af621ef6 Merge pull request #25506 from savuor:rv/hal_mul16
HAL mul8x8to16 added #25506

Fixes #25034

### 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-05-20 10:43:18 +03:00
Rostislav Vasilikhin 83e32c4d37 Merge pull request #25511 from savuor:rv/hal_projectpoints
HAL for projectPoints() added #25511

### 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-05-20 10:42:17 +03:00
Cristian Dobre e05ad56f6e Merge pull request #24903 from cristidbr-adapta:feature-barcode-detector-parameters
Feature barcode detector parameters #24903

Attempt to solve #24902 without changing the default detector behaviour. 
Megre with extra: https://github.com/opencv/opencv_extra/pull/1150

**Introduces new parameters and methods to `cv::barcode::BarcodeDetector`**.

### 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-05-20 09:53:22 +03:00
Maksim Shabunin 6350bfbf79 Merge pull request #25564 from mshabunin:cleanup-imgproc-2
imgproc: C-API cleanup, drawContours refactor #25564

Changes:
* moved several macros from types_c.h to cvdef.h (assuming we will continue using them)
* removed some cases of C-API usage in _imgproc_ module (`CV_TERMCRIT_*` and `CV_CMP_*`)
* refactored `drawContours` to use C++ API instead of calling `cvDrawContours` + test for filled contours with holes (case with non-filled contours is simpler and is covered in some other tests)

#### Note:
There is one case where old drawContours behavior doesn't match the new one - when `contourIdx == -1` (means "draw all contours") and `maxLevel == 0` (means draw only selected contours, but not what is inside).

From the docs:
> **contourIdx**	Parameter indicating a contour to draw. If it is negative, all the contours are drawn.

> **maxLevel**	Maximal level for drawn contours. If it is 0, only the specified contour is drawn. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account when there is hierarchy available.


Old behavior - only one first contour is drawn:
![actual_screenshot_08 05 2024](https://github.com/opencv/opencv/assets/3304494/d0ae1d64-ddad-46bb-8acc-6f696874f71b)
a
New behavior (also expected by the test) - all contours are drawn:
![expected_screenshot_08 05 2024](https://github.com/opencv/opencv/assets/3304494/57ccd980-9dde-4006-90ee-19d6ce76912a)
2024-05-17 15:01:05 +03:00
Alexander Smorkalov 8aa129dce1 Merge pull request #25603 from asmorkalov:as/skip_vulkan_concat
Skip Test_Caffe_layers.Concat with Vulkan due to sporadic failures
2024-05-17 12:55:51 +03:00
Alexander Smorkalov 5f509e2ec1 Skip Test_Caffe_layers.Concat with Vulkan due to sporadic failures. 2024-05-17 11:54:25 +03:00
Alexander Smorkalov 5e7887897a Merge pull request #25525 from sturkmen72:png-spng-test
improvements on tests of imagecodecs module
2024-05-17 11:37:12 +03:00
Yuantao Feng bc0618b688 Merge pull request #25582 from fengyuentau:dnn/dump_pbtxt
Current net exporter `dump` and `dumpToFile` exports the network structure (and its params) to a .dot file which works with `graphviz`. This is hard to use and not friendly to new user. What's worse, the produced picture is not looking pretty.
dnn: better net exporter that works with netron #25582

This PR introduces new exporter `dumpToPbtxt` and uses this new exporter by default with environment variable `OPENCV_DNN_NETWORK_DUMP`. It mimics the string output of a onnx model but modified with dnn-specific changes, see below for an example.

![image](https://github.com/opencv/opencv/assets/17219438/0644bed1-da71-4019-8466-88390698e4df)

## Usage

Call `cv::dnn::Net::dumpToPbtxt`:

```cpp
TEST(DumpNet, dumpToPbtxt) {
    std::string path = "/path/to/model.onnx";
    auto net = readNet(path);

    Mat input(std::vector<int>{1, 3, 640, 480}, CV_32F);
    net.setInput(input);

    net.dumpToPbtxt("yunet.pbtxt");
}
```

Set `export OPENCV_DNN_NETWORK_DUMP=1`

```cpp
TEST(DumpNet, env) {
    std::string path = "/path/to/model.onnx";
    auto net = readNet(path);

    Mat input(std::vector<int>{1, 3, 640, 480}, CV_32F);
    net.setInput(input);

    net.forward();
}
```

---

Note:
- `pbtxt` is registered as one of the ONNX model suffix in netron. So you can see `module: ai.onnx` and such in the model.
- We can get the string output of an ONNX model with the following script

```python
import onnx
net = onnx.load("/path/to/model.onnx")
net_str = str(net)
file = open("/path/to/model.pbtxt", "w")
file.write(net_str)
file.close()
```

### 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.
- [x] The feature is well documented and sample code can be built with the project CMake
2024-05-17 11:07:05 +03:00
Alexander Smorkalov 0044047782 Merge pull request #25598 from asmorkalov:as/tables_range_check_core
Check range for type-dependant function tables #25598

Address https://github.com/opencv/opencv/issues/24703

### 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-05-17 10:48:40 +03:00
Alexander Smorkalov 41f08988b4 Merge pull request #25585 from FantasqueX:add-policy-0148
set policy 0148 explicitly
2024-05-16 18:43:36 +03:00
Alexander Smorkalov f2d6527a4b Merge pull request #25596 from asmorkalov:as/ci_ubuntu24.04
Added Ubuntu 24.04 to regular CI.
2024-05-16 17:03:44 +03:00
Alexander Smorkalov d29ad2fb71 Merge pull request #25443 from asmorkalov:as/kleidicv_hal
Integrate ARM KleidiCV as OpenCV HAL #25443

The library source code with license: https://gitlab.arm.com/kleidi/kleidicv/

### 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-05-16 15:29:06 +03:00
Alexander Smorkalov 5f3a505a2d Added Ubuntu 24.04 to regular CI. 2024-05-16 11:17:35 +03:00
Alexander Smorkalov 78ed6de518 Merge pull request #25594 from LaurentBerger:I25587
typo
2024-05-16 08:46:56 +03:00
Suleyman TURKMEN 7d6b6161cc Update imgcodecs tests 2024-05-15 22:24:21 +03:00
CNOCycle 7713c84465 Merge pull request #25297 from CNOCycle:tflite/transpose
Support Transpose op in TFlite #25297

**Merge with extra**: https://github.com/opencv/opencv_extra/pull/1168

The purpose of this PR is to introduce support for the Transpose op in TFlite format and to add a shape comparison between the output tensors and the references. In some occasional cases, the shape of the output tensor is `[1,4,1,1]`, while the shape of the reference tensor is `[1,4]`. Consequently, the norm check incorrectly reports that the test has passed, as the residual is zero.

Below is a Python script for generating testing data. The generated data can be integrated into the repo `opencv_extra`.

```python
import numpy as np
import tensorflow as tf

PREFIX_TFL = '/path/to/opencv_extra/testdata/dnn/tflite/'

def generator(input_tensor, model, saved_name):

    # convert keras model to .tflite format
    converter = tf.lite.TFLiteConverter.from_keras_model(model)
    #converter.optimizations = [tf.lite.Optimize.DEFAULT]
    converter.optimizations = [None]
    tflite_model = converter.convert()
    with open(f'{PREFIX_TFL}/{saved_name}.tflite', 'wb') as f:
        f.write(tflite_model)

    # save the input tensor to .npy
    if input_tensor.ndim == 4:
        opencv_tensor = np.transpose(input_tensor, (0,3,1,2))
    else:
        opencv_tensor = input_tensor
    opencv_tensor = np.copy(opencv_tensor, order='C').astype(np.float32)
    np.save(f'{PREFIX_TFL}/{saved_name}_inp.npy', opencv_tensor)

    # generate output tenosr and save it to .npy
    mat_out = model(input_tensor).numpy()
    mat_out = np.copy(mat_out, order='C').astype(np.float32)
    if mat_out.ndim == 4:
        mat_out = np.transpose(mat_out, (0,3,1,2))
    interpreter = tf.lite.Interpreter(model_content=tflite_model)
    out_name = interpreter.get_output_details()[0]['name']
    np.save(f'{PREFIX_TFL}/{saved_name}_out_{out_name}.npy', mat_out)

def build_transpose():

    model_name = "keras_permute"
    mat_in = np.array([[[1,2,3], [4,5,6]]], dtype=np.float32)

    model = tf.keras.Sequential()
    model.add(tf.keras.Input(shape=(2,3)))
    model.add(tf.keras.layers.Permute((2,1)))
    model.summary()

    generator(mat_in, model, model_name)

if __name__ == '__main__':
    build_transpose()
```

### 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
- [ ] 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-05-15 20:07:25 +03:00
unknown 5009109167 typo 2024-05-15 16:16:07 +02:00
Laurent Berger 76d9f7aaeb Merge pull request #25591 from LaurentBerger:I25589
Remove dnn::layer::allocate in doc #25591

### 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 #25589 
- [ ] 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-05-15 17:08:52 +03:00
Alexander Smorkalov 68581e7b4a Merge pull request #25592 from asmorkalov:as/gapi_disable_steaming_again
Disable more streaming test in G-API due to instability.
2024-05-15 16:41:13 +03:00
Alexander Smorkalov c034c46e69 Disable more streaming test in G-API due to instability. 2024-05-15 15:41:23 +03:00
Alexander Smorkalov 4d4def2d36 Merge pull request #25590 from asmorkalov:as/restore_highgui_test
Restored and extended Highgui test logic for small windows.
2024-05-15 14:56:00 +03:00
Alexander Smorkalov 2e07ec1f87 Restored and extended Highgui test logic for small windows. 2024-05-15 12:47:22 +03:00
Kumataro 47a6ffb73c Merge pull request #25561 from Kumataro:fix25560
highgui: wayland: expand image width if title bar cannot be shown

Close #25560

### 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-05-15 11:00:46 +03:00
alexlyulkov 03507e06b4 Merge pull request #25518 from alexlyulkov:al/fixed-gemm-openvino
Fixed OpenVINO gemm layer #25518

Fixed OpenVINO gemm layer
The problem was that our layer didn't properly handle all the possible gemm options in OpenVINO mode
Fixes #25472

### 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-05-14 17:41:19 +03:00