背景差分代码
时间: 2023-07-03 10:21:08 浏览: 75
背景差分 matlab 代码
5星 · 资源好评率100%
背景差分是一种简单而有效的图像处理技术,可以用于检测运动物体。以下是一份 Python 代码示例,实现了背景差分的基本功能:
```python
import cv2
# 读取视频文件
cap = cv2.VideoCapture('test.mp4')
# 创建 BackgroundSubtractor 对象
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
ret, frame = cap.read()
if not ret:
break
# 背景差分
fgmask = fgbg.apply(frame)
# 显示结果
cv2.imshow('frame', fgmask)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
代码解释:
1. 引入 OpenCV 库。
2. 使用 `cv2.VideoCapture` 函数读取视频文件。
3. 创建 `cv2.createBackgroundSubtractorMOG2()` 对象,这个对象是基于高斯混合模型的背景差分器。
4. 在循环中读取视频帧,使用 `fgbg.apply(frame)` 函数对当前帧进行背景差分,得到前景掩码。
5. 使用 `cv2.imshow` 函数显示结果。
6. 使用 `cv2.waitKey` 函数等待键盘输入,当按下 'q' 键时退出循环。
7. 关闭视频流和所有窗口。
阅读全文