python - Python OpenCV 图像在连续拍摄后变得模糊
问题描述
我是 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 网络摄像头,但我不确定具体型号
请帮助我,并在此先感谢。
解决方案
推荐阅读
- python - 在一个函数中,ValueError: too many values to unpack (expected 2)
- sql - 我可以回滚 SQL Server 中具有多个内部事务的事务吗?
- java - Jmeter - 无法每秒运行 1000 个并发用户
- react-native - 反应原生导航不适用于 TouchableOpacity onPress
- python - 如何安装“RDRPOSTagger”?
- typescript - 多个打字稿打字文件都将“预期”导出到全局
- excel - dax - 枢轴 - 不同的粒度
- javascript - HTML 5 AUDIO - 我需要 audio.load() 还是只能 play()?
- google-sheets - 谷歌表格查询想要要求用户输入一个包含字段
- android - 从图库中获取图像并设置为 CircleImageView