我是Open CV和python的新手,但是我一直遇到问题:
我一直在Raspberry Pi上做一个项目,网络摄像头拍摄灰度图像,删除背景,然后将其保存在文件夹中。
机器学习算法将其用于检测图像中的对象。
网络摄像头固定在特定位置,因此我首先拍摄背景图像,然后拍摄对象图片。然后将背景从对象中删除,看起来还不错。
但是,如果我重复此过程并覆盖图像,则会变得模糊。
这种效果一直持续到大约三到四张照片变得模糊并且我的程序无法识别其中的物体为止。
我的代码是:
#get Background
import cv2
cam = cv2.videoCapture(0)
ret, frame = cam.read()
if ret:
img_name = '/home/pi/Desktop/background.png'
grey_img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imwrite(img_name, grey_img)
print('{} written'.format(img_name))
cam.release()
#takeImage
import cv2
import numpy as np
ret, frame = cam.read()
back = cv2.imread('/home/pi/Desktop/background.png')
if ret:
img_name = '/home/pi/Desktop/img_capture.png'
grey_img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imwrite(img_name, grey_img)
grey_obj = cv2.subtract(cv2.imread(img_name), back)
cv2.imwrite(img_name, grey_obj)
print('{} written'.format(img_name))
cam.release()
我正在使用Logitech网络摄像头,但不确定确切的型号
请帮帮我,谢谢。