Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork56.4k
(5.x) Merge 4.x#23979
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
(5.x) Merge 4.x#23979
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…supported_typesGAPI Fluid SIMD:Add support of new several types for the Merge3- Support of the new several types was added.- Fixes for the Split/Merge and ConvertTo issues.
…_updatePython package classifiers sync with OpenCV-Python repo
…lying-logic-ie-backendWIP: [G-API] IE Backend: Update the condition for applying the resize preprocessing
…ng_fixFixed OpenJPEG 2000 compiler warning for some GCC versions (opencv#23710)
…vino-backend[G-API] Implement OpenVINO 2.0 backendopencv#23595### Pull Request Readiness ChecklistImplemented basic functionality for `OpenVINO` 2.0 G-API backend.#### Overview- [x] Implement `Infer` kernel with some of essential configurable parameters + IR/Blob models format support.- [ ] Implement the rest of kernels: `InferList`, `InferROI`, `Infer2` + other configurable params (e.g reshape)- [x] Asyncrhonous execution support- [ ] Remote context supportSee details athttps://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- [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
…h_arucoAdd detect qr with arucoopencv#23264Using Aruco to detect finder patterns to search QR codes.TODO (in next PR):- add single QR detect (update `detect()` and `detectAndDecode()`)- need reduce full enumeration of finder patterns- need add finder pattern info to `decode` step- need to merge the pipeline of the old and new algorithm[Current results:](https://docs.google.com/spreadsheets/d/1ufKyR-Zs-IGXwvqPgftssmTlceVjiQX364sbrjr2QU8/edit#gid=1192415584)+20% total detect, +8% total decode in OpenCV [QR benchmark](https://github.com/opencv/opencv_benchmarks/tree/develop/python_benchmarks/qr_codes) 78.4% detect, 58.7% decode vs 58.5 detect, 50.5% decode in default[main.py.txt](https://github.com/opencv/opencv/files/10762369/main.py.txt)add new info to [google docs](https://docs.google.com/spreadsheets/d/1ufKyR-Zs-IGXwvqPgftssmTlceVjiQX364sbrjr2QU8/edit?usp=sharing)### Pull Request Readiness ChecklistSee details athttps://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
Removed passing try_gpu parameter to FeatherBlender constructor because it only has sharpness parameter.
…entMethod_bindingfix Java bindings for cornerRefinementMethod binding
…therblenderFix missuse of try_gpu in stitching/FeatherBlender
imgproc/cvtColor: fixed invalid read in BGR2HLS
imgproc: add contour values check to IntelligentScissorsMB testsPreparation for theopencv#21959 changes as per@asmorkalov'sopencv#21959 (comment) suggestion.### Pull Request Readiness ChecklistSee details athttps://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.- [ ] The feature is well documented and sample code can be built with the project CMake
Assertion Fix in Split Layeropencv#23746### Pull Request Readiness ChecklistThis PR fixes issue mentioned in [opencv#23663](opencv#23663)Merge withopencv/opencv_extra#1067See details athttps://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
…d-hotfixG-API: OpenVINO Backend Hotfix
checktype in blobFromImages and blobFromImagesWithParams
…ors-optimisationimgproc: optimise local cost computation in IntelligentScissorsMB::buildMap
DNN: fix bug for X86 Winogradopencv#23763Addressopencv#23760The patch aims to add a runtime check for X86 platform without AVX(2).### Pull Request Readiness ChecklistSee details athttps://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
Added cv::hasNonZero() #22947 `cv::hasNonZero()` is semantically equivalent to (`cv::countNonZero()>0`) but stops parsing the image when a non-zero value is found, for a performance gain- [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 CMakeThis pull request might be refused, but I submit it to know if further work is needed or if I just stop working on it.The idea is only a performance gain vs `countNonZero()>0` at the cost of more code.Reasons why it might be refused :- this is just more code- the execution time is "unfair"/"unpredictable" since it depends on the position of the first non-zero value- the user must be aware that default search is from first row/col to last row/col and has no way to customize that, even if his use case lets him know where a non zero could be found- the PR in its current state is using, for the ocl implementation, a mere `countNonZero()>0` ; there is not much sense in trying to break early the ocl kernel call when non-zero is encountered. So the ocl implementation does not bring any improvement.- there is no IPP function that can help (`countNonZero()` is based in `ippCountInRange`)- the PR in its current state might be slower than a call to `countNonZero()>0` in some cases (see "challenges" below)Reasons why it might be accepted :- the performance gain is huge on average, if we consider that "on average" means "non zero in the middle of the image"- the "missing" IPP implementation is replaced by an "Open-CV universal intrinsics" implementation- the PR in its current state is almost always faster than a call to `countNonZero()>0`, is only slightly slower in the worst cases, and not even for all matrices**Challenges**The worst case is either an all-zero matrix, or a non-zero at the very last position. In such a case, the `hasNonZero()` implementation will parse the whole matrix like `countNonZero()` would do. But we expect the performance to be the same in this case. And `ippCountInRange` is hard to beat !There is also the case of very small matrices (<=32x32...) in 8b, where the SIMD can be hard to feed.For all cases but the worse, my custom `hasNonZero()` performs better than `ippCountInRange()`For the worst case, my custom `hasNonZero()` performs better than `ippCountInRange()` *except for large matrices of type CV_32S or CV_64F* (but surprisingly, not CV_32F).The difference is small, but it exists (and I don't understand why).For very small CV_8U matrices `ippCountInRange()` seems unbeatable.Here is the code that I use to check timings``` //test cv::hasNonZero() vs (cv::countNonZero()>0) for different matrices sizes, types, strides... { cv::setRNGSeed(1234); const std::vector<cv::Size> sizes = {{32, 32}, {64, 64}, {128, 128}, {320, 240}, {512, 512}, {640, 480}, {1024, 768}, {2048, 2048}, {1031, 1000}}; const std::vector<int> types = {CV_8U, CV_16U, CV_32S, CV_32F, CV_64F}; const size_t iterations = 1000; for(const cv::Size& size : sizes) { for(const int type : types) { for(int c = 0 ; c<2 ; ++c) { const bool continuous = !c; for(int i = 0 ; i<4 ; ++i) { cv::Mat m = continuous ? cv::Mat::zeros(size, type) : cv::Mat(cv::Mat::zeros(cv::Size(2*size.width, size.height), type), cv::Rect(cv::Point(0, 0), size)); const bool nz = (i <= 2); const unsigned int nzOffsetRange = 10; const unsigned int nzOffset = cv::randu<unsigned int>()%nzOffsetRange; const cv::Point pos = (i == 0) ? cv::Point(nzOffset, 0) : (i == 1) ? cv::Point(size.width/2-nzOffsetRange/2+nzOffset, size.height/2) : (i == 2) ? cv::Point(size.width-1-nzOffset, size.height-1) : cv::Point(0, 0); std::cout << "============================================================" << std::endl; std::cout << "size:" << size << " type:" << type << " continuous = " << (continuous ? "true" : "false") << " iterations:" << iterations << " nz=" << (nz ? "true" : "false"); std::cout << " pos=" << ((i == 0) ? "begin" : (i == 1) ? "middle" : (i == 2) ? "end" : "none"); std::cout << std::endl; cv::Mat mask = cv::Mat::zeros(size, CV_8UC1); mask.at<unsigned char>(pos) = 0xFF; m.setTo(cv::Scalar::all(0)); m.setTo(cv::Scalar::all(nz ? 1 : 0), mask); std::vector<bool> results; std::vector<double> timings; { bool res = false; auto ref = cv::getTickCount(); for(size_t k = 0 ; k<iterations ; ++k) res = cv::hasNonZero(m); auto now = cv::getTickCount(); const bool error = (res != nz); if (error) printf("!!ERROR!!\r\n"); results.push_back(res); timings.push_back(1000.*(now-ref)/cv::getTickFrequency()); } { bool res = false; auto ref = cv::getTickCount(); for(size_t k = 0 ; k<iterations ; ++k) res = (cv::countNonZero(m)>0); auto now = cv::getTickCount(); const bool error = (res != nz); if (error) printf("!!ERROR!!\r\n"); results.push_back(res); timings.push_back(1000.*(now-ref)/cv::getTickFrequency()); } const size_t bestTimingIndex = (std::min_element(timings.begin(), timings.end())-timings.begin()); if ((bestTimingIndex != 0) || (std::find_if_not(results.begin(), results.end(), [&](bool r) {return (r == nz);}) != results.end())) { std::cout << "cv::hasNonZero\t\t=>" << results[0] << ((results[0] != nz) ? " ERROR" : "") << " perf:" << timings[0] << "ms => " << (iterations/timings[0]*1000) << " im/s" << ((bestTimingIndex == 0) ? " * " : "") << std::endl; std::cout << "cv::countNonZero\t=>" << results[1] << ((results[1] != nz) ? " ERROR" : "") << " perf:" << timings[1] << "ms => " << (iterations/timings[1]*1000) << " im/s" << ((bestTimingIndex == 1) ? " * " : "") << std::endl; } } } } } }```Here is a report of this benchmark (it only reports timings when `cv::countNonZero()` is faster)My CPU is an Intel Core I7 4790 @ 3.60Ghz```============================================================size:[32 x 32] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:0 continuous = false iterations:1000 nz=true pos=middlecv::hasNonZero =>1 perf:0.353764ms => 2.82674e+06 im/scv::countNonZero =>1 perf:0.282044ms => 3.54555e+06 im/s *============================================================size:[32 x 32] type:0 continuous = false iterations:1000 nz=true pos=endcv::hasNonZero =>1 perf:0.610478ms => 1.63806e+06 im/scv::countNonZero =>1 perf:0.283182ms => 3.5313e+06 im/s *============================================================size:[32 x 32] type:0 continuous = false iterations:1000 nz=false pos=nonecv::hasNonZero =>0 perf:0.630115ms => 1.58701e+06 im/scv::countNonZero =>0 perf:0.282044ms => 3.54555e+06 im/s *============================================================size:[32 x 32] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:5 continuous = false iterations:1000 nz=true pos=endcv::hasNonZero =>1 perf:0.607347ms => 1.64651e+06 im/scv::countNonZero =>1 perf:0.467037ms => 2.14116e+06 im/s *============================================================size:[32 x 32] type:5 continuous = false iterations:1000 nz=false pos=nonecv::hasNonZero =>0 perf:0.618162ms => 1.6177e+06 im/scv::countNonZero =>0 perf:0.468175ms => 2.13595e+06 im/s *============================================================size:[32 x 32] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[32 x 32] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[32 x 32] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[32 x 32] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[32 x 32] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[64 x 64] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[64 x 64] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[64 x 64] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[64 x 64] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[128 x 128] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[128 x 128] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[128 x 128] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[128 x 128] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[320 x 240] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[320 x 240] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[320 x 240] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[320 x 240] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[512 x 512] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[512 x 512] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[512 x 512] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[512 x 512] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[640 x 480] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[640 x 480] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[640 x 480] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[640 x 480] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[1024 x 768] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1024 x 768] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1024 x 768] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[1024 x 768] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:4 continuous = true iterations:1000 nz=true pos=endcv::hasNonZero =>1 perf:895.381ms => 1116.84 im/scv::countNonZero =>1 perf:882.569ms => 1133.06 im/s *============================================================size:[2048 x 2048] type:4 continuous = true iterations:1000 nz=false pos=nonecv::hasNonZero =>0 perf:899.53ms => 1111.69 im/scv::countNonZero =>0 perf:870.894ms => 1148.24 im/s *============================================================size:[2048 x 2048] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[2048 x 2048] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:6 continuous = true iterations:1000 nz=true pos=endcv::hasNonZero =>1 perf:2018.92ms => 495.313 im/scv::countNonZero =>1 perf:1966.37ms => 508.552 im/s *============================================================size:[2048 x 2048] type:6 continuous = true iterations:1000 nz=false pos=nonecv::hasNonZero =>0 perf:2005.87ms => 498.537 im/scv::countNonZero =>0 perf:1992.78ms => 501.812 im/s *============================================================size:[2048 x 2048] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[2048 x 2048] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[2048 x 2048] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[2048 x 2048] type:6 continuous = false iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:0 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:0 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:0 continuous = true iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:0 continuous = true iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:0 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:0 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:0 continuous = false iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:0 continuous = false iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:2 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:2 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:2 continuous = true iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:2 continuous = true iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:2 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:2 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:2 continuous = false iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:2 continuous = false iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:4 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:4 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:4 continuous = true iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:4 continuous = true iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:4 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:4 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:4 continuous = false iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:4 continuous = false iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:5 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:5 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:5 continuous = true iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:5 continuous = true iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:5 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:5 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:5 continuous = false iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:5 continuous = false iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:6 continuous = true iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:6 continuous = true iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:6 continuous = true iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:6 continuous = true iterations:1000 nz=false pos=none============================================================size:[1031 x 1000] type:6 continuous = false iterations:1000 nz=true pos=begin============================================================size:[1031 x 1000] type:6 continuous = false iterations:1000 nz=true pos=middle============================================================size:[1031 x 1000] type:6 continuous = false iterations:1000 nz=true pos=end============================================================size:[1031 x 1000] type:6 continuous = false iterations:1000 nz=false pos=nonedone```fixing typo in stitching parameter names
Add AVIF support through libavif.opencv#23596This is tofixopencv#19271Extra:opencv/opencv_extra#1069### Pull Request Readiness ChecklistSee details athttps://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
Change Scalar assignment in Python from single value
…essing-to-ie-backendG-API: Expose explicit preprocessing for IE Backendopencv#23786### Pull Request Readiness ChecklistSee details athttps://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
added Aruco MIP dictionariesopencv#23785added Aruco MIP dictionaries: DICT_ARUCO_MIP_16h3, DICT_ARUCO_MIP_25h7, DICT_ARUCO_MIP_36h12 from [Aruco.js](https://github.com/damianofalcioni/js-aruco2), converted in opencv format usinghttps://github.com/damianofalcioni/js-aruco2/blob/master/src/dictionaries/utils/dic2opencv.js### Pull Request Readiness ChecklistSee details athttps://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
JS bindings for Aruco-based QR code detector
Moved barcode from opencv_contribopencv#23666Merge withopencv/opencv_contrib#3497##### TODO- [x] Documentation (bib)- [x] Tutorial (references)- [x] Sample app (refactored)- [x] Java (test passes)- [x] Python (test passes)- [x] Build without DNN
…ping-modulefeat: provide cv2.typing aliases at runtime
removing unreachable code and fixing a typo
Barcode js bindings
objdetect: updated barcode test
Consider half pixel mode in ONNX resize
opencv-alalek left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Non-ported changes must be mentioned in the description, like#23078#23806 and may be others.
Regular merge process assumes that ALL(!) PRs are propagated by default. Non-ported PRs (excluding dedicated "backport" PRs) should be considered as a strong exceptions.
Otherwise it just increase technical debt and complicates future merges as base of patches is not here.
Also special labels must be applied to postpones PRs for proper tracking: seeport to 5.x is needed
asmorkalov commentedJul 12, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
I want to synchronize 4.x and 5.x in 3 steps:
|
opencv-alalek commentedJul 13, 2023
Got it. |
asmorkalov commentedJul 13, 2023
@opencv-alalek I tuned threshold in 3d module. JS failures are not related to the merge and will be fixed with another PR. |
Merge usac to 5.x#24005### Pull Request Readiness ChecklistSee details athttps://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 CMakeBase branch is PR#23979. Merging PR#23078, 23900 and PR#23806 to 5.x
Uh oh!
There was an error while loading.Please reload this page.
Extra:opencv/opencv_extra#1074
Contrib:opencv/opencv_contrib#3527
#21797 from anna-khakimova:ak/merge3_extend_supported_types
#21959 from cpoerschke:4.x-intelligent-scissors-optimisation
#22947 from chacha21:hasNonZero
#23264 from AleksandrPanov:add_detect_qr_with_aruco
#23595 from TolyaTalamanov:at/implement-openvino-backend
#23596 from vrabaud:libavif
#23666 from mshabunin:barcode-move
#23668 from TolyaTalamanov:at/fix-resize-applying-logic-ie-backend
#23688 from cpoerschke:4.x-pr-21959-prep
#23721 from asmorkalov:as/openjpeg_2.5_warning_fix
#23722 from asmorkalov:as/python_classifiers_update
#23725 from asmorkalov:as/aruco_js_refresh
#23732 from vekkuli:vekkuli-patch-create-featherblender
#23740 from Peekabooc:4.x
#23746 from Abdurrahheem:ash/graph_simplifier
#23748 from AleksandrPanov:fix_cornerRefinementMethod_binding
#23750 from mshabunin:fix-bgr2hls-access
#23758 from AleksandrPanov:add_GenericGraphicalCode_interface
#23761 from LaurentBerger:typeblobfromimages
#23762 from TolyaTalamanov:at/gapi-ov-backend-hotfix
#23763 from zihaomu:add_runtime_check
#23766 from TolyaTalamanov:at/segmentation-demo-desync
#23769 from asmorkalov:as/qrcode_js_fix
#23775 from kai-waang:fixing-typo
#23783 from zihaomu/remove_unsupported_character
#23785 from damianofalcioni:4.x
#23786 from TolyaTalamanov:at/expose-preprocessing-to-ie-backend
#23788 from dkurt:py_scalar_assign
#23789 from asmorkalov:as/python_aruco_qr
#23790 from asmorkalov:as/qrcode_aruco_js
#23795 from dkurt:tf_half_pixel_for_nn
#23797 from asmorkalov:as/barcode_js_bindings
#23798 from VadimLevin:dev/vlevin/runtime-typing-module
#23800 from kai-waang:4.x
#23807 from mshabunin:barcode-test
#23721 from asmorkalov:as/openjpeg_2.5_warning_fix
Previous "Merge 4.x":#23718