1.我想区分在一张图片中是否有人体的出现,即在背景中是否有人的存在。希望提供matlab代码。我现在的做法是滤波,增强后二值话,取出人的像素的百分比。2。我想分析两张图之间人的运动方向,希望能够提供matlab代码。我自己只懂得皮毛,希望高手不吝指导!如果答案好的话,我会再给分的!
希望能够提供matlab的代码。或者是C/C++代码。另外第一个问题,我再解释一下。首先我有屏蔽门的摄像头,然后就是为了防止屏蔽门运行的轨道上有人或者障碍物,希望能够检出。但也希望控制误动作,和漏检。第二个问题,我希望能够知道是否有人向屏蔽门的方向移动。 动态的我现在已经研究出来了,希望大家能够提供静态的解决方法。即只有一张图片,求出图片图片中的人占整个背景中面积的百分比。我的做法是先图像增强,灰度化,直方图均衡,二值话,取出轮廓。但是人的轮廓不是连续的,这个我就比较郁闷了。没有办法计算人的面积。听说可以接下来计算质心,然后算,但我不会,,希望高手帮助!
1.识别静态的整个人体较难;即使识别出来结果也不可靠,所以现在主要以手势/人脸识别为主;这是因为手和脸上面有比较独特的特征点。你说的滤波归根结底还是要找出具有灰度跳变的高频部分作为人体;这除非背景中除了人以外没有其他突出的物体;否则光凭滤波二值法检测人体是不太现实。2 两张图片中人要是产生相对运动,检测起来就容易多了;利用帧间差分找到图像中灰度相差大的部分(你用的滤波也是一种手段);然后二值化区域连通;要是图像中没有其他移动物体计算连通区域的变动方向就是人的运动方向。你可以去PUDN上搜搜相关的目标检测的代码;完全和你这个对应是不可能的。照你说的情况可以先建立起静态背景的模型(或者直接在没人的时候拍张);然后不断的与这个背景做差,原理和帧间差分一样。建议你先从典型的帧间差分例程开始下手(比如移动车辆的检测,这个比较多)。 你在二值化之后加上一个区域连通的步骤;即使用膨胀或者闭运算;这样你的轮廓就是连续的了;用matlab的话bwlabel可以统计连通区域里面像素的个数也就是人体面积大小。质心就是横竖坐标的平均值;取所有人体点的横竖坐标分别累加;除以坐标总数得到的x和y平均值;这个就是质心了 |
|