乙個關於幀差法的追蹤小專案

2021-09-10 01:24:03 字數 2146 閱讀 8032

詳情參考: 

# 

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...