PYTHON - CV2:检查网络摄像头是否被其他应用程序使用
PYTHON - CV2 : Check if webcam is used by other app
我正在尝试开发代码以检查网络摄像头是否被其他应用(如 Zoom、Skype 等...)使用 python 和CV2.
例如,在 macOS 中,您可以在终端 lsof | grep "VDC"
中使用此命令来查看网络摄像头是否 运行。
所以我不想像这段代码那样打开它
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
if(cap.isOpened()):
print("Camera conntected")
else:
print("Alert ! Camera disconnected")`
我只想检查它是否被其他应用程序打开或关闭并打印 'Running' 或 'Not running'.
我更喜欢使用 python,但如果有其他语言,请随意报告 ;)
即使它不完美,“最佳”解决方案应该是使用 try except 并在相机已打开的情况下将其强制 'bug'。
我尝试从 cv2 访问警告,但看起来有点困难。
这是适用于您的情况的代码:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
if(cap.isOpened()):
print("Camera conntected")
else:
print("Alert ! Camera disconnected")
number_itteration = 0
while cap.isOpened():
try:
ret, frame = cap.read()
if number_itteration == 0:
print(len(frame))
except Exception as e:
print('camera already used')
break
number_itteration += 1
出于隐私原因,目前 macOS 不允许用户查看哪个应用正在使用系统资源作为相机。
无论如何,您可以查看 this project 已经实现了您正在寻找的内容。也许,通过本机实现,您可以获取相机状态或以某种方式解决它。
我正在尝试开发代码以检查网络摄像头是否被其他应用(如 Zoom、Skype 等...)使用 python 和CV2.
例如,在 macOS 中,您可以在终端 lsof | grep "VDC"
中使用此命令来查看网络摄像头是否 运行。
所以我不想像这段代码那样打开它
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
if(cap.isOpened()):
print("Camera conntected")
else:
print("Alert ! Camera disconnected")`
我只想检查它是否被其他应用程序打开或关闭并打印 'Running' 或 'Not running'.
我更喜欢使用 python,但如果有其他语言,请随意报告 ;)
即使它不完美,“最佳”解决方案应该是使用 try except 并在相机已打开的情况下将其强制 'bug'。 我尝试从 cv2 访问警告,但看起来有点困难。
这是适用于您的情况的代码:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
if(cap.isOpened()):
print("Camera conntected")
else:
print("Alert ! Camera disconnected")
number_itteration = 0
while cap.isOpened():
try:
ret, frame = cap.read()
if number_itteration == 0:
print(len(frame))
except Exception as e:
print('camera already used')
break
number_itteration += 1
出于隐私原因,目前 macOS 不允许用户查看哪个应用正在使用系统资源作为相机。
无论如何,您可以查看 this project 已经实现了您正在寻找的内容。也许,通过本机实现,您可以获取相机状态或以某种方式解决它。