OpenCV VideoCapture Error in Docker Container (Returns None When Read)

Вот мой DockerFile:

FROM python:3.10.4
LABEL maintainer="Louis Jefferson Zhang <louis.ljz08@gmail.com>"

# Set environment variables
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Build Dependencies for Opencv, Dlib and Psycopg2
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    libopencv-dev \
    libdlib-dev \
    libpq-dev \
    && rm -rf /var/lib/apt/lists/*

# Installation
RUN pip install opencv-python dlib psycopg2

# MAIN
WORKDIR /code

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY ./fr_as .

Вот мой Docker Compose:

version: "3.9"

services:
  web:
    build: .
    command: python /code/fr_as/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:
      - db
    devices:
      - /dev/video0:/dev/video0
    privileged: true
  
  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - "POSTGRES_HOST_AUTH_METHOD=trust"

volumes:
  postgres_data:

Я создал контейнер, используя эту команду:

docker-compose up -d --build

При выполнении приведенного ниже кода возникла ошибка:

cap = cv2.VideoCapture(0)
_, img = cap.read()

Вот сообщение об ошибке:

OpenCV(4.7.0) /io/opencv/modules/imgproc/src/resize.cpp:4062: error: (-215:Assertion failed) !ssize.empty() in function 'resize'

Если посмотреть на окно просмотра переменных, то значения для этих переменных следующие:

  • _ = False
  • img = None
Вернуться на верх