如何在opencv(opencv-master)中使用python进行背景减法
我正在使用Enthought Canopy作为我的开发环境(IDE),这是一个用Python和opencv-masters的工具。我想做背景减除,但问题是,当我运行代码时,摄像头窗口(也就是启动摄像头的那个窗口)没有反应。
我的代码是:
import cv2
import numpy as np
cam=cv2.VideoCapture(0)
fgbg = cv2.BackgroundSubtractorMOG()
while(cam.isOpened):
f,img=cam.read()
if f==True:
#img=cv2.flip(img,1)
#img=cv2.medianBlur(img,3)
fgmask = fgbg.apply(img)
cv2.imshow('track',fgmask)
if(cv2.waitKey(27)!=-1):
cam.release()
cv2.destroyAllWindows()
#break
我不知道有没有其他方法可以实现这个背景减除。
谢谢!
1 个回答
2
如果 f==True
和 if(cv2.waitKey(27)!=-1)
这两个条件放在 while
循环里面,那么程序就能正常运行了。
import cv2
import numpy as np
cam=cv2.VideoCapture(0)
fgbg = cv2.BackgroundSubtractorMOG()
while(cam.isOpened):
f,img=cam.read()
if f==True:
#img=cv2.flip(img,1)
#img=cv2.medianBlur(img,3)
fgmask = fgbg.apply(img)
cv2.imshow('track',fgmask)
if(cv2.waitKey(27)!=-1):
cam.release()
cv2.destroyAllWindows()
#break