Arhn - архитектура программирования

opencv установить разрешение камеры windows vrs linux

Возникают вопросы, которые являются вариантами этого, но не этой ситуации ошибки.

Этот код работает в Linux, он не работает в Windows10 OpenCV 3.4.2, 64bit -Python 3.6 - устанавливается через "pip3 install opencv-python"

В Windows происходит сбой с сообщением об ошибке ниже.

Если я удалю 'cv2.set()' для размера horz и virt, он работает без проблем, но разрешение не то, что я хочу

Моя цель - изменить размер изображения по умолчанию на БОЛЬШОЙ размер.

v=3.4.2
Camera H=480, W=640
Camera H=480, W=640
[ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -1072875855
[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -1072875855
[ WARN:1] videoio(MSMF): can't grab frame. Error: -1072875855
[ WARN:1] videoio(MSMF): can't grab frame. Error: -2147483638

Это код Python

import cv2
print("v=%s" % cv2.__version__)
cap = cv2.VideoCapture(0, cv2.)
h = cap.get( cv2.CAP_PROP_FRAME_HEIGHT )
w = cap.get( cv2.CAP_PROP_FRAME_WIDTH )
print("Camera H=%d, W=%d" % (h,w) )
# If I remove these two lines it works but is stuck at 640x480
cap.set( cv2.CAP_PROP_FRAME_HEIGHT, 10000 )
cap.set( cv2.CAP_PROP_FRAME_WIDTH, 10000 )
h = cap.get( cv2.CAP_PROP_FRAME_HEIGHT )
w = cap.get( cv2.CAP_PROP_FRAME_WIDTH )
print("Camera H=%d, W=%d" % (h,w) )

while(True):
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    ret, frame = cap.read()
    if ret:
        cv2.imshow('frame',frame)

cap.release()
cv2.destroyAllWindows()

Ответы:


1

Я смог обойти это, переключившись на бэкэнд API DSHOW:

cap = cv2.VideoCapture(cv2.CAP_DSHOW)
25.08.2018
  • Спасибо - это решение - чтобы было ясно, cv2.CAP_DSHOW - это добавленная стоимость. Если вы хотите открыть камеру 1, вы делаете это: (cv2.CAP_DSHOW+1) 01.09.2018

  • 2

    Спасибо brianpeiris за решение, я просто документирую его здесь в более формальной форме.

    cv2.CAP_DSHOW — это флаг, передаваемый как часть открытого вызова, есть много других, которые вы можете передать, и этот CAP_DSHOW специфичен для Microsoft.

    import cv2
    
    camera_number = 0
    
    c = cv2.VideoCapture( camera_number + cv2.CAP_DSHOW)
    # this picks the LARGEST image possible
    c.set( cv2.CAP_PROP_FRAME_HEIGHT, 10000 )
    c.set( cv2.CAP_PROP_FRAME_WIDTH, 10000 )
    
    while True:
        a,f = c.read()
        if not a:
             continue
        cv2.imshow( "it-works", f )
        k=cv2.waitKey(10)
        # press q to quit.
        if k == ord('q'):
           break
    
    01.09.2018

    3

    Чтобы иметь возможность выбрать исходный индекс, ответ в этот комментарий работает очень хорошо.

    videoSourceIndex = 1
    cap = cv2.VideoCapture(cv2.CAP_DSHOW + videoSourceIndex)
    
    17.02.2019
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..