首页 > 解决方案 > 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 网络摄像头,但我不确定具体型号

请帮助我,并在此先感谢。

一开始就清除: 在此处输入图像描述

没那么多: 在此处输入图像描述

一点也不: 在此处输入图像描述

标签: pythonopencvimage-processing

解决方案


推荐阅读