如何使用 azure IOTEDGE 从 iotedge 模块访问相机模块
How can i access camera module from iotedge module using azure IOTEDGE
我在我的 docker 文件中使用以下代码进行视频流传输
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
#fourcc = cv.VideoWriter_fourcc(*'XVID')
total_frame=0
while cap.isOpened():
ret, frame = cap.read()
print(ret)
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
#frame = cv.flip(frame, 0)
#video_writer = cv2.VideoWriter(time_string, fourcc, 30.0, (1280, 720))
# write the flipped frame
# Release everything if job is finished
cap.release()
#cv2.destroyAllWindows()
`
我正在使用这个 docker 文件来编写上面的代码
FROM ubuntu
# Install dependencies
RUN apt-get update && \
apt-get install -yq \
python3 \
python3-pip \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN pip3 install --upgrade pip
RUN pip3 install imutils
RUN pip3 install azure-iot-device
RUN pip3 install opencv-contrib-python
WORKDIR /main/
COPY main .
CMD ["python3", "/main/main.py"]
我可以使用 docker 运行 --device /dev/video0 image 访问主机上的视频源
但是当我将它部署为 IOTEDGE 模块时我无法访问摄像头?请告诉我如何从 cv2.VideoCapture(0) 的 hostsystem.The 位置的 iotedge 模块访问视频源是 cv2.VideoCapture( '/dev/video0')
对于任何容器,包括 IoT Edge 模块,您需要将 /dev/videoX 公开给容器。对于 IoT Edge 模块,这是通过容器创建选项完成的。
在这里搜索 /dev/video0:https://kevinsaye.wordpress.com/2018/04/16/creating-an-opencv-module-for-iot-edge/ 看看它是如何完成的。
我在我的 docker 文件中使用以下代码进行视频流传输
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
#fourcc = cv.VideoWriter_fourcc(*'XVID')
total_frame=0
while cap.isOpened():
ret, frame = cap.read()
print(ret)
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
#frame = cv.flip(frame, 0)
#video_writer = cv2.VideoWriter(time_string, fourcc, 30.0, (1280, 720))
# write the flipped frame
# Release everything if job is finished
cap.release()
#cv2.destroyAllWindows()
`
我正在使用这个 docker 文件来编写上面的代码
FROM ubuntu
# Install dependencies
RUN apt-get update && \
apt-get install -yq \
python3 \
python3-pip \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN pip3 install --upgrade pip
RUN pip3 install imutils
RUN pip3 install azure-iot-device
RUN pip3 install opencv-contrib-python
WORKDIR /main/
COPY main .
CMD ["python3", "/main/main.py"]
我可以使用 docker 运行 --device /dev/video0 image 访问主机上的视频源 但是当我将它部署为 IOTEDGE 模块时我无法访问摄像头?请告诉我如何从 cv2.VideoCapture(0) 的 hostsystem.The 位置的 iotedge 模块访问视频源是 cv2.VideoCapture( '/dev/video0')
对于任何容器,包括 IoT Edge 模块,您需要将 /dev/videoX 公开给容器。对于 IoT Edge 模块,这是通过容器创建选项完成的。
在这里搜索 /dev/video0:https://kevinsaye.wordpress.com/2018/04/16/creating-an-opencv-module-for-iot-edge/ 看看它是如何完成的。