📜  使用 OpenCV-Python 检查相机是否打开

📅  最后修改于: 2022-05-13 01:54:55.548000             🧑  作者: Mango

使用 OpenCV-Python 检查相机是否打开

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

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

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

方法:

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

下面是实现。

# 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()