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\n")
            else:
                print("warning!already write···")
                f.write(str(localtime)+" warning!——"+str(errornum)+"\n")
                cv2.imwrite("res/{}.jpg".format(errornum),nowimg)
                errornum+=1

cap.release()#釋放攝像頭對象
cv2.destroyAllWindows()#關閉所有窗口

但是,需求變了~~~

不用筆記本調用攝像頭觀看TV的視頻了

而是用slingbox 500直接從機頂盒讀取視頻流量~~~

又要開始做圖像對比分析、拆分圖像和record部分視頻檢測雪花了~~~淚目


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM