一种基于opencv的动态目标识别跟踪方法

博主分享了作为opencv初学者如何实现动态目标识别跟踪的方法,通过比较当前帧和起始背景帧的灰度值差,使用threshold函数设定阈值,提取出移动物体。虽然程序尚在初级阶段,存在优化空间,但欢迎交流讨论。
摘要由CSDN通过智能技术生成

博主是opencv初学者,最近研究动态目标识别,然后利用当前帧和起始背景帧的灰度值差,简单实现了动态目标识别跟踪,现在将这个方法分享给大家。

本方法的主要思想在于,在求得两帧的灰度值差后,利用threshold函数,将灰度差值大于阈值的像素一律改为1,小于阈值的改为0。这样得到一个0和1的矩阵,再将此矩阵与当前帧进行点乘,就可将移动的物体提取出来。

需要指出的是,本程序目前只能初步实现此功能,还有很多地方需要完善、优化。

欢迎私信,交流。

import cv2  
import numpy as np
import time
camera=cv2.VideoCapture(0)  
lastframe=None  
while True:  
    ret,frame = camera.read()  
    if not ret:  
        break  
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)  #灰度化
    gray=cv2.GaussianBlur(gray,(21,21),0)  #高斯滤波
    if lastframe is None:  
        lastframe=gray  
        continue  
    gray_diff = cv2.absdiff(lastframe,gray)   #求差绝对值
    gray_diff=cv2.threshold(gray_diff,30,1,cv2.THRESH_BINARY)[1]#差值二值化
    gray_new=np.multiply(gray_diff,gray)#矩阵点乘
    gray2=cv2.convertScaleAbs(gray_new,0,1,0)#设置图像深度
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值