zoukankan      html  css  js  c++  java
  • Python调用摄像头并分析画面是否静止(opencv+PIL)

    项目需求,Python调用摄像头并分析画面是否静止(opencv+PIL)

    已实现部分功能

    import cv2
    from PIL import Image
    from PIL import ImageChops
    import numpy as np
    import time
    
    cap=cv2.VideoCapture(0)#调用摄像头对象
    frame=24#帧率,默认为1秒24帧
    n=0#总共进行的帧数
    timeset=3#每3秒进行一次判定
    errornum=1#错误图形数量
    while True:
        n+=1
        sucess,img=cap.read()
        #cv2.imshow("Capture",img)
        if n==frame:
            midimg=img
        elif n%frame==0:#1秒1张图
            oldimg=midimg
            nowimg=img
            midimg=img
        if cv2.waitKey(100)&0xff==ord('q'):#手动停止
            break
        if n%(frame*timeset)==0:
            oldpil=Image.fromarray(cv2.cvtColor(oldimg,cv2.COLOR_BGR2RGB))#PIL图像和cv2图像转化
            nowpil=Image.fromarray(cv2.cvtColor(nowimg,cv2.COLOR_BGR2RGB))
            diff=ImageChops.difference(oldpil,nowpil)#PIL图片库函数
            localtime=time.asctime(time.localtime(time.time()))#时间戳
            with open("res/res.txt","a") as f:
                if diff.getbbox() is None:
                    print("normal···")
                    f.write(str(localtime)+" normal
    ")
                else:
                    print("warning!already write···")
                    f.write(str(localtime)+" warning!——"+str(errornum)+"
    ")
                    cv2.imwrite("res/{}.jpg".format(errornum),nowimg)
                    errornum+=1
    
    cap.release()#释放摄像头对象
    cv2.destroyAllWindows()#关闭所有窗口

    但是,需求变了~~~

    不用笔记本调用摄像头观看TV的视频了

    而是用slingbox 500直接从机顶盒读取视频流量~~~

    又要开始做图像对比分析、拆分图像和record部分视频检测雪花了~~~泪目

  • 相关阅读:
    测量MySQL的表达式和函数的速度
    MySQL中的比较操作符<=>
    Python中的args和kwargs
    MySQL8新特性(2)--mysql的升级过程
    MySQL8新特性(1)--原子DDL
    PostgreSQL中的一些日志
    PostgreSQL的表空间
    [九]基础数据类型之Boolean详解
    [八]基础数据类型之Double详解
    [七]基础数据类型之Float详解
  • 原文地址:https://www.cnblogs.com/ljy1227476113/p/12097446.html
Copyright © 2011-2022 走看看