min*_*duc 5 opencv tracking image-processing computer-vision
作为论文工作的一部分,我需要构建一个人类跟踪程序,从视频或图像序列,如数据集KTH或IXMAS假设:
该程序需要实时执行
我搜索了很多,但仍然找不到一个好的解决方案.
请建议我一个合适的方法或现有的方案.
Abi*_*n K 11
案例1 - 如果相机静止
如果相机是静态的,跟踪一个人真的很简单.
您可以应用称为背景减法的方法.
在这里,为了获得更好的效果,您需要一个来自相机的裸图像,其中没有人.这是背景.(它也可以完成,即使你没有这个背景图像.但如果你有它,那就更好了.如果没有背景图像我会告诉你该做什么)
现在开始从相机捕获.取第一帧,将两者转换为灰度,平滑两幅图像以避免噪音.
从帧中减去背景图像.
如果框架没有改变背景图像(即没有人),你会得到一个黑色图像(当然会有一些噪音,我们可以删除它).如果有变化,即人走进框架,你将得到一个人和背景为黑色的图像.
现在将图像阈值化为合适的值.
施加一些侵蚀以去除小颗粒噪音.之后进行扩张.
现在找到轮廓.最有可能会有一个轮廓,即人.
查找质心或您想要跟踪此人的任何内容.
现在假设您没有背景图像,可以使用cvRunningAvg函数找到它.它会从您用于跟踪的视频中查找帧的运行平均值.但你可以明白,如果你得到背景图像,第一种方法更好.
案例2 - 相机不是静止的
这里背景减法不会给出好的结果,因为你无法获得固定的背景.
然后OpenCV附带一个人体检测样本样本.用它.
这是文件:peopledetect.cpp
我还建议你访问这个处理几乎相同问题的SOF:如何使用OpenCV检测和跟踪人员?
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |