OpenCV не удается изменить размер - PullRequest
0 голосов
/ 13 апреля 2019

Я использую Python с OpenCV и пытаюсь открыть камеру. Однако я получаю следующую ошибку:

VIDEOIO ERROR: V4L: can't open camera by index 1
VIDEOIO ERROR: V4L: can't open camera by index 0
Traceback (most recent call last):
  File "set_hand_hist.py", line 71, in <module>
    get_hand_hist()
  File "set_hand_hist.py", line 38, in get_hand_hist
    img = cv2.resize(img, (640, 480))
cv2.error: OpenCV(4.1.0) /io/opencv/modules/imgproc/src/resize.cpp:3718: error: (-215:Assertion failed) !ssize.empty() in function 'resize'

Я считаю, что это соответствующая часть кода Python:

def store_images(g_id):
    total_pics = 1200
    hist = get_hand_hist()
    cam = cv2.VideoCapture(1)
    if cam.read()[0]==False:
        cam = cv2.VideoCapture(0)
    x, y, w, h = 300, 100, 300, 300

    create_folder("gestures/"+str(g_id))
    pic_no = 0
    flag_start_capturing = False
    frames = 0
    .... ... remaining code ... ...

Я пытался найти решение в Google; однако ничего, что я нашел, пока не работает. Я был бы очень признателен, если бы кто-то более опытный мог взглянуть и попытаться помочь мне.

Большое спасибо

1 Ответ

0 голосов
/ 14 апреля 2019

Хотелось прокомментировать, но мне не хватает репутации.Похоже, вы не можете открыть обе камеры 1 и 0.

VIDEOIO ERROR: V4L: can't open camera by index 1
VIDEOIO ERROR: V4L: can't open camera by index 0

Пожалуйста, убедитесь, что камера подключена к системе.Если это так, убедитесь, что у вас установлены соответствующие драйверы Linux для вашей камеры.

И в строке 38 set_hand_hist.py переменная img , возможно, является пустым изображением.Вот почему вы получаете ошибку при изменении размера.Вы должны выяснить, почему изображение img пустое.Не могу сказать больше, не видя весь код.

Редактировать : Вы можете попробовать код ниже, чтобы прочитать изображения с камеры и показать его.Я считаю, что ошибка чтения изображений с камеры.Если приведенный ниже код работает, мы должны искать в другом месте ошибку.

import cv2

camera_index=1
cam = cv2.VideoCapture(1)
if not cam.read()[0]:
    cam = cv2.VideoCapture(0)
    camera_index=0

while True:
    ret, frame = cam.read()
    cv2.imshow(f"image from camera {camera_index}", frame)
    if not ret:
        break
    k = cv2.waitKey(1)
    if k%256 == 27:
        # ESC pressed
        print("Escape hit, closing...")
        break

cam.release()
cv2.destroyAllWindows()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...