Почему установка немного меньшего разрешения (например, 1900×1080 вместо 1920×1080) резко повышает производительность USPython

Программы на Python
Ответить
Anonymous
 Почему установка немного меньшего разрешения (например, 1900×1080 вместо 1920×1080) резко повышает производительность US

Сообщение Anonymous »

Я использую OpenCV-Python в Windows 11 для захвата видео с USB-камеры для задач обнаружения объектов. Однако я заметил, что частота кадров у камеры крайне низкая — может быть, всего около 1 кадра в секунду, хотя камера официально поддерживает MJPG 1920×1080 @ 60FPS. В Ubuntu 20.04 та же камера отлично работает с ожидаемой высокой частотой кадров.
При поиске в Интернете я нашел странный обходной путь: вместо установки разрешения непосредственно на 1920×1080, если я устанавливаю его на что-то вроде 1900×1080, программа автоматически выбирает ближайшее допустимое разрешение (по-прежнему выводит 1920×1080 кадров) – но внезапно задержка резко падает и частота кадров становится нормальной.

Я не понимаю, почему это происходит в Windows, но не в Linux.

Может ли кто-нибудь объяснить основную причину такого поведения?
import cv2

cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG"))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1900) # if set 1920, it's very slow
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv2.CAP_PROP_FPS, 60)

while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow("camera", frame)
if cv2.waitKey(1) == 27:
break

cap.release()
cv2.destroyAllWindows()


Подробнее здесь: https://stackoverflow.com/questions/798 ... 920%c3%971
Ответить

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

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

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

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

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