Webcam Motion Detector

实现对视频的动态捕捉

video=cv2.VideoCapture(0) 实现对摄像头的控制;
video.read() 得到摄像头打开后的第一帧图像,存入frame;

gray得到灰度图;
gaussianBlur进行高斯模糊;

若是第一张图,则保存为first_frame;
后续图与第一张图比较,cv2.absdiff(first_frame,gray);

黑白+扩大;
黑白:absdiff得到的30以内的像素点为黑色,其余为白色;
并进行dilate扩大,参数如下;

thresh_frame=cv2.threshold(delta_frame,30,255,cv2.THRESH_BINARY)[1]          
thresh_frame=cv2.dilate(thresh_frame,None,iterations=2)     

传入方法得到轮廓,并用rectangle标记;

代码如下

import cv2,time  #加入time  延时camera

first_frame=None   #numpy用于存放数据

video=cv2.VideoCapture(0)  #number 表示camera 

while True:
    check, frame = video.read()  #最开始的一帧

    #time.sleep(3)
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #把frame变为灰度图
    gray=cv2.GaussianBlur(gray,(21,21),0)    #高斯模糊

    if first_frame is None:  #初始化为gray
        first_frame=gray
        continue        #跳过后续                    #
    #计算第一个图和第二个图的差别
    delta_frame = cv2.absdiff(first_frame,gray)   #比较两者差异
        


    #差别大于30 变为白色
    #差别小于30 变为黑色
    thresh_frame=cv2.threshold(delta_frame,30,255,cv2.THRESH_BINARY)[1]           #30以内的 变为黑色   [0] 用不到 [1]用得
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值