我正在执行背景扣除以从视频中获取移动汽车,如下所示(运行平均背景建模)
我在此之后应用findContours()来绘制汽车周围的多边形。
如您所见,获得的输出质量不是很好。有什么方法可以增强汽车的边缘,使其更加突出,并切除周围的外来噪音。我尝试进行形态学闭合(扩张 - >侵蚀)来填补空白,但输出并不像预期的那样。
答案 0 :(得分:0)
这可能有点过头而且远非快速解决方案,但水平集方法非常适合提取预先分段的汽车。
答案 1 :(得分:0)
您可以尝试使用cv2.createBackgroundSubtractorMOG2()
进行背景减法。
代码:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
out = cv2.createBackgroundSubtractorMOG2()
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
output = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,480), isColor=False)
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,180)
outmask = out.apply(frame)
output.write(outmask)
cv2.imshow('original', frame)
cv2.imshow('Motion Tracker', outmask)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
output.release()
cap.release()
cv2.destroyAllWindows()