作者: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:
python3libpython3packagegroup-petalinux-python-modules
Opencv:
Opencvopencv-appspackagegroup-petalinux-opencv
Xorg:
xserver-xorgxserver-xorg-extension-drixserver-xorg-extension-glxxserver-xorg-utilspackagegroup-core-x11packagegroup-core-x11-basepackagegroup-core-x11-xserver
然后一個簡單的python顯示腳本如下,
import cv2cap = 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 ...")breakcv2.imshow('live', frame)if cv2.waitKey(1) == ord('q'):breakcap.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.0Sudo python3 xxx.py
然后顯示器就可以顯示/dev/video0連接的USB camera的圖像了。
【預約研討會】研討會:利用編譯器指令提升AMD Vitis? HLS 設計性能

