这是两张图片,一张是在外科医生采取行动之前拍摄的,另一张是之后拍摄的.
差异:(之后 – 之前)128.(128的加入只是为了获得更好的图像)
正如白色箭头所指出的那样,有一个影响所有物体的全局运动.
因此,我需要对其进行估算,以便获得有关场景中发生的更多有价值的信息.
我已经知道OpenCV 3.0在这种情况下有所帮助,它实现了一些方法来估计两个图像或两个点列表之间的主要运动.但我到目前为止使用OpenCV 2.4.x因为我已经在我的机器上安装了库,所以我正在寻找替代解决方案或任何其他代码来实现我想要的.
最佳答案 您正在寻找一个
dense optical flow算法:
结果
cv::calcOpticalFlowFarneback(img1, img2, flowField, 0.5, 3, 10, 5, 5, 1.1)
至于全局运动检测:
>如果全局运动非常小(如您的示例中所示),则可以对运动矢量进行阈值处理:将小值抛出.
>如果它更大,找到主导运动矢量并从所有矢量中减去它.然后阈值扔掉小值