免责声明:我在StackOverFlow上发布了此问题,但了解到它更适合此处。
我对图像处理有点陌生,所以我想问您有关为我的问题找到最佳解决方案的方法,而对代码没有帮助。我还没有想到一个好主意,所以想问一下您的建议。
我正在使用OpenCV进行一个项目,该项目用于从视频文件或实时摄像机中计算车辆的数量。从事此类项目的其他人通常会跟踪移动的物体,然后对其进行计数,但与此相反,我想使用不同的观点;要求用户在视频窗口上设置一个ROI(感兴趣的区域),并且仅在该区域内工作(由于某些原因,比如不处理整个帧并提高性能),如下所示。(用户可以设置一个以上的ROI,并要求用户通过比例感来设置ROI的高度大约是普通汽车的两倍。)
到目前为止,我已经取得了一些基本进展,例如背景更新,形态过滤器,阈值化以及将移动对象作为二进制图像获取,如下所示。
完成这些操作后,我尝试对最终的阈值前景帧中的白色像素进行计数,并通过检查总的白色像素数量来估计它是否是汽车(我通过了解ROI的高度通过静态计算设置了下限) 。为了说明,我画了一个示例图形:
如您所见,很容易计算出白色像素并检查它是否按时间绘制曲线并确定是汽车还是类似噪音的东西。
问题
在两辆汽车同时通过我的投资回报率之前,我一直非常成功。我的算法错误地将其视为一辆汽车。我针对此问题尝试了不同的方法,类似于长车,但没有找到令人满意的解决方案。
题
是否可以通过这种像素值计数方法来处理此任务?如果没有,您有什么建议?