OpenCV:检测瓷砖中的运动

发布于 2024-12-05 16:21:56 字数 896 浏览 0 评论 0原文

我想检测由 N*N 定义的网格平铺中的运动,我尝试了 完成的方法https://stackoverflow.com/users/724461/andrey-kamaev 它显示在下面的代码中,但结果根本不准确,我想做一个更准确的方法。

cv::Sobel(input, sobel, CV_32F, 1, 1); 

              int h = input.rows / NUM_BLOCK_ROWS; 
              int w = input.rows / NUM_BLOCK_COLUMNS; 
              float pos=0;
              for (int r = 0; r<NUM_BLOCK_ROWS; r++) 
                     for(int c=0; c<NUM_BLOCK_COLUMNS; c++) 
                     { 
                           cv::Scalar weight = cv::sum(sobel(cv::Range(h*r, (r+1)*h), cv::Range(c*w, (c+1)*w))); 

                           if (weight[0] + weight[1] > 60) {
                                  input(cv::Range(h*r, (r+1)*h-1), cv::Range(c*w, (c+1)*w-1)).setTo(cv::Scalar(0,0,255)); 

                           }

                     } 

I would like to detect a movement in a tile of grids defined by N*N, I've tried a way which is done by https://stackoverflow.com/users/724461/andrey-kamaev
and it shown in the following code, but the result isn't accurate at all, I would like to do a more accurate approach.

cv::Sobel(input, sobel, CV_32F, 1, 1); 

              int h = input.rows / NUM_BLOCK_ROWS; 
              int w = input.rows / NUM_BLOCK_COLUMNS; 
              float pos=0;
              for (int r = 0; r<NUM_BLOCK_ROWS; r++) 
                     for(int c=0; c<NUM_BLOCK_COLUMNS; c++) 
                     { 
                           cv::Scalar weight = cv::sum(sobel(cv::Range(h*r, (r+1)*h), cv::Range(c*w, (c+1)*w))); 

                           if (weight[0] + weight[1] > 60) {
                                  input(cv::Range(h*r, (r+1)*h-1), cv::Range(c*w, (c+1)*w-1)).setTo(cv::Scalar(0,0,255)); 

                           }

                     } 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮云落日 2024-12-12 16:21:56

我使用了帧差分方法并且它有效。

I used Frame Differencing approach and it worked.

千柳 2024-12-12 16:21:56

光流怎么样? OpenCV 的实现在这里

What about optical flow? OpenCV's implementation is here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文