我正在尝试使用开放式简历创建瀑布效果,并且正在使用内置的笔记本电脑摄像头。我正在使用背景减法来查找视频的任何差异,但是大多数情况下,相机会产生闪烁的水平条纹噪声。视频看起来不错,但我可以看到有些闪烁。这款相机的FPS速度比LED照明快吗?这是什么声音,应该怎么用?我包括了这种噪音的照片。
我的代码:
while(True):
ret, frame = cap.read()
#frame = cv2.fastNlMeansDenoisingColored(frame,None,10,10,7,21)
frame = cv2.GaussianBlur(frame,(5,5),0,0)
difference = np.subtract(background,frame)
threshold = 200
fgmask = abs(np.sum(difference,axis=2))>threshold
mask_sum = np.sum(fgmask)
if(mask_sum > frame.shape[0]*frame.shape[1]*0.3):
background = frame
fgmask = np.array(fgmask,dtype = np.uint8)
#fgmask = fgbg.apply(frame)
# Erode
dilatation_type = cv2.MORPH_ELLIPSE
dilatation_size = 2
element = cv2.getStructuringElement(dilatation_type, (2*dilatation_size + 1, 2*dilatation_size+1), (dilatation_size, dilatation_size))
fgmask1 = cv2.erode(fgmask,element,iterations =2 )
#fgmask1 = cv2.dilate(fgmask,element,iterations =1 )
#fgmask1 = fgmask1 ==255
fgmask1 = np.array(fgmask1,dtype=np.uint8)
#fgmask1 = cv2.GaussianBlur(fgmask1,(3,3),0,0)
bgmask = np.logical_not(fgmask1)
bgmask = np.array(bgmask,dtype=np.uint8)
display = cv2.bitwise_and(frame,frame,mask = fgmask1) + cv2.bitwise_and(display,display,mask =bgmask)
cv2.imshow('orginal',frame)
cv2.imshow('frame',display)
cv2.imshow('mask',fgmask1*255)
if cv2.waitKey(1) & 0xFF == ord('q'):
break