{"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://avatars.githubusercontent.com/u/5009934?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1703700142.0","currentOid":""},"activityList":{"items":[{"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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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://avatars.githubusercontent.com/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"}},{"before":"cb08ac6b2ea890e3355c27caa782d3bfb1a7da69","after":"70b5d209a85b33096312bc6498c4553c1b9112dc","ref":"refs/heads/4.x","pushedAt":"2024-05-15T17:03:55.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?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"}},{"before":"6b1faf0d9bc174c5fb40c4941bac615392436e81","after":"cb08ac6b2ea890e3355c27caa782d3bfb1a7da69","ref":"refs/heads/master","pushedAt":"2024-05-15T11:25:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3734 from asmorkalov:as/std_move_warning\n\nFixed Wredundant-move produced by GCC 13.2 (Ubuntu 24.04). #3734\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 #3734 from asmorkalov:as/std_move_warning"}},{"before":"6b1faf0d9bc174c5fb40c4941bac615392436e81","after":"cb08ac6b2ea890e3355c27caa782d3bfb1a7da69","ref":"refs/heads/4.x","pushedAt":"2024-05-15T11:20:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3734 from asmorkalov:as/std_move_warning\n\nFixed Wredundant-move produced by GCC 13.2 (Ubuntu 24.04). #3734\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 #3734 from asmorkalov:as/std_move_warning"}},{"before":"3c2bcbfe8374edaf3eb756b560374244538d57b6","after":"6b1faf0d9bc174c5fb40c4941bac615392436e81","ref":"refs/heads/master","pushedAt":"2024-05-15T06:35:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3735 from paroj:ovisup\n\novis: force camera extent update to get correct bbox #3735\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- [x] The feature is well documented and sample code can be built with the project CMake\r\n\r\n---\r\nfixes #3732","shortMessageHtmlLink":"Merge pull request #3735 from paroj:ovisup"}},{"before":"3c2bcbfe8374edaf3eb756b560374244538d57b6","after":"6b1faf0d9bc174c5fb40c4941bac615392436e81","ref":"refs/heads/4.x","pushedAt":"2024-05-15T06:30:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3735 from paroj:ovisup\n\novis: force camera extent update to get correct bbox #3735\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- [x] The feature is well documented and sample code can be built with the project CMake\r\n\r\n---\r\nfixes #3732","shortMessageHtmlLink":"Merge pull request #3735 from paroj:ovisup"}},{"before":"fe06856b0cc8aa39951c1b49b12ab4692766c5c1","after":"8b4dac2d197c00f9043c8a72b0eb2166a67b9563","ref":"refs/heads/next","pushedAt":"2024-05-06T09:00:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3729 from WanliZhong:remove_goturn\n\nRemove goturn legacy","shortMessageHtmlLink":"Merge pull request #3729 from WanliZhong:remove_goturn"}},{"before":"fe06856b0cc8aa39951c1b49b12ab4692766c5c1","after":"8b4dac2d197c00f9043c8a72b0eb2166a67b9563","ref":"refs/heads/5.x","pushedAt":"2024-05-06T08:55:20.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3729 from WanliZhong:remove_goturn\n\nRemove goturn legacy","shortMessageHtmlLink":"Merge pull request #3729 from WanliZhong:remove_goturn"}},{"before":"140086338a769fdd05d52b356ab5af5b47a99488","after":"fe06856b0cc8aa39951c1b49b12ab4692766c5c1","ref":"refs/heads/next","pushedAt":"2024-04-27T10:20:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3712 from kaingwade:clean_haarcascades_jsbindings\n\nFix broken js build after moving HaarCascades to contrib","shortMessageHtmlLink":"Merge pull request #3712 from kaingwade:clean_haarcascades_jsbindings"}},{"before":"140086338a769fdd05d52b356ab5af5b47a99488","after":"fe06856b0cc8aa39951c1b49b12ab4692766c5c1","ref":"refs/heads/5.x","pushedAt":"2024-04-27T10:19:10.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3712 from kaingwade:clean_haarcascades_jsbindings\n\nFix broken js build after moving HaarCascades to contrib","shortMessageHtmlLink":"Merge pull request #3712 from kaingwade:clean_haarcascades_jsbindings"}},{"before":"ac994ed2b5b6dd37d60ae5cd4267b61ceefa052d","after":"3c2bcbfe8374edaf3eb756b560374244538d57b6","ref":"refs/heads/master","pushedAt":"2024-04-25T10:30:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3724 from catree:add_visual_servo_references\n\nRename getInteractionMatrix() to computeInteractionMatrix()","shortMessageHtmlLink":"Merge pull request #3724 from catree:add_visual_servo_references"}},{"before":"ac994ed2b5b6dd37d60ae5cd4267b61ceefa052d","after":"3c2bcbfe8374edaf3eb756b560374244538d57b6","ref":"refs/heads/4.x","pushedAt":"2024-04-25T10:26:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3724 from catree:add_visual_servo_references\n\nRename getInteractionMatrix() to computeInteractionMatrix()","shortMessageHtmlLink":"Merge pull request #3724 from catree:add_visual_servo_references"}},{"before":"d72bcfde6bbb786c65cf3ffee5458c86d4df28c2","after":"140086338a769fdd05d52b356ab5af5b47a99488","ref":"refs/heads/next","pushedAt":"2024-04-22T11:10:05.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"d72bcfde6bbb786c65cf3ffee5458c86d4df28c2","after":"140086338a769fdd05d52b356ab5af5b47a99488","ref":"refs/heads/5.x","pushedAt":"2024-04-22T11:07:41.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"5cc1a448636f7065c0f894d802b44ecd57b25d38","after":"ac994ed2b5b6dd37d60ae5cd4267b61ceefa052d","ref":"refs/heads/master","pushedAt":"2024-04-17T14:20:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3641 from simutisernestas:4.x\n\nCamera spatial velocity computation through interaction matrix #3641\r\n\r\n### Feature\r\n\r\nThe code computed camera spatial velocity given two images, pixels depth, camera matrix and the timestamp between the images. This is enabled by, so called, interaction matrix (usually utilized in visual servoing applications) relating pixel plane velocities to the camera spatial velocity in 3D i.e., twist - velocity and angular rate of the camera. The inverse problem can be solved by sampling pixel & their velocities to solve least-squares for twist. The relationship can be seen below in the picture.\r\n\r\n![image](https://github.com/opencv/opencv_contrib/assets/35775651/b83179ba-9d5a-4324-863a-4ad6e158564a)\r\n\r\nThe code does not include a proper example and is not tested but if there is interest I could contribute more appealing example and use case for camera velocity computation. However, I attach below a dummy example with random data simply to make sure that it's running as is. I have used this before in aiding UAV localization and thought someone else might benefit from it being integrated into `opencv`. \r\n\r\n```c++\r\n#include \"opencv2/rgbd/twist.hpp\"\r\n#include \"opencv2/core.hpp\"\r\n#include \"opencv2/imgproc.hpp\"\r\n\r\nint main()\r\n{\r\n using namespace cv::rgbd;\r\n Twist t;\r\n\r\n // create two random image\r\n cv::Mat im0(480, 640, CV_8UC1);\r\n cv::Mat im1(480, 640, CV_8UC1);\r\n cv::Mat depths0(480, 640, CV_32F);\r\n cv::Mat K = cv::Mat::eye(3, 3, CV_32F);\r\n\r\n cv::theRNG().state = time(0);\r\n cv::randn(im0, 0, 255);\r\n cv::randn(im1, 0, 255);\r\n cv::randn(depths0, 0, 100);\r\n\r\n cv::Vec6d twist = t.compute(im0, im1, depths0, K, 0.1);\r\n\r\n return 0;\r\n}\r\n\r\n```\r\n\r\nReferences\r\n1. Chaumette, François, and Seth Hutchinson. \"Visual servo control. I. Basic approaches.\" IEEE Robotics & Automation Magazine 13.4 (2006): 82-90.\r\n2. https://robotacademy.net.au/lesson/image-based-visual-servoing/\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 #3641 from simutisernestas:4.x"}},{"before":"5cc1a448636f7065c0f894d802b44ecd57b25d38","after":"ac994ed2b5b6dd37d60ae5cd4267b61ceefa052d","ref":"refs/heads/4.x","pushedAt":"2024-04-17T14:15:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3641 from simutisernestas:4.x\n\nCamera spatial velocity computation through interaction matrix #3641\r\n\r\n### Feature\r\n\r\nThe code computed camera spatial velocity given two images, pixels depth, camera matrix and the timestamp between the images. This is enabled by, so called, interaction matrix (usually utilized in visual servoing applications) relating pixel plane velocities to the camera spatial velocity in 3D i.e., twist - velocity and angular rate of the camera. The inverse problem can be solved by sampling pixel & their velocities to solve least-squares for twist. The relationship can be seen below in the picture.\r\n\r\n![image](https://github.com/opencv/opencv_contrib/assets/35775651/b83179ba-9d5a-4324-863a-4ad6e158564a)\r\n\r\nThe code does not include a proper example and is not tested but if there is interest I could contribute more appealing example and use case for camera velocity computation. However, I attach below a dummy example with random data simply to make sure that it's running as is. I have used this before in aiding UAV localization and thought someone else might benefit from it being integrated into `opencv`. \r\n\r\n```c++\r\n#include \"opencv2/rgbd/twist.hpp\"\r\n#include \"opencv2/core.hpp\"\r\n#include \"opencv2/imgproc.hpp\"\r\n\r\nint main()\r\n{\r\n using namespace cv::rgbd;\r\n Twist t;\r\n\r\n // create two random image\r\n cv::Mat im0(480, 640, CV_8UC1);\r\n cv::Mat im1(480, 640, CV_8UC1);\r\n cv::Mat depths0(480, 640, CV_32F);\r\n cv::Mat K = cv::Mat::eye(3, 3, CV_32F);\r\n\r\n cv::theRNG().state = time(0);\r\n cv::randn(im0, 0, 255);\r\n cv::randn(im1, 0, 255);\r\n cv::randn(depths0, 0, 100);\r\n\r\n cv::Vec6d twist = t.compute(im0, im1, depths0, K, 0.1);\r\n\r\n return 0;\r\n}\r\n\r\n```\r\n\r\nReferences\r\n1. Chaumette, François, and Seth Hutchinson. \"Visual servo control. I. Basic approaches.\" IEEE Robotics & Automation Magazine 13.4 (2006): 82-90.\r\n2. https://robotacademy.net.au/lesson/image-based-visual-servoing/\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 #3641 from simutisernestas:4.x"}},{"before":"0658ab29e37a16e5dfe8dd3080fe162ca5a8ba06","after":"5cc1a448636f7065c0f894d802b44ecd57b25d38","ref":"refs/heads/master","pushedAt":"2024-04-17T11:20:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3722 from mshabunin:fix-features2d-test\n\nxfeatures2d: reduce test avg memory consumption","shortMessageHtmlLink":"Merge pull request #3722 from mshabunin:fix-features2d-test"}},{"before":"0658ab29e37a16e5dfe8dd3080fe162ca5a8ba06","after":"5cc1a448636f7065c0f894d802b44ecd57b25d38","ref":"refs/heads/4.x","pushedAt":"2024-04-17T11:17:58.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3722 from mshabunin:fix-features2d-test\n\nxfeatures2d: reduce test avg memory consumption","shortMessageHtmlLink":"Merge pull request #3722 from mshabunin:fix-features2d-test"}},{"before":"ff95d083b05cc3c8036a440f71606b83efb0fd0c","after":"d72bcfde6bbb786c65cf3ffee5458c86d4df28c2","ref":"refs/heads/next","pushedAt":"2024-04-16T17:55:04.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"ff95d083b05cc3c8036a440f71606b83efb0fd0c","after":"d72bcfde6bbb786c65cf3ffee5458c86d4df28c2","ref":"refs/heads/5.x","pushedAt":"2024-04-16T17:50:04.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge branch 4.x","shortMessageHtmlLink":"Merge branch 4.x"}},{"before":"2e636936ba97e4942882711c084de0520fbc670d","after":"0658ab29e37a16e5dfe8dd3080fe162ca5a8ba06","ref":"refs/heads/master","pushedAt":"2024-04-16T12:50:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3719 from Roger8:fix_merge_two_segs\n\nfix not merging when there are only two segs on one line","shortMessageHtmlLink":"Merge pull request #3719 from Roger8:fix_merge_two_segs"}},{"before":"2e636936ba97e4942882711c084de0520fbc670d","after":"0658ab29e37a16e5dfe8dd3080fe162ca5a8ba06","ref":"refs/heads/4.x","pushedAt":"2024-04-16T12:47:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"asmorkalov","name":"Alexander Smorkalov","path":"/asmorkalov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2536374?s=80&v=4"},"commit":{"message":"Merge pull request #3719 from Roger8:fix_merge_two_segs\n\nfix not merging when there are only two segs on one line","shortMessageHtmlLink":"Merge pull request #3719 from Roger8:fix_merge_two_segs"}},{"before":"4c810a99d537272add9d85486e8fdb0bef58e8ee","after":"2e636936ba97e4942882711c084de0520fbc670d","ref":"refs/heads/master","pushedAt":"2024-04-16T09:20:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"opencv-alalek","name":"Alexander Alekhin","path":"/opencv-alalek","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128253464?s=80&v=4"},"commit":{"message":"Merge pull request #3708 from AleksandrPanov:move_charuco_tutorial\n\nMove Charuco/Calib tutorials and samples to main repo","shortMessageHtmlLink":"Merge pull request #3708 from AleksandrPanov:move_charuco_tutorial"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEULPsKwA","startCursor":null,"endCursor":null}},"title":"Activity · opencv/opencv_contrib"}