本篇博文将介绍如何使用python里面的cv2模块检测运动的物体(应该没啥地方可以用到),用到的方法是求出帧的变化量,下面是代码和代码的解释:
# encoding:utf-8
import cv2
import imutils
cap = cv2.VideoCapture(0)
avg = None
while(True):
# 抓取原始Numpy数组来表示图像并且初始化
ret, frame = cap.read()
# 调整帧尺寸,转换为灰阶图像并进行模糊
frame = imutils.resize(frame, width=500)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (21, 21), 0)
# 如果平均帧是None,初始化它
if avg is None:
avg = gray.copy().astype("float")
cv2.accumulateWeighted(gray, avg, 0.5)
frameDelta = cv2.absdiff(gray, cv2.convertScaleAbs(avg))
# 对变化的图像进行阈值化,膨胀阈值图像来填补
thresh = cv2.thres