opencv python 去除背景的干扰
时间: 2023-10-06 10:07:00 浏览: 337
opencv背景减除法
要去除背景的干扰,可以使用背景减除(Background Subtraction)算法。该算法通过比较当前帧和背景帧的像素值差异,找出运动的物体,并将其从背景中分离出来。
以下是使用OpenCV和Python实现背景减除算法的示例代码:
```python
import cv2
cap = cv2.VideoCapture(0) # 打开摄像头
fgbg = cv2.createBackgroundSubtractorMOG2() # 创建背景减除器
while True:
ret, frame = cap.read() # 读取当前帧
fgmask = fgbg.apply(frame) # 应用背景减除器,得到前景掩模
cv2.imshow('frame', frame) # 显示原始帧
cv2.imshow('fgmask', fgmask) # 显示前景掩模
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 关闭所有窗口
```
在代码中,我们首先打开摄像头,然后创建一个背景减除器。在while循环中,我们读取当前帧,然后通过背景减除器得到前景掩模,并将其显示出来。最后,我们通过按下“q”键退出程序。
运行程序后,摄像头会打开,你可以移动物体来观察背景减除算法的效果。可以看到,算法成功地将移动的物体从背景中分离出来,从而去除了背景的干扰。
阅读全文