1.识别静态的整个人体较难;即使识别出来结果也不可靠,所以现在主要以手势/人脸识别为主;这是因为手和脸上面有比较独特的特征点。你说的滤波归根结底还是要找出具有灰度跳变的高频部分作为人体;这除非背景中除了人以外没有其他突出的物体;否则光凭滤波二值法检测人体是不太现实。
2 两张图片中人要是产生相对运动,检测起来就容易多了;利用帧间差分找到图像中灰度相差大的部分(你用的滤波也是一种手段);然后二值化区域连通;要是图像中没有其他移动物体计算连通区域的变动方向就是人的运动方向。
先建立起静态背景的模型(或者直接在没人的时候拍张);然后不断的与这个背景做差,原理和帧间差分一样。建议你先从典型的帧间差分例程开始下手(比如移动车辆的检测,这个比较多)。
在二值化之后加上一个区域连通的步骤;即使用膨胀或者闭运算;这样轮廓就是连续的了;用matlab的话bwlabel可以统计连通区域里面像素的个数也就是人体面积巧丛液大小。质心就是横竖坐标的平均值;孝物取所有人体点郑碰的横竖坐标分别累加;除以坐标总数得到的x和y平均值;这个就是质心了。
MATLAB中字符串处理函数指令 中有个isletter,判断是否是字母 有个例子: str='Matlab R12.1' is_isletter=isletter(str) 结埋培桥果是 is_isletter = 1 1 1 1 1 1 0 1 0 0 0 0 可弯猛见isletter的返回值是个矩阵,是字母的位置返回“1”,不是则返回“0” 因此你要的功能可以据此函数写出, 查找到为1的元素转为空矩中困阵后,将剩余的数字字符串转化为数值模式识别过程通常是这样的1) 预处理,如芦返图像陪答饥滤波,灰度值处理,格式转换等
2)分割出要识别的图像部分(与无关部分分离),这里就会用到如边缘检测之类的技术
3)提取图像特征(待识别部分),并对这些特征进行数字化度量
4)根据特征进行分类识别,需要用到知识库(即已知图片的特征举旦)
总而言之,图像识别是一个比较大的题目,要掌握的话还得有很多相关的知识基础(如数学/图像处理等)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)