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