基于Ubuntu16.04 python2.7和Mega软件实现从摄像头拍照保存到本地并自动上传到Mega云端,通过Mega的其他系统的客户端可以同步查看。Mega是免费的云存储平台(50G以上需付费) ,支持windows / linux 等多个系统,支持手机客户端,用来实现文件这多个客户端的同步。(sudo rm /var/lib/dpkg/lock)
1.Mega安装
参考https://itsfoss.com/install-mega-cloud-storage-linux/ linux版的安装。注册帐号等可用各种客户端注册。根据自己的系统下载megasync-xUbuntu_16.04_amd64.deb和nautilus-megasync-xUbuntu_16.04_amd64.deb两个文件。安装gdebi用于安装deb文件。安装gdebi的命令如下
sudo apt-get install gdebi
途中可能提示缺少某些依赖,可输入如下命令安装
sudo apt-get -f install
安装完成后安装mega,需切换到两个文件所在的目录
sudo gdebi megasync-xUbuntu_16.04_amd64.deb
sudo gdebi nautilus-megasync-xUbuntu_16.04_amd64.deb
安装完成后,这终端中输入mega+tab键自动补齐为megasync回车进入mega登录。图标显示这顶部菜单栏右上角的最左端。进如设定可设置需要同步的文件夹和同步的目标文件夹。
2.Python读取摄像头并保存到本地
使用opencv实现摄像头拍照并保存,python程序如下,每隔五秒保存一次。
import numpy as np
import cv2
import time
cap=cv2.VideoCapture(0)
#设置图像的大小,长度和高度
#cap.set(3,1440)
#cap.set(4,1200)
while True:
ret,frame=cap.read()
# cv2.imshow('frame',frame)
t=time.localtime(time.time())
#保存到同此py文件中的pics文件夹
cv2.imwrite('pics/%s-%s-%s-%s-%s-%s.png'%(t[0],t[1],t[2],t[3],t[4],t[5]),frame)
time.sleep(5)
if cv2.waitKey(1) & 0xFF==ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3.运行程序
这mega中设置同步的文件夹为pics,设置后文件夹变为了Mega的图标,当mega检测到文件夹内容变化时将自动同步到云端。在终端中打开mega,运行python程序即可实现拍照保存到本地保存到云端多设备查看的功能。用手机下载客户端登录后可以查看同步的内容。
安全生产,重于泰山。