項目需求,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部分視頻檢測雪花了~~~淚目
