{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":12756992,"defaultBranch":"4.x","name":"opencv_contrib","ownerLogin":"opencv","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-09-11T13:28:04.000Z","ownerAvatar":"https://github.com/avatars/u/5009934?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717345290.0","currentOid":""},"activityList":{"items":[{"before":"25070d652b73f3b269f954609273b0dfb388cd42","after":"b2c0ce0f2b3c9b908eed39f59d7eba735799a90e","ref":"refs/heads/master","pushedAt":"2024-07-12T13:20:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3731 from chacha21:cuda_separable_filter_single\n\nsupports empty kernels in cuda::SeparableLinearFilters #3731\r\n\r\n[#25408](https://github.com/opencv/opencv/issues/25408)\r\n\r\nWhen only 1D convolution is needed (row or column filter only), `cuda::LinearFilter` might be slower than `cuda::SeparableLinearFilter`\r\nUsing `cuda::SeparableLinearFilter` for 1D convolution can be done by using a `(1)` kernel for the ignored dimension.\r\nBy supporting empty kernels in `cuda::SeparableLinearFilter`, there is no need for that `(1)` kernel any more.\r\nAdditionaly, the inner `_buf ` used to store the intermediate convolution result can be saved when a single convolution is needed.\r\n\r\nIn \"legacy\" usage (row+col kernels), there is no regression in `cuda::SeparableLinearFilter` performance.\r\nAs soon as an empty kernel is used, the performance is largely increased.\r\n\r\nDevil in the details : the \"in-place\" processing is supported and might need intermediate buf, but still no regression.\r\n\r\n- [X] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [X] The PR is proposed to the proper branch\r\n- [X] There is a reference to the original bug report and related work\r\n- [X] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [X] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3731 from chacha21:cuda_separable_filter_single"}},{"before":"25070d652b73f3b269f954609273b0dfb388cd42","after":"b2c0ce0f2b3c9b908eed39f59d7eba735799a90e","ref":"refs/heads/4.x","pushedAt":"2024-07-12T13:15:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3731 from chacha21:cuda_separable_filter_single\n\nsupports empty kernels in cuda::SeparableLinearFilters #3731\r\n\r\n[#25408](https://github.com/opencv/opencv/issues/25408)\r\n\r\nWhen only 1D convolution is needed (row or column filter only), `cuda::LinearFilter` might be slower than `cuda::SeparableLinearFilter`\r\nUsing `cuda::SeparableLinearFilter` for 1D convolution can be done by using a `(1)` kernel for the ignored dimension.\r\nBy supporting empty kernels in `cuda::SeparableLinearFilter`, there is no need for that `(1)` kernel any more.\r\nAdditionaly, the inner `_buf ` used to store the intermediate convolution result can be saved when a single convolution is needed.\r\n\r\nIn \"legacy\" usage (row+col kernels), there is no regression in `cuda::SeparableLinearFilter` performance.\r\nAs soon as an empty kernel is used, the performance is largely increased.\r\n\r\nDevil in the details : the \"in-place\" processing is supported and might need intermediate buf, but still no regression.\r\n\r\n- [X] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [X] The PR is proposed to the proper branch\r\n- [X] There is a reference to the original bug report and related work\r\n- [X] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [X] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3731 from chacha21:cuda_separable_filter_single"}},{"before":"b36f4b0b27836f76a9e2b65966194f154b1b2d45","after":"25070d652b73f3b269f954609273b0dfb388cd42","ref":"refs/heads/master","pushedAt":"2024-07-09T14:35:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3753 from gregorburger:4.x\n\nalso link to CUDA::cufft_static in case of BUILD_SHARED_LIBS=OFF","shortMessageHtmlLink":"Merge pull request #3753 from gregorburger:4.x"}},{"before":"b36f4b0b27836f76a9e2b65966194f154b1b2d45","after":"25070d652b73f3b269f954609273b0dfb388cd42","ref":"refs/heads/4.x","pushedAt":"2024-07-09T14:30:26.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3753 from gregorburger:4.x\n\nalso link to CUDA::cufft_static in case of BUILD_SHARED_LIBS=OFF","shortMessageHtmlLink":"Merge pull request #3753 from gregorburger:4.x"}},{"before":"438e67f472cb88f5a720196cd4c06e660c1cef8a","after":"b36f4b0b27836f76a9e2b65966194f154b1b2d45","ref":"refs/heads/master","pushedAt":"2024-07-08T13:40:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3748 from wangqiang9:patch-1\n\nFixed a clerical error in qrcode.py","shortMessageHtmlLink":"Merge pull request #3748 from wangqiang9:patch-1"}},{"before":"438e67f472cb88f5a720196cd4c06e660c1cef8a","after":"b36f4b0b27836f76a9e2b65966194f154b1b2d45","ref":"refs/heads/4.x","pushedAt":"2024-07-08T13:36:10.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3748 from wangqiang9:patch-1\n\nFixed a clerical error in qrcode.py","shortMessageHtmlLink":"Merge pull request #3748 from wangqiang9:patch-1"}},{"before":"9a3ab80a10f5b4fe0488ad418e58f19297fab192","after":"496968cf6325297a9e574aa4dc5b900bde86100e","ref":"refs/heads/next","pushedAt":"2024-07-02T07:00:04.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"9a3ab80a10f5b4fe0488ad418e58f19297fab192","after":"496968cf6325297a9e574aa4dc5b900bde86100e","ref":"refs/heads/5.x","pushedAt":"2024-07-02T06:55:50.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"a886fa5c4d0abc7fd415f7a651a487597f053464","after":"438e67f472cb88f5a720196cd4c06e660c1cef8a","ref":"refs/heads/master","pushedAt":"2024-07-01T06:55:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3762 from asmorkalov:as/force_legal_requirements\n\nForce contributors to define Apache 2.0 license for the new PRs","shortMessageHtmlLink":"Merge pull request #3762 from asmorkalov:as/force_legal_requirements"}},{"before":"a886fa5c4d0abc7fd415f7a651a487597f053464","after":"438e67f472cb88f5a720196cd4c06e660c1cef8a","ref":"refs/heads/4.x","pushedAt":"2024-07-01T06:53:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3762 from asmorkalov:as/force_legal_requirements\n\nForce contributors to define Apache 2.0 license for the new PRs","shortMessageHtmlLink":"Merge pull request #3762 from asmorkalov:as/force_legal_requirements"}},{"before":"8b4dac2d197c00f9043c8a72b0eb2166a67b9563","after":"9a3ab80a10f5b4fe0488ad418e58f19297fab192","ref":"refs/heads/next","pushedAt":"2024-06-27T15:45:05.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'upstream/4.x' into '5.x'","shortMessageHtmlLink":"Merge remote-tracking branch 'upstream/4.x' into '5.x'"}},{"before":"8b4dac2d197c00f9043c8a72b0eb2166a67b9563","after":"9a3ab80a10f5b4fe0488ad418e58f19297fab192","ref":"refs/heads/5.x","pushedAt":"2024-06-27T15:40:59.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'upstream/4.x' into '5.x'","shortMessageHtmlLink":"Merge remote-tracking branch 'upstream/4.x' into '5.x'"}},{"before":"b236c71c2f8d983403c35a0cea8bec0432a4b0fe","after":"a886fa5c4d0abc7fd415f7a651a487597f053464","ref":"refs/heads/master","pushedAt":"2024-06-14T08:20:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3760 from Kumataro:fixC3756\n\n* bgsegm: gmg: Relax source type and add test\r\n\r\n* bgsegm: Update test to use EXPECT_/ASSERT_","shortMessageHtmlLink":"Merge pull request #3760 from Kumataro:fixC3756"}},{"before":"b236c71c2f8d983403c35a0cea8bec0432a4b0fe","after":"a886fa5c4d0abc7fd415f7a651a487597f053464","ref":"refs/heads/4.x","pushedAt":"2024-06-14T08:16:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3760 from Kumataro:fixC3756\n\n* bgsegm: gmg: Relax source type and add test\r\n\r\n* bgsegm: Update test to use EXPECT_/ASSERT_","shortMessageHtmlLink":"Merge pull request #3760 from Kumataro:fixC3756"}},{"before":"1ed3dd2c53888e3289afdb22ec4e9ebbff3dba87","after":"b236c71c2f8d983403c35a0cea8bec0432a4b0fe","ref":"refs/heads/master","pushedAt":"2024-06-06T11:30:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3751 from peters:4.x\n\nAdd conditional include for to support CUDA 12.4+ #3751\r\n\r\nFixes https://github.com/opencv/opencv_contrib/issues/3752\r\n\r\nAdds a preprocessor check to conditionally include only for CUDA versions 12.4 and above. This ensures backward compatibility with older legacy CUDA versions.\r\n\r\nRelated to pull request #3744\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [ ] There is a reference to the original bug report and related work\r\n- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [ ] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3751 from peters:4.x"}},{"before":"1ed3dd2c53888e3289afdb22ec4e9ebbff3dba87","after":"b236c71c2f8d983403c35a0cea8bec0432a4b0fe","ref":"refs/heads/4.x","pushedAt":"2024-06-06T11:26:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3751 from peters:4.x\n\nAdd conditional include for to support CUDA 12.4+ #3751\r\n\r\nFixes https://github.com/opencv/opencv_contrib/issues/3752\r\n\r\nAdds a preprocessor check to conditionally include only for CUDA versions 12.4 and above. This ensures backward compatibility with older legacy CUDA versions.\r\n\r\nRelated to pull request #3744\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [ ] There is a reference to the original bug report and related work\r\n- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [ ] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3751 from peters:4.x"}},{"before":"d131e7a991e05a02e1724b29b5ed82c346b75f59","after":"1ed3dd2c53888e3289afdb22ec4e9ebbff3dba87","ref":"refs/heads/master","pushedAt":"2024-05-30T12:50:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3744 from asmorkalov:as/variadic_tuple\n\nAdded CUDA 12.4+ support #3744\r\n\r\nTries to fix https://github.com/opencv/opencv_contrib/issues/3690 for CUDA 12.4+\r\nRelated patch to main repo: https://github.com/opencv/opencv/pull/25658\r\n\r\nChanges:\r\n- Added branches to support new variadic implementation of thrust::tuple\r\n- Added branch with std::array instead of std::tuple in split-merge and grid operations. The new branch got rid of namespace clash: cv::cuda in OpenCV and ::cuda in CUDA standard library (injected by Thrust). Old tuple branches presumed for compatibility with old code and CUDA versions before 12.4.\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [x] There is a reference to the original bug report and related work\r\n- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [ ] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3744 from asmorkalov:as/variadic_tuple"}},{"before":"d131e7a991e05a02e1724b29b5ed82c346b75f59","after":"1ed3dd2c53888e3289afdb22ec4e9ebbff3dba87","ref":"refs/heads/4.x","pushedAt":"2024-05-30T12:48:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3744 from asmorkalov:as/variadic_tuple\n\nAdded CUDA 12.4+ support #3744\r\n\r\nTries to fix https://github.com/opencv/opencv_contrib/issues/3690 for CUDA 12.4+\r\nRelated patch to main repo: https://github.com/opencv/opencv/pull/25658\r\n\r\nChanges:\r\n- Added branches to support new variadic implementation of thrust::tuple\r\n- Added branch with std::array instead of std::tuple in split-merge and grid operations. The new branch got rid of namespace clash: cv::cuda in OpenCV and ::cuda in CUDA standard library (injected by Thrust). Old tuple branches presumed for compatibility with old code and CUDA versions before 12.4.\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [x] There is a reference to the original bug report and related work\r\n- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [ ] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3744 from asmorkalov:as/variadic_tuple"}},{"before":"baaeb68b3d6b557536f95b527c0dd87c8f1ce80d","after":"d131e7a991e05a02e1724b29b5ed82c346b75f59","ref":"refs/heads/master","pushedAt":"2024-05-30T10:45:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3743 from vrabaud:thinning\n\nMisc thinning fixes. #3743\r\n\r\n- edges could be modified\r\n- 2 sets of iterations were always done even if the first set did not return any change\r\n- countNonZero is slow compared to hasNonZero\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [x] There is a reference to the original bug report and related work\r\n- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.","shortMessageHtmlLink":"Merge pull request #3743 from vrabaud:thinning"}},{"before":"baaeb68b3d6b557536f95b527c0dd87c8f1ce80d","after":"d131e7a991e05a02e1724b29b5ed82c346b75f59","ref":"refs/heads/4.x","pushedAt":"2024-05-30T10:41:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3743 from vrabaud:thinning\n\nMisc thinning fixes. #3743\r\n\r\n- edges could be modified\r\n- 2 sets of iterations were always done even if the first set did not return any change\r\n- countNonZero is slow compared to hasNonZero\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n- [x] There is a reference to the original bug report and related work\r\n- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.","shortMessageHtmlLink":"Merge pull request #3743 from vrabaud:thinning"}},{"before":"e46ba342b251fdbe0df34be0da1ba85577aa1e94","after":"baaeb68b3d6b557536f95b527c0dd87c8f1ce80d","ref":"refs/heads/master","pushedAt":"2024-05-27T14:25:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3742 from vrabaud:cpp\n\nGet code to compile with CUDA 12.4","shortMessageHtmlLink":"Merge pull request #3742 from vrabaud:cpp"}},{"before":"e46ba342b251fdbe0df34be0da1ba85577aa1e94","after":"baaeb68b3d6b557536f95b527c0dd87c8f1ce80d","ref":"refs/heads/4.x","pushedAt":"2024-05-27T14:24:12.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3742 from vrabaud:cpp\n\nGet code to compile with CUDA 12.4","shortMessageHtmlLink":"Merge pull request #3742 from vrabaud:cpp"}},{"before":"345371e00b07fff30354c50a0559427ba033a0cc","after":"e46ba342b251fdbe0df34be0da1ba85577aa1e94","ref":"refs/heads/master","pushedAt":"2024-05-22T08:55:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3627 from TumoiYorozu:wavelet_matrix_median_filter_cuda\n\n Implemented fast median filter for CUDA using Wavelet Matrix, a constant-time, HDR-compatible method #3627\r\n\r\nI replaced the existing CUDA implementation of the histogram-based median filter with an implementation of a new wavelet matrix-based median filter algorithm, which I presented at SIGGRAPH Asia 2022.\r\nThis paper won the Best Paper Award in the journal track of technical papers (ACM Transactions on Graphics).\r\n\r\nThis new algorithm, like the histogram method, has the property that the window radius does not affect the computation time, and is several times faster than the histogram method. Furthermore, while the histogram method does not support HDR and only supports 8U images, this new algorithm supports HDR and also supports 16U and 32F images.\r\n\r\nI (the author) have published the implementation on my personal GitHub and made some modifications for OpenCV to make it accessible from OpenCV. I used the CUB library, which is part of the standard toolkit since CUDA 11.0. Therefore, depending on the CUDA_VERSION, the code is written to use the new algorithm for versions 11.0 and above, and the existing histogram method for versions 10 and below.\r\n\r\nRegarding the old histogram-based code, the CPU version of the median filter supports 16U and 32F for window sizes up to 5, but it seems that the histogram CUDA version of the median filter does not. Also, the number of channels supported is different: the CPU version supports 1, 3, and 4 channels, while the CUDA version supports only 1 channel. In addition, for the CUDA version of the histogram method, pixels at the edges of the image, i.e. where the window is insufficient, were set to zero. For example, if the window size is 7, the width of the 3 pixels at the top, bottom, left, and right were not calculated correctly. When checking the tests, it was found that they compared with the CPU version by cropping the edges with rect, and also the cropping area was too wide, with 8 pixels cropped from the top, bottom, left, and right when the window size was 7.\r\n\r\nIn this PR, I first corrected the rect range for the tests so that both the old histogram method and the new wavelet matrix method can pass. Also, the CUDA version now supports 16U, 32F, and multi-channel formats such as 3 and 4 channels. In addition, while the CPU version only supports window sizes up to 5 for HDR, the new CUDA Wavelet Matrix method supports sizes of 7 and above. Additionally, I have added new tests for 16U, 32F, and multi-channel formats, specifically 3 and 4 channels.\r\n\r\nPaper’s project page: [Constant Time Median Filter using 2D Wavelet Matrix | Interactive Graphics & Engineering Lab](https://cgenglab.github.io/en/publication/sigga22_wmatrix_median/)\r\nMy implementation (as author): [GitHub - TumoiYorozu/WMatrixMedian](https://github.com/TumoiYorozu/WMatrixMedian)\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n~~- [ ] There is a reference to the original bug report and related work~~\r\n- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [x] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3627 from TumoiYorozu:wavelet_matrix_median_filte…"}},{"before":"345371e00b07fff30354c50a0559427ba033a0cc","after":"e46ba342b251fdbe0df34be0da1ba85577aa1e94","ref":"refs/heads/4.x","pushedAt":"2024-05-22T08:53:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3627 from TumoiYorozu:wavelet_matrix_median_filter_cuda\n\n Implemented fast median filter for CUDA using Wavelet Matrix, a constant-time, HDR-compatible method #3627\r\n\r\nI replaced the existing CUDA implementation of the histogram-based median filter with an implementation of a new wavelet matrix-based median filter algorithm, which I presented at SIGGRAPH Asia 2022.\r\nThis paper won the Best Paper Award in the journal track of technical papers (ACM Transactions on Graphics).\r\n\r\nThis new algorithm, like the histogram method, has the property that the window radius does not affect the computation time, and is several times faster than the histogram method. Furthermore, while the histogram method does not support HDR and only supports 8U images, this new algorithm supports HDR and also supports 16U and 32F images.\r\n\r\nI (the author) have published the implementation on my personal GitHub and made some modifications for OpenCV to make it accessible from OpenCV. I used the CUB library, which is part of the standard toolkit since CUDA 11.0. Therefore, depending on the CUDA_VERSION, the code is written to use the new algorithm for versions 11.0 and above, and the existing histogram method for versions 10 and below.\r\n\r\nRegarding the old histogram-based code, the CPU version of the median filter supports 16U and 32F for window sizes up to 5, but it seems that the histogram CUDA version of the median filter does not. Also, the number of channels supported is different: the CPU version supports 1, 3, and 4 channels, while the CUDA version supports only 1 channel. In addition, for the CUDA version of the histogram method, pixels at the edges of the image, i.e. where the window is insufficient, were set to zero. For example, if the window size is 7, the width of the 3 pixels at the top, bottom, left, and right were not calculated correctly. When checking the tests, it was found that they compared with the CPU version by cropping the edges with rect, and also the cropping area was too wide, with 8 pixels cropped from the top, bottom, left, and right when the window size was 7.\r\n\r\nIn this PR, I first corrected the rect range for the tests so that both the old histogram method and the new wavelet matrix method can pass. Also, the CUDA version now supports 16U, 32F, and multi-channel formats such as 3 and 4 channels. In addition, while the CPU version only supports window sizes up to 5 for HDR, the new CUDA Wavelet Matrix method supports sizes of 7 and above. Additionally, I have added new tests for 16U, 32F, and multi-channel formats, specifically 3 and 4 channels.\r\n\r\nPaper’s project page: [Constant Time Median Filter using 2D Wavelet Matrix | Interactive Graphics & Engineering Lab](https://cgenglab.github.io/en/publication/sigga22_wmatrix_median/)\r\nMy implementation (as author): [GitHub - TumoiYorozu/WMatrixMedian](https://github.com/TumoiYorozu/WMatrixMedian)\r\n\r\n### Pull Request Readiness Checklist\r\n\r\nSee details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request\r\n\r\n- [x] I agree to contribute to the project under Apache 2 License.\r\n- [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\r\n- [x] The PR is proposed to the proper branch\r\n~~- [ ] There is a reference to the original bug report and related work~~\r\n- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable\r\n Patch to opencv_extra has the same branch name.\r\n- [x] The feature is well documented and sample code can be built with the project CMake","shortMessageHtmlLink":"Merge pull request #3627 from TumoiYorozu:wavelet_matrix_median_filte…"}},{"before":"7400d78a55d610b7a9cf03dca1cb0913ea16d1b0","after":"345371e00b07fff30354c50a0559427ba033a0cc","ref":"refs/heads/master","pushedAt":"2024-05-22T08:50:04.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3623 from w43322:fast-guided-filter\n\nImplement fast guided filter","shortMessageHtmlLink":"Merge pull request #3623 from w43322:fast-guided-filter"}},{"before":"9358ad2e56f6d0b99860856fc1b53b783d186e73","after":"345371e00b07fff30354c50a0559427ba033a0cc","ref":"refs/heads/4.x","pushedAt":"2024-05-22T08:48:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3623 from w43322:fast-guided-filter\n\nImplement fast guided filter","shortMessageHtmlLink":"Merge pull request #3623 from w43322:fast-guided-filter"}},{"before":"7400d78a55d610b7a9cf03dca1cb0913ea16d1b0","after":"9358ad2e56f6d0b99860856fc1b53b783d186e73","ref":"refs/heads/4.x","pushedAt":"2024-05-22T08:46:03.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3726 from sdy623:4.x\n\nTry to Fix #3725: cudaarithm: fix the compile faiure of CUDA 12.","shortMessageHtmlLink":"Merge pull request #3726 from sdy623:4.x"}},{"before":"70b5d209a85b33096312bc6498c4553c1b9112dc","after":"7400d78a55d610b7a9cf03dca1cb0913ea16d1b0","ref":"refs/heads/master","pushedAt":"2024-05-22T08:00:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3738 from asmorkalov:as/ci_ubuntu24.04\n\nAdded Ubuntu 24.04 to regular CI.","shortMessageHtmlLink":"Merge pull request #3738 from asmorkalov:as/ci_ubuntu24.04"}},{"before":"70b5d209a85b33096312bc6498c4553c1b9112dc","after":"7400d78a55d610b7a9cf03dca1cb0913ea16d1b0","ref":"refs/heads/4.x","pushedAt":"2024-05-22T07:55:27.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://github.com/avatars/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3738 from asmorkalov:as/ci_ubuntu24.04\n\nAdded Ubuntu 24.04 to regular CI.","shortMessageHtmlLink":"Merge pull request #3738 from asmorkalov:as/ci_ubuntu24.04"}},{"before":"cb08ac6b2ea890e3355c27caa782d3bfb1a7da69","after":"70b5d209a85b33096312bc6498c4553c1b9112dc","ref":"refs/heads/master","pushedAt":"2024-05-15T17:05:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://github.com/avatars/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3737 from asmorkalov:as/ubuntu_2404_warning_fix\n\nMore warning fixes for Ubuntu 24.04.","shortMessageHtmlLink":"Merge pull request #3737 from asmorkalov:as/ubuntu_2404_warning_fix"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEfeFV1AA","startCursor":null,"endCursor":null}},"title":"Activity · opencv/opencv_contrib"}