OpenCV - 检测移动对象C ++

时间:2015-06-22 12:56:17

标签: c++ opencv

我正在开发一个OpenCv项目的交通监控系统,我需要检测移动的汽车和人。我正在使用背景减法方法来检测移动物体,从而绘制计数器。 我有个问题 : 当两辆车在道路上行驶时,我的系统将其检测为一辆车,我已经使用了所有的努力,如精确边缘检测,转换等。任何人都可以告诉我任何特定的方法来解决这类问题。

2 个答案:

答案 0 :(得分:0)

CV系统跟踪对象,因为移动的斑点(移动像素的“云”)识别它们,并且在遮挡的情况下彼此不同。当两个(或更多)blob相交时,系统会将它们合并到一个组合对象中,并通过当前包含在组合中的所有源对象的ID来标记它。当其中一个对象与组合分离时,CV系统识别哪一个出来并适当地重新排列ID。

答案 1 :(得分:0)

很多解决方案都是可能的。

几何方法可以检测到一个移动的斑点太大而不能成为单个乘用车。不过,这可能表明一辆带有大篷车的汽车。这引出了另一个问题:如果你有两个小块靠近在一起,怎么你知道它的两辆车而不是一辆车拖着一辆大篷车?您可能需要添加一些基本形状检测。

另一个微不足道的方法是观察汽车不会突然增加。如果你有5个视频帧,其中4个你发现了两辆车,那么第5帧也很可能有两辆车。