詳情參考:
#
import argparse
import datetime
import imutils
import time
import cv2
ap = argparse.argumentparser()
ap.add_argument("-v","--video",help = "path to video file")
ap.add_argument("-a","--min_area",type = int,default=500,help = "minimum area size")
args = vars(ap.parse_args())
if args.get("video",none) is none:
camera = cv2.videocapture(0)
time.sleep(0.25)
else:
camera = cv2.videocapture(args["video"])
firstframe = none
while true:
# 每次迴圈frame都發生會變化
grabbed,frame = camera.read()
text = "unoccupide"
if not grabbed:
break
frame = imutils.resize(frame,width = 500)
gray = cv2.cvtcolor(frame,cv2.color_bgr2gray)
gray = cv2.gaussianblur(gray,(21,21),0)
# 如果第一幀是none,我們將對她進行初始化
if firstframe is none:
firstframe = gray
continue
# 計算當前幀和第一幀的不同
# firstframe本來初始化為none,然後賦值為gray,然後就一直是第一幀的灰度圖了後面的每一幀都和他做幀差
framedelta = cv2.absdiff(firstframe,gray)
# cv2.threshold返回兩個值,第乙個是沒用的第二個是經過處理後的二值影象
thresh = cv2.threshold(framedelta, 25, 255, cv2.thresh_binary)[1]
# 擴充套件閾值影象填充空洞,然後找到閾值影象上的輪廓
thresh = cv2.dilate(thresh,none,iterations=2)
for c in cnts:
if cv2.contourarea(c)continue
(x,y,w,h) = cv2.boundingrect(c)
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
text = "occupied"
# 在當前幀上寫文字以及時間戳
cv2.puttext(frame, "room status: {}".format(text), (10, 20),
cv2.font_hershey_******x, 0.5, (0, 0, 255), 2)
cv2.puttext(frame, datetime.datetime.now().strftime("%a %d %b %y %i:%m:%s%p"),
(10, frame.shape[0] - 10), cv2.font_hershey_******x, 0.35, (0, 0, 255), 1)
# 顯示當前幀並記錄使用者是否按下按鍵
cv2.imshow("security feed", frame)
cv2.imshow("thresh", thresh)
cv2.imshow("frame delta", framedelta)
key = cv2.waitkey(1) & 0xff;
0xff
# 如果q鍵被按下,跳出迴圈
if key == ord("q"):
break
# 清理攝像機資源並關閉開啟的視窗
camera.release()
cv2.destroyallwindows()
關於html的乙個小專案
以下 實現的是乙個簡單的登入介面 在不改變html結構情況下,想讓兩個input對齊,主要有兩種方法 1.先把p中的label和input全部左浮動,再設定label寬度,把label撐開,這樣就能使之對齊 2.但是如果不設定float屬性,那麼即使設定label的width,也不能把label撐開...
關於幀差法的想法(opencv)
當我們要提取前景時,幀差法基本上是最簡單的一種方法了,變化緩慢的背景,以及運動較快的物體,在進行幀差法之後,進行閾值分割,將差值影象變成二值影象,就完成了運動目標以及背景的分離。本文主要講一下最簡單的幀差,三幀差法原理相差不大,對稱差分就不講了。公式如下 我簡單編寫了乙個幀差法及閾值分割的程式如下 ...
乙個小專案的oracle巡檢
公司要求對乙個長期沒人看管的專案的oracle資料進行檢查下,發現了如下問題。1.安裝方面 目前資料安裝在win2003的系統盤,而且看到安裝目錄稍顯混亂,比如系統日誌檔案並不在安裝目錄內,而是在c盤根目錄下,建議將資料庫安裝規範目錄結構安裝到非系統盤。2.配置方面 目前資料庫記憶體分配情況如下 s...