如何使用openCV检查相机是否被遮盖?

时间:2019-04-26 03:50:09

标签: opencv video-processing

我正在使用开放式简历3.4。我正在从RTSP输入摄像机获取数据。我想在我的代码中添加一个条件,以便如果使用任何东西覆盖了摄像头,警报应该交给用户。检查框架的黑色没有任何道理,因为当用白色布料覆盖时,框架将是白色的。有人可以为此建议一些逻辑吗?我们如何使用openCV做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以检查相机是否对焦。例如,这是我的手掌和窗户的模糊照片:

enter image description here

以下是计算每个图像的清晰度“得分”的函数:

def sharpness(img):
    img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    lap = cv.Laplacian(img, cv.CV_16S)
    mean, stddev = cv.meanStdDev(lap)
    return stddev[0,0]

测试:

enter image description here

模糊的图片得分要低得多。您可以将阈值设置为例如20或以下的任何东西都被认为是模糊的,因此相机被遮盖或出现其他问题。