没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
运动检测运动检测ViBe算法算法python实现代码实现代码
主要为大家详细介绍了运动检测ViBe算法python实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考
一下
运动物体检测一般分为背景建模和运动物体分析两步。即构建不包含运动物体的背景模型。然后将新的视频帧和背景模型对
比,找出其中的运动物体。目前比较好的背景建模算法有两种:1)文章(Zivkovic Z. (2004) Improved adaptive
Gausianmixture model for backgroundsubtraction, Proceedings of ICPR 2004, August 23-26, Cambridge, UK.)提出的高斯
混合模型法。在此算法中,背景的每一个像素都被拟合到一个高斯混合模型。对于新的图片,只需要判断每个像素是否服从这
个高斯混合模型就可以判断出这个像素是背景还是前景。但混合高斯算法的缺点是计算量相对比较大,速度偏慢,对光照敏
感。2)文章(ViBe: A universal backgroundsubtraction algorithm for video sequences.)提出的ViBe算法。该算法速度非常
快,计算量比较小,而且对噪声有一定的鲁棒性,检测效果不错。
由于最近在做一些跟踪检查的研究,就用到了ViBe算法,根据网上的c++版本编写了这个python版的算法,在这分享给大家。
class ViBe:
'''''
classdocs
'''
__defaultNbSamples = 20 #每个像素点的样本个数
__defaultReqMatches = 2 #min指数
__defaultRadius = 20; #Sqthere半径
__defaultSubsamplingFactor = 16#子采样概率
__BG = 0 #背景像素
__FG = 255 #前景像素
__c_xoff=[-1,0,1,-1,1,-1,0,1,0] #x的邻居点 len=9
__c_yoff=[-1,0,1,-1,1,-1,0,1,0] #y的邻居点 len=9
__samples=[] #保存每个像素点的样本值,len defaultNbSamples+1
__Height = 0
__Width = 0
def __init__(self, grayFrame):
'''''
Constructor
'''
self.__Height = grayFrame.shape[0]
self.__Width = grayFrame.shape[1]
for i in range(self.__defaultNbSamples+1):
self.__samples.insert(i,np.zeros((grayFrame.shape[0],grayFrame.shape[1]),dtype=grayFrame.dtype));
self.__init_params(grayFrame)
def __init_params(self,grayFrame):
#记录随机生成的 行(r) 和 列(c)
rand=0
r=0
c=0
#对每个像素样本进行初始化
for y in range(self.__Height):
for x in range(self.__Width):
for k in range(self.__defaultNbSamples):
#随机获取像素样本值
rand=random.randint(0,8)
r=y+self.__c_yoff[rand]
if r<0:
r=0
if r>=self.__Height:
r=self.__Height-1 #行
c=x+self.__c_xoff[rand]
if c<0:
c=0
if c>=self.__Width:
c=self.__Width-1 #列
#存储像素样本值
self.__samples[k][y,x] = grayFrame[r,c]
self.__samples[self.__defaultNbSamples][y,x] = 0
def update(self,grayFrame,frameNo):
foreground = np.zeros((self.__Height,self.__Width),dtype=np.uint8)
for y in range(self.__Height): #Height
for x in range(self.__Width): #Width
#用于判断一个点是否是背景点,index记录已比较的样本个数,count表示匹配的样本个数
count=0;index=0;
资源评论
- Ms.S.H.2021-05-06体验不是很好
weixin_38632797
- 粉丝: 6
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码
- C#,排列组合的堆生成法(Heap’s Algorithm for generating permutations)算法与源代码
- C#,老鼠迷宫问题的回溯法求解(Rat in a Maze)算法与源代码
- 6693eeb8d683458a07938615fba9e68f.apk
- C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码
- C#,数值计算,用割线法(Secant Method)求方程根的算法与源代码
- C#,子集和问题(Subset Sum Problem)的算法与源代码
- mongodb 数据库基本操作
- Linux操作系统基础教程
- Linux操作系统相关习题集
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功