Камере не удается выполнить потоковую передачу с помощью cv2.VideoCapture после добавления рук MediaPipe (Python 3.10, WPython

Программы на Python
Ответить
Anonymous
 Камере не удается выполнить потоковую передачу с помощью cv2.VideoCapture после добавления рук MediaPipe (Python 3.10, W

Сообщение Anonymous »

Я пишу программу Python на Python 3.10 venv, используя библиотеки cv2 и mediapipe, но как только я добавляю какой-либо код mediapipe, моя программа не открывает окно для моей камеры/моя камера не включается полностью. Я протестировал код, используя только cv2, и он включается и отображает камеру, как и ожидалось, но как только я добавляю код медиапайпа, показанный здесь, индикатор на моей камере включается на несколько секунд, а затем выключается и никогда не отображает видео. Я использую версию 4.13.0.90 openCV и версию v0.10.32 медиапайпа. При запуске я не получаю никаких ошибок, код просто запускается и ничего не делает. Я также знаю, что даже если бы камера работала, она не отображала бы никакого отслеживания рук или чего-то подобного из библиотеки медиапайпов, я просто запускал ее, чтобы убедиться, что она работает, но это не сработало. Я также работаю с Windows; Я уже проверил разрешения камер. Есть идеи?
import cv2
import mediapipe as mp
# print(cv2.__version__)
width=640
height=420
camera = cv2.VideoCapture(0,cv2.CAP_DSHOW) #makes camera object and uses video function with the camera in use as argument (typically 0-4 depending on port camera is plugged into)
camera.set(cv2.CAP_PROP_FRAME_WIDTH, width) #sets camera window width
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, height) #sets camera window height
camera.set(cv2.CAP_PROP_FPS, 30)
camera.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
handsObject=mp.solutions.hands.Hands(False,2,.5,.5) #this is methods for analyzing frame for hand tracking and detection: first argument asks if it is a still image (False since using video), second argument is how many hands to look for(2), third and fourth arguments is how confident in tracking does it need to be (0.5)
mpDraw = mp.solutions.drawing_utils #annotates frame with data from hands(above)

while True: #infinite loop to run camera
ignore, frame = camera.read() #read a fram from camera
frameRGB = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) #converts bgr to rgb
results = handsObject.process(frameRGB)
cv2.imshow('Camera', frame) #from camera show frame (first argument is just naming the camera window, can be anything)
if cv2.waitKey(1) == ord('q'): #waits 1 ms (waitkey arg) and sees if ordinance (value) of q is pressed. If is then breaks out of while loop. note that & 0xff could need to be between waitkey func and == on certain systems such as windows
break
camera.release() #releases camera


Подробнее здесь: https://stackoverflow.com/questions/798 ... ands-pytho
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»