📅  最后修改于: 2023-12-03 15:04:39.478000             🧑  作者: Mango
Python摄像头运动检测器是一个使用Python编写的应用程序,用于检测摄像头捕获的视频中的运动。它可以帮助程序员开发出智能安保系统、视频监控应用或其他与运动检测相关的项目。
import cv2
def detect_motion():
video = cv2.VideoCapture(0) # 打开摄像头
_, frame1 = video.read() # 读取第一帧
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) # 转换为灰度图像
while True:
_, frame2 = video.read() # 读取下一帧
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) # 转换为灰度图像
diff = cv2.absdiff(gray1, gray2) # 计算两帧之间的差异
_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY) # 以阈值30进行二值化操作
dilated = cv2.dilate(threshold, None, iterations=2) # 对二值化图像进行膨胀操作
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 找到轮廓
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
if cv2.contourArea(contour) < 500: # 过滤面积较小的轮廓
continue
cv2.rectangle(frame2, (x, y), (x+w, y+h), (0, 255, 0), 2) # 绘制边界矩形
cv2.imshow("Motion Detection", frame2) # 在窗口中显示结果
if cv2.waitKey(1) == ord('q'):
break
gray1 = gray2
video.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
detect_motion()
pip install opencv-python
Python摄像头运动检测器是一个强大的工具,能够帮助程序员开发出实时运动检测功能的应用程序。使用简单的代码片段,结合OpenCV库的强大功能,可以构建出多种基于摄像头的应用系统。无论是智能安保、视频监控还是其他与运动检测相关的项目,Python摄像头运动检测器都是一个不错的选择。