我看到一些与 opencv 运动检测相关的查询,但我对它有一个更简单的需求,所以我再次提出问题。我想分析视频帧并查看帧中是否有任何变化。帧中发生的任何类型的运动都必须被识别。如果发生了什么,我只想得到通知。我不需要跟踪/绘制轮廓。
尝试过的方法: 1)使用OpenCV进行模板匹配(TM_CCORR_NORMED)。 我使用cvMinMaxLoc获取相似性指数。
尝试过的方法: 1)使用OpenCV进行模板匹配(TM_CCORR_NORMED)。 我使用cvMinMaxLoc获取相似性指数。
if( sim_index > threshold )
"Nothing chnged"
else
"Changed
面临的问题:
我找不到一种方法来决定如何设置阈值。误匹配和完美匹配的值非常接近。
2)方法2
a)做一个运行平均数
b)当前帧与移动平均数之间取绝对差。
c)将其阈化并使其成为二进制
d)计算非零值的数量
再次陷入困境,因为即使是非常相似的帧,我也获得了大量的非零值。
请建议我应该采取什么方法。我上述两种方法的方向正确吗?还是有一种简单的方法可以在几乎所有通用情况下工作。