#python #macos #opencv
Вопрос:
Я пытаюсь отобразить прямую видеотрансляцию с камеры. Когда я запускаю программу, ret возвращает значение true, но cv2.imshow() отображает изображение-заполнитель. Любая помощь будет очень признательна.
import numpy as np
from cv2 import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#initialize video from the webcam
video = cv2.VideoCapture(0)
print(cv2.VideoCapture(0).isOpened()) # ->returns True
while True:
# ret tells if the camera works properly. Frame is an actual frame from the video feed
ret, frame= video.read()
if ret ==True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Detect the faces
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
# Draw the rectangle around each face
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x w, y h), (255, 0, 0), 2)
# Display
cv2.imshow('img', frame)
if cv2.waitKey(30) amp; 0xff==27:
break
video.release()
cv2.destroyAllWindows()
cv2.imshow(«img», кадр) открывает следующее окно.
Итак, я проверил, разрешено ли разрешение камеры, и, похоже, оно уже разрешено. Я использую macOS Big Sur (версия 11.6).
Комментарии:
1. Есть ли какое-то аппаратное «приближение» для камеры (как в новых ноутбуках Thinkpad)? Нужно ли вам предоставлять приложению разрешения на доступ к камере? Достаточно ли предоставить разрешения терминалу вместо фактического приложения?
2. можете ли вы получить доступ к камере из разных приложений? Я не знаю macOS, имеет ли значок скрещенной камеры стандартное значение (например, «нет разрешений» или «камера заблокирована»)?
3. Что это за камера и как она прикреплена? Можете ли вы напрямую считывать данные с камеры
ffmpeg
?4. например, если я использую аппаратную блокировку / крышку камеры (ThinkShutter) моего Thinkpad, я получу такое изображение от драйвера: i.postimg.cc/pr5JJpd6/camera-cover.jpg
5. установлено ли у вас какое-либо программное обеспечение «виртуальной веб-камеры»? какие-нибудь потоковые программы, в которых есть этот значок?