前一个blog中跟大家分享了如何快速的编写程序从连接在Dragonboard 410c开发板上的USB摄像头中读取图像信息,给大家简单介绍了一下如何搭建Dragonabord 410c开发板的摄像头开发环境,包括相关源的更新,库的安装,按照上次blog中的介绍,安装好Python-OpenCV和导入cv2库后,就可以进行接下来我们今天的学习了,今天将叫大家进一步实现如何从摄像头中获取图像,同时进行保存和实时显示。
同样前面的环境搭建等在前一个blog中介绍了,这里不多说,直接上代码,其中保存图像的代码如下:
#!/usr/bin/env python
import cv2, sys
# Constants
DEVICE_NUMBER = 0
IMAGE_FILE = "output.jpg"
# 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)
retval, frame = vc.read()
# Save the frame as an image file
cv2.imwrite(IMAGE_FILE, frame)
# Read the output file
img = cv2.imread(IMAGE_FILE)
# Show the image on the screen
cv2.imshow("DB410c Workshop #1: Save Picture", img)
# Exit program after waiting indefinitely for a pressed key
cv2.waitKey(0)
同样只比前面获取USB摄像头图像数据多了一点点代码,非常神奇吧,这样如果你在开发过程中需要用摄像头来获取相关的图像数据给其他程序使用,利用该脚本就可以快速的实现,可以节约大量的开发时间,也可以避免学习复杂的Opencv接口库,这里如果大家不相信,可以新建一个脚本文件,命令如下:
vim sava_usb_img.py
然后按i进入到vim编辑器的编辑模式,复制上述代码按esc键进入到vim的命令模式,输入:wq保存退出,这时候你只要运行该脚本就可以从摄像头中获取一帧图像并保存下来,保存到output.jpg文件中,具体效果如下:
好了,这里大家就学会了如何使用强大易懂的Python脚本和opencv在dragonbaord 410c开发板上获取并保存USB摄像头中的图像数据了,大家可以想象一下,如果你在DIY一个demo能够实时的获取图像数据,这时候你就可以方便的使用这个脚本获取图像,同时结合邮件发送和网络传输等技术手段,就可以实时的获取现场图像数据了,这里不多说了,只是教大家如何保存图像,后续在《玩转Dragonboard 410c USB摄像头》系列blog中将会带各位USB摄像头小白,进一步实现更加复杂的USB摄像头和相关的图像处理操作,敬请期待。