如何在petalinux环境下使用python脚本实现opencv显示USB camera图像

作者:Zhang Yong,AMD工程师;来源:AMD开发者社区

OpenCV支持许多与计算机视觉和机器学习相关的算法,并且正日益扩展。OpenCV Python是OpenCV的Python API,本文介绍一种方法在petalinux环境下使用OpenCV的Python API实现USB camera视频流的读取显示。

在Petalinux 环境下执行带有opencv API的python脚本,需要在rootfs里加入一些package和library。显示端可以使用Xorg(X11) server。这些可以在petalinux rootfs menuconfig里使能。

Python3:
python3
libpython3
packagegroup-petalinux-python-modules
Opencv:
Opencv
opencv-apps
packagegroup-petalinux-opencv
Xorg:
xserver-xorg
xserver-xorg-extension-dri
xserver-xorg-extension-glx
xserver-xorg-utils
packagegroup-core-x11
packagegroup-core-x11-base
packagegroup-core-x11-xserver

然后一个简单的python显示脚本如下,

import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while(True):
ret, frame = cap.read()
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
cv2.imshow('live', frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

这个脚本打开/dev/video0设备,读取video frame并显示。执行python脚本之前需要先启动Xorg server,Xorg的配置可以参考blog “如何在zcu102板卡上创建DisplayPort 1.4 Tx Subsystem core的pipeline“。启动Xorg并执行python脚本的命令如下,

Sudo Xorg &
Export DISPLAY=:0.0
Sudo python3 xxx.py

然后显示器就可以显示/dev/video0连接的USB camera的图像了。

最新文章

最新文章