基於對比的移動檢測

2021-08-21 13:13:10 字數 1962 閱讀 4045

參考這篇文章的**時,遇到了錯誤,仔細研究後發現,是由於我本機安裝的opencv版本與參考**所使用的不同造成的。我用的opencv版本是3.4.2,參考**的版本不太清楚。

下面把除錯完可以編譯的**貼上:

import cv2

import numpy as np

import imutils

defshow_webcam

(mirror=false):

cam = cv2.videocapture(0)

flag=1

while

true:

ret_val, img=cam.read()

text = "unoccpied"

if img is

none:

break

cv2.imshow('webcam', img)

img_resized =imutils.resize(img,width=500)

cv2.imshow("resized",img_resized)

gray = cv2.cvtcolor(img_resized,cv2.color_bgr2gray)

gray = cv2.gaussianblur(gray, (21,21),0)

cv2.imshow("gaussblur",gray)

if flag:

cv2.namedwindow('firstframe', cv2.window_autosize)

flag = 0

image_resized=imutils.resize(img,width=500)

print("image_resized.shape=%d",image_resized.shape)

firstframe = gray

cv2.imshow('firstframe',firstframe)

print("firstframe.shape=%d",firstframe.shape)

framedelta=cv2.absdiff(firstframe,gray)

cv2.imshow("framedelta",framedelta)

thresh = cv2.threshold(framedelta,100,255,cv2.thresh_binary)[1]

thresh = cv2.dilate(thresh,none,iterations=2)

cnts = cnts[0] if imutils.is_cv2() else cnts[1]

for c in cnts:

# if cv2.contourarea(c)< args["min_area"]

# continue

(x, y, w, h) = cv2.boundingrect(c)

cv2.rectangle(img_resized, (x, y), (x+w, y+h),(0,255,0),2)

text = "occpied"

cv2.puttext(img_resized, "room status : {}".format(text),(10,20),

cv2.font_hershey_******x,0.5, (0,0,255),2)

cv2.imshow("thresh",thresh)

cv2.imshow("frame",img_resized)

if cv2.waitkey(1) == 27:

break

cv2.destroyallwindows()

cam.release()

defmain

(): print(cv2.__version__)

show_webcam(mirror=true)

if __name__ == '__main__':

main()

好像print的使用還有些問題,先儲存一下吧,稍後再改

基於全域性對比度的顯著性區域檢測

global contrast based salient region detection 可靠的視覺顯著性估計可以在不事先知道影象內容的情況下對影象進行適當的處理,因此在許多計算機視覺任務 包括影象分割 物件識別和自適應壓縮 中仍然是乙個重要的步驟。提出了一種基於區域對比的顯著性提取演算法,該演...

iOS程式自動檢測更新的實現

ios程式自動提示更新的實現方案大致分為兩種 由於此前沒有找到ios程式更新的方法,就用了第一種方式,但後來發現了一些問題,自己提供伺服器,需要維護,程式提交更新後,由於蘋果需要審核,中間會有時間差,這個時間不好把握。後台就找蘋果的相關文件,終於找到了。實現機制 請求網路資料,返回的大致資料如下,其...

iOS程式自動檢測AppStore更新的實現

h檔案中 m檔案中 import sbjson.h 解析sbjson 資料 void viewdidload pragma mark 實現公升級功能 檢測軟體是否需要公升級 void checkversion nslog newversion 獲取本地軟體的版本號 nsstring localver...