• 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部分视频检测雪花了~~~泪目

  • 相关阅读:
    centOS6.8 安装Nginx
    Linux 的su 与sudo 的区别,查看所有用户
    查看电脑 8080端口号被哪个应用占用
    配置文件出错 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
    IDEA 代码格式化,快捷键
    学习servlet心得
    nodejs笔记
    Tomcat 7.0.3x 启动慢并且遇到StackOverflowError的异常的解决办法
    国管公积金取房本
    前端准备技术汇总
  • 原文地址:https://www.cnblogs.com/ljy1227476113/p/12097446.html
Copyright © 2020-2023  润新知