我对图像处理有点陌生,所以我想问你如何为我的问题找到最佳解决方案,而不是帮助代码。我想不出一个好主意,所以想征求你的意见。希望你能帮忙。
我正在开发 OpenCV 下的一个项目,该项目是关于从视频文件或实时摄像头中计算车辆数量。从事此类项目的其他人通常会跟踪移动的物体,然后对其进行计数,但我不想使用它,而是想从不同的角度进行工作;要求用户在视频窗口上设置一个 ROI(感兴趣区域)并仅针对该区域工作(出于某些原因,例如不处理整个帧和一些性能提升),如下所示。(顺便说一句,用户可以设置一个以上的 ROI 并且要求用户通过比例感将 ROI 的高度设置为普通汽车的 2 倍左右)
到目前为止,我已经取得了一些基本进展,例如背景更新、形态过滤器、阈值化以及将移动对象作为二值图像获取,如下所示。
完成之后,我尝试计算最终阈值前景帧的白色像素,并通过检查总白色像素数来估计它是否是汽车(我通过知道 ROI 的高度通过静态计算设置了下限) . 为了说明,我画了一个示例图形:
从图中可以看出,很容易计算白色像素并检查它是否按时间绘制曲线并确定是汽车还是噪音之类的东西。
我非常成功,直到两辆车同时通过我的投资回报率。我的算法通过将它们算作一辆车而崩溃,你可以猜到:/我尝试了不同的方法来解决这个问题,就像长车一样,但我到目前为止还没有得到最佳解决方案。
我的问题是:通过这种像素值计数方法是否无法处理这项任务?如果可能,您的建议是什么?我希望您以前也遇到过类似的事情并且可以帮助我。
欢迎所有想法,提前感谢朋友。