处理器/DSP
视频采集和显示是很多应用的基础,特别是在DIY自己的创意的过程中,如果增加实时的视频采集和显示,可以让自己的DIY变得更加高大上,之前用C语言和PC机器做视频采集的时候,采用C语言或者Java语言,需要些大量的代码才能实现整个采集和记录过程,这里如果你使用的是Dragonbaord 410c开发板来进行开发,你的开发将变得异常简单,连你自己都不敢想性,我们只需要通过简单的几句代码就可以方便的实现整个视频采集的功能。
首先按照前面的USB摄像头图像采集的方式接好我们的dragonboard 410c开发板,然后我们就可以准备开发和写代码了,这里选择的代码语言依然是Python,也就是我们前面使用过的神奇的Python,通过python可以让我们的代码变得更简单,当然,在性能上相对于C语言稍微逊色一点,但是依托我们dragonbaord 410c提供的强大处理功能,这点点性能我们在使用简单的视频采集功能的时候完全感觉不到,我们将看到我们采集到的实时视频依然可以保持流畅的速度。
然后我们准备编写代码:
代码开始我们通过import 语句导入cv2库,如果导入失败,请安装cv2库,安装的具体步骤如下:
{
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install python-OpenCV -y
}/// 安装步骤不属于代码
import cv2, sys
#同时我们这里设计了一个小功能,在获取的视频上写入一些文本标记视频信息,这里我们定义一个容器用于描述字体
# Constants
DEVICE_NUMBER = 0
FONT_FACES = [
cv2.FONT_HERSHEY_SIMPLEX,
cv2.FONT_HERSHEY_PLAIN,
cv2.FONT_HERSHEY_DUPLEX,
cv2.FONT_HERSHEY_COMPLEX,
cv2.FONT_HERSHEY_TRIPLEX,
cv2.FONT_HERSHEY_COMPLEX_SMALL,
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,
cv2.FONT_HERSHEY_SCRIPT_COMPLEX
]
#初始化web摄像头
# Init webcam
vc = cv2.VideoCapture(DEVICE_NUMBER)
# Check if the webcam init was successful
if vc.isOpened(): # try to get the first frame
retval, frame = vc.read()
else:
sys.exit(1)
#读取摄像头数据显示
# If webcam read successful, loop indefinitely
while retval:
# Write some text onto the frame
font_typeface = FONT_FACES[5]
font_scale = 2
font_color = (0,0,255)
font_weight = 5
x = 0
y = 50
cv2.putText(frame, “[LIVE]”, (x,y), font_typeface, font_scale, font_color, font_weight)
# Show the image on the screen
# http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html#imshow
cv2.imshow(“DB410c Workshop #3: Show Video”, frame)
# Grab next frame from webcam
retval, frame = vc.read()
# 设置一个等待退出键,按下该键退出监视
# http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html#waitkey
if cv2.waitKey(1) == 27:
break
以上就是整个实现视频采集的python代码,这里我们将代码保存为vedio.py,然后在代码文件目录下运行python vedio.py 就可以在dragonbaord 410c上启动USB摄像头实时采集图像进行显示了,其效果如下:
全部0条评论
快来发表一下你的评论吧 !