被逼无奈的树莓派传输文件
import time import cv2 import sys import os import queue import PWMServo from camera import * from get_data import * from cv_ImgAddText import * from cv_funtion import * import mjpg_server as mjpgmode = -1 # 模式切换标识 emoji = 0 #默认表情 running = 1 #运行标志标志# 人脸检测发送图片的信息 send_email = ''#发送邮箱 recv_email = ''#接收邮箱 passwd = ''#授权码 def get_email_data():global send_email, passwd, recv_emailsend_email, passwd, recv_email = read_data()cap = '' #cv2摄像头对象def camera_open():global cap, modetry:if cap != '':try:cap.release()except Exception as e:print(e)cap = cv2.VideoCapture(-1)cap.set(12, 45)time.sleep(0.01)mode = 0except BaseException as e:print('open camera error:',e)def camera_close():global cap, modetry:mode = -1time.sleep(0.1)cap.release()time.sleep(0.01)except BaseException as e:print('close camera error:', e)last_mode = 0 frame_copy = image = Nonedef connectInit():global modeframe_copy = 0setServoInit()if mode == 1 or mode == 0:PWMServo.setServo(1, 1500, 500)PWMServo.setServo(2, 1500, 500)elif mode == 4:PWMServo.setServo(1, 1200, 500)PWMServo.setServo(2, 1500, 500)else:passtime.sleep(0.55)def disconnectInit():setServoInit()passtime.sleep(0.55)# 示玩法的字体参数 text_x = 20 # 位置的x text_y = 20 # 位置的y textsize = 30 # 大小 textcolor = (255, 0, 0) # 颜色#调用颜色追踪 def calling_color_track(isRunning, org):ret = Noneif isRunning: #据序号转为颜色名称的字符串if isRunning == 1:color = 'red'elif running == 2:color = 'green'elif running == 3:color = 'blue'return cv_color_track(org, 320, 240, target_color = color)else:return org#调用人脸检测 last_face_reg_time = 0 #最后一次检测到邮件发送结果时间戳 last_face_reg_result = 'detect_ok' #做后一次检测到人脸的邮件发送结果 def calling_face_reg(isRunning, org):global send_email, passwd, recv_emailglobal last_face_reg_time, last_face_reg_resultret = orgt = time.time()result = 'detect_ok'if running == 3:if (t - last_face_reg_time) < 3: #两次间隔小于3秒,显示上次结果img_tmp, result= detectFaceOpenCVDnn(org , '', '', '')result = last_face_reg_resultelse: img_tmp, result= detectFaceOpenCVDnn(org , send_email, passwd, recv_email)last_face_reg_result = resultif result != 'detect_ok':last_face_reg_time = time.time()if result == 'send_fail':ret = cv2ImgAddText(img_tmp, "发送图片失败,请检查填写信息是否正确,\n或者网络是否连接",10, 200, textColor=textcolor, textSize=textsize)elif result == 'send_ok':ret = cv2ImgAddText(img_tmp, "发送成功,可在邮箱查看结果",10, 200, textColor=textcolor, textSize=textsize)elif result == 'detect_ok':passelse:ret = cv2ImgAddText(img_tmp, result, 10, 200, textColor=textcolor, textSize=textsize)elif running == 2 or running == 1:ret, result= detectFaceOpenCVDnn(frame_copy , '', '', '')last_face_reg_time = 0else:passreturn ret# 玩法切换 def switch_play():global capglobal mode, image, frame_copy, debugglobal emoji, runningwhile True:if mode != -1:if frame_copy is not None: #获取到图片if mode == 1: #mode 1 颜色追踪image = calling_color_track(running, frame_copy)elif mode == 2:#mode 2 人脸识别image = calling_face_reg(running, frame_copy)elif mode == 3:#mode 3 移动检测image = moving_objiect_track(frame_copy, 320, 240) if running else frame_copyelif mode == 4:#mode 4 人脸追踪、眼镜表情image = cv_emoji(frame_copy, running, emoji, 160, 120, 640, 480)elif mode == 5: #mode 5 二维码识别Frame, result = cv_qccode(frame_copy) if running else (frame_copy, '')Frame = cv2.rectangle(Frame, (0, 480 -40), (640 -1, 480 -1), (255, 255, 255), -1)image = cv2ImgAddText(Frame, "二维码内容:" + result, 5, 480 - 35, textColor=textcolor, textSize=textsize)elif mode == 6:#mode 6 手指识别if running:binary = image_process(frame_copy, 320, 240)#处理图像image, hand_num = get_hand_number(binary, 320, 240, frame_copy)#获取手指个数cv2.putText(image, "Finger(s): " + str(hand_num), (10, image.shape[0] - 13), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2)else:image = frame_copyelse:image = frame_copyframe_copy = Nonetime.sleep(0.01)else:time.sleep(0.01)debug = False def camera_task():global image, frame_copy, debug, mode, cap, ps_countwhile True:if mode != -1:try:ret, orgframe = cap.read()if ret:frame_flip = cv2.flip(orgframe, 1)frame_copy = frame_flipif debug:img_tmp = image if image is not None else frame_flipcv2.imshow('image',img_tmp)cv2.waitKey(1)else:img_tmp = image if image is not None else frame_fliptry:mjpg.img_show = img_tmpexcept:passtime.sleep(0.03)else:cap = cv2.VideoCapture(-1)time.sleep(0.01)except BaseException as e:print('主程序出错', e)else:time.sleep(0.01) #mjpg流服务器 if __name__ != '__main__':threading.Thread(target = mjpg.create_mjpg_server, args=(), daemon=True).start() #图像处理线程 threading.Thread(target=switch_play, daemon=True).start() threading.Thread(target=camera_task, daemon=True).start()if __name__ == '__main__':print('''*****************************************************************功能:所有玩法的集合,可通过不同指令进行调用******************************************************************----------------------------------------------------------Official website:http://www.lobot-robot.com/pc/index/indexOnline mall:https://lobot-zone.taobao.com/----------------------------------------------------------以下指令均需在LX终端使用,LX终端可通过ctrl+alt+t打开,或点击上栏的黑色LX终端图标。----------------------------------------------------------Usage:-0 | --启动遥控云台玩法-1 | --启动颜色跟踪玩法-2 | --启动人脸检测玩法-3 | --启动人脸追踪玩法-4 | --启动移动检测玩法-5 | --启动二维码识别玩法-6 | --启动手指识别玩法----------------------------------------------------------Example #1:显示图像,将识别到的人脸框起来python3 Transfer_Play.py -3----------------------------------------------------------Version: --V2.0 2020/05/04----------------------------------------------------------Tips:* 按下Ctrl+C可关闭此次程序运行,若失败请多次尝试!----------------------------------------------------------''')# 人脸检测发送图片:发送邮箱,接收邮箱,授权码send_email = ''recv_email = ''passwd = ''if len(sys.argv) > 1:camera_open()tmp_mode = 0try:tmp_mode = int(sys.argv[1][1:])if tmp_mode == 4:mode = 3elif tmp_mode == 3:mode = 4else:mode = tmp_modeif mode == 0:PWMServo.setServo(1, 1500, 1000)PWMServo.setServo(2, 1500, 1000)except:print('传入参数格式错误')sys.exit()if mode < 0 or mode > 6:print('未启动任何玩法')else:print('当前启动玩法:', str(tmp_mode))emoji = 1running = 1debug = True else:print('请添加需要运行的玩法参数')interrupt = Falsedef signal_handle(signal, frame): global interruptinterrupt = Trueprint('程序终止')while True:if interrupt:breakelse:time.sleep(1)
被逼无奈的树莓派传输文件相关推荐
- 树莓派与windows之间传输文件
"学习或者了解人工智能小伙伴福利来了,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家." 想了解或者学习人工智能可以看一下,我觉得学习起来挺有趣的 ...
- 树莓派与win10主机传输文件方式(未完,占坑)
目录 1. Samba共享服务 2. sftp服务 3. ftp图形化软件 - FileZilla 4. 蓝牙 5. http.server 1. Samba共享服务 前提:设备需要在同一局域网内,并 ...
- VScode远程免密连接树莓派设备,并使用可视化界面(xming)进行代码调试,远程传输文件
(请一步一步来,大佬随意) 分为四大环节: 1.SSH篇 2.免密连接设置篇 3.文件传输篇 4.可视化界面的安装和使用 SSH篇: 一:本地电脑安装相应的软件 1.前期准备工作:安装好VScode软 ...
- 使用Xftp连接树莓派并传输文件
把SD卡插在电脑上,在根目录(boot 中)新建"SSH"文件如下图所示: 配置完成后,将SD卡插入树莓派,启动树莓派,等待树莓派连接WIFI,然后对树莓派进行如下配置 注意:电脑 ...
- 树莓派学习——文件传输
1: filezilla 软件 ,用FTP协议传输文件(简单上手快) 记得主机名称:sftp:// ip 转载于:https://www.cnblogs.com/Blog-c/p/760574 ...
- Linux使用ftp传输10g的文件,Ubuntu 16.04 安装ftp服务器传输文件
最近在搞深度学习,老师比较宝贝他的服务器,要求我以后负责管理服务器.往后所有要使用服务器的人都必须向我申请账号,然后只允许客户端访问,使用文件传输软件传输文件.像我这样一个Linux菜逼,这种要求不是 ...
- linux telnet 传文件命令,telnet 传输文件
用python创建个临时服务器,发送文件供telnet访问 import socket import base64 port = 10005 filename = 'libcrypto.so.1.0. ...
- 资深程序员被逼无奈出来摆摊了,快来捧个人场!
资深程序员被逼无奈出来摆摊 产品介绍 软件技术规格 产品型号对照表 开始使用 1.接通电源.网络 2.登录设备 3.连接信号源 总结 大家好,现在程序员都要出来摆摊了,所以这几天我抓紧排练,先在公司演 ...
- Linux系统管理必备知识之利用ssh传输文件
在使用SSH时候,有时我们需要传输文件,这就需要用到命令scp. 从服务器上下载文件 scp username@servername:/path/filename /local_dir(本地目录) e ...
最新文章
- layui停止更新_layui 关闭当前窗口,刷新父级页面
- 中缀表达式生成二叉树
- 如何集成和使用EclEmma插件来获得良好的Junit覆盖率
- activiti脚本任务_Activiti中的高级脚本:自定义配置注入
- vue2.x vant2.x H5 移动端脚手架
- leetcodeT14-最长公共前缀(两种解法+图解)
- 无心剑随感《爱心教育》
- 【集合】Java 集合的ConcurrentModificationException
- 初识JS-基础中的基础
- vsftpd创建本地yum仓库如何放在有账户密码验证上
- Scipy教程 - 线性代数库scipy.linalg
- 模式识别与机器学习 (Pattern Recognization and Maching Learning)(PRML) 总结
- 期刊论文公式编号、居中技巧
- Python 第五篇 自制数字贺卡
- BZOJ 5477: 星际穿越
- 淘客联盟系统维护光盘2008新春大礼包
- 网络架构及其演变过程
- 头条流量android,今日头条的免流量看视频是怎么操作的?
- 搜索局域网内电脑共享文件的方法
- 数据资产盘点实践:智能对标
热门文章
- input标签是什么?input标签属性有哪些
- 用代码道歉java_c语言道歉小程序
- Docker:小白之路 一plus (拉取镜像加速篇)
- 数据错误循环冗余检查是什么意思_“DCS系统组态”是什么意思?其步骤方法又有哪些?...
- Apache孵化项目
- 红米note11参数配置 红米note11值得买吗
- C/C++游戏开发(easyx框架)及时类——极速赛车
- AI 落后要挨打的苹果,5 年疯狂收购 25 家人工智能公司!
- csol什么时间服务器维护,01月21日服务器例行维护公告发布时间:2020-01-20
- 云计算机能不能玩游戏,云电脑!让低配电脑也能玩儿大型游戏!