使用 OpenCV-Python 检查摄像头是否打开

原文:https://www . geeksforgeeks . org/check-如果打开或未使用摄像头-opencv-python/

OpenCV (开源计算机视觉)是一个计算机视觉库,包含对图像或视频进行操作的各种功能。OpenCV 库可以用来对视频进行多种操作。

在使用 OpenCV 用 Python 编写代码时,我们可能不确定在远端摄像头是否打开并正常工作。摄像机在安全和视频监控系统等领域发挥着至关重要的作用。在实时视频监控系统中,为了确保摄像头打开并且正常工作,我们有 OpenCV 的isOpened()。文章背后的想法是检查摄像头是否连接,如果发现摄像头断开连接,则会向管理员或相关人员发送邮件。

1。检查相机是否打开/连接。

进场:

  • 导入必要的库(NumPy 和 OpenCV)
  • 启动摄像头。这里,在VideoCapture()-0中表示内置网络摄像头,而 1 表示使用外部网络摄像头。
  • 如果打开摄像机,我们将在帧上循环,而在另一种情况下,会出现一条消息“警报!摄像头断开”将打印在终端窗口上。

下面是实现。

# Python program to check
# whether the camera is opened 
# or not

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
while(cap.isOpened()):

    while True:

        ret, img = cap.read()
        cv2.imshow('img', img)
        if cv2.waitKey(30) & 0xff == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()
else:
    print("Alert ! Camera disconnected")

2。如果发现摄像头断开连接/未打开,则发送邮件。

进场:

  • 导入必要的库(smtplib 是发送邮件的 python 库)。
  • 与服务器建立连接并登录到该帐户。
  • 指定收件人的电子邮件地址和要发送的消息(“提醒!摄像头断开!”在这种情况下)。
  • 邮件发送后,请关闭连接或退出会话。

下面是实现。

# Python program to send 
# the mail

import smtplib

conn = smtplib.SMTP('smtp.gmail.com', 587)

conn.ehlo()
conn.starttls()

# Enter the sender's details
conn.login('Enter sender \'s gmail address', 
           'Enter sender\'s password')

conn.sendmail('Enter sender\'s gmail address', 
              'Enter Receiver\'s gmail address', 
              'Enter message to be sent')

conn.quit()