日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断视频中是否存在移动物体

發布時間:2023/12/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断视频中是否存在移动物体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
''' 測試下檢測場景內是否有物體移動,若有,打印信息 ''' import cv2 import time camera = cv2.VideoCapture(0) # 參數0表示第一個攝像頭 # 判斷視頻是否打開 if (camera.isOpened()):print('Open') else:print('攝像頭未打開')# 測試用,查看視頻size size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT))) print('size:' + repr(size))fps = 5 # 幀率 pre_frame = None # 總是取視頻流前一幀做為背景相對下一幀進行比較 i = 0 while True:start = time.time()grabbed, frame_lwpCV = camera.read() # 讀取視頻流gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY) # 轉灰度圖if not grabbed:breakgray_lwpCV = cv2.resize(gray_lwpCV, (500, 500))# 用高斯濾波進行模糊處理,進行處理的原因:每個輸入的視頻都會因自然震動、光照變化或者攝像頭本身等原因而產生噪聲。對噪聲進行平滑是為了避免在運動和跟蹤時將其檢測出來。gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)# 在完成對幀的灰度轉換和平滑后,就可計算與背景幀的差異,并得到一個差分圖(different map)。還需要應用閾值來得到一幅黑白圖像,并通過下面代碼來膨脹(dilate)圖像,從而對孔(hole)和缺陷(imperfection)進行歸一化處理if pre_frame is None:pre_frame = gray_lwpCVelse:img_delta = cv2.absdiff(pre_frame, gray_lwpCV)thresh = cv2.threshold(img_delta, 25, 255, cv2.THRESH_BINARY)[1]thresh = cv2.dilate(thresh, None, iterations=2)# image, contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)for c in contours:if cv2.contourArea(c) < 1000: # 設置敏感度continueelse:print("咦,有什么東西在動0.0")breakpre_frame = gray_lwpCVkey = cv2.waitKey(1) & 0xFF# 按'q'健退出循環if key == ord('q'):break # When everything done, release the capture camera.release() cv2.destroyAllWindows()

?

總結

以上是生活随笔為你收集整理的判断视频中是否存在移动物体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。