opencv - OpenCV:检测图 block 中的运动

我想检测由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)); 

                           }

                     } 

最佳答案

我使用了“帧差分”方法,并且有效。

https://stackoverflow.com/questions/7460339/

相关文章:

android - OpenCV和Android

image-processing - 将向量与图像中的边缘进行关联

opencv - 使用自定义内核的OpenCV散焦模糊?

opencv - 调整代码以检测多个圆圈,而不是OPENCV中的一个圆圈

opencv - cvCreateCameraCapture不起作用

python - 在OpenCV中如何在没有Sobel过滤器的情况下过滤线

opencv - 即使在彩色视频图像的情况下,nchannel() 也始终返回 1

opencv - 如何使用OpenCV源代码进行调试

android - android OpenCV-2.3.0 eclipse

opencv - 如何将OpenCV功能描述符标准化为整数比例?