树莓派+pythonista实时监控系统
2017-05-03 19:21
246 查看
客户端(pythonista)
服务器(树莓派)
import ui from PIL import Image import socket, time, StringIO global closeFlat closeFlat = False def btnStart_tapped(sender): global closeFlat closeFlat = True sender.hidden = True v = ui.load_view() btnStart = ui.Button(title='End') btnStart.x = 20 btnStart.y = 250 btnStart.width = 100 btnStart.height = 40 btnStart.background_color = '#a3d6ef' btnStart.action = btnStart_tapped v.add_subview(btnStart) iv = ui.ImageView() iv.x = 0 iv.y = 0 iv.width = 320 iv.height = 240 v.add_subview(iv) v.present('sheet') host, port = '192.168.199.231', 9996 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) sock.sendall('next') f = sock.makefile() while True: msg = f.readline() if not msg: break #print len(msg), msg[-2] if closeFlat: sock.sendall('close') break else: sock.sendall('next') jpeg = msg.replace("\-n", "\n") buf = StringIO.StringIO(jpeg[0:-1]) buf.seek(0) #imgg = Image.open(buf) #img = ui.Image.from_data(imgg.tostring()) #imgg.save('1122.jpg') img = ui.Image.from_data(buf.getvalue()) buf.close() #img = ui.Image('1122.jpg') #img = (ui.Image)imgg iv.image = img #time.sleep(1) sock.close()
服务器(树莓派)
import numpy as np import cv2 import time, socket, StringIO from PIL import Image print 'Program start...' capture = cv2.VideoCapture(0) capture.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 320) capture.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 240) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('192.168.199.231', 9996)) sock.listen(2) dst, dst_addr = sock.accept() print 'Destination connected by', dst_addr while True: msg = dst.recv(1024) print msg if msg == 'next': ret, img = capture.read() ret, img = capture.read() #print img.shape img[:, :, [0, 2]] = img[:, :, [2, 0]] pi = Image.fromstring("RGB", (img.shape[1], img.shape[0]), img.tostring()) buf = StringIO.StringIO() pi.save(buf, format='JPEG') jpeg = buf.getvalue() buf.close() transfer = jpeg.replace("\n", "\-n") print len(transfer), transfer[-1] try: dst.sendall(transfer + "\n") #print 'sendall complete' except Exception as ex: dst, dat_addr = sock.accept() print 'Destination connected again by', dst_addr except KeyboardInterrupt: print 'Interrupted' break elif msg == 'close': break else: print 'Error:The msg from socket is unknow' break dst.close() sock.close() capture.release() print 'Program end----'
相关文章推荐
- python写的树莓派实时监控温度,cpu使用率的小程序
- 用python 10min手写一个简易的实时内存监控系统
- python写的树莓派实时监控温度,cpu使用率的小程序
- 用python 10min手写一个简易的实时内存监控系统
- 基于邮件系统的远程实时监控系统的实现 Python版
- python 实时监控内存系统
- 通过python和websocket构建实时通信系统[扩展saltstack监控] 推荐
- 天气实时显示系统--基于python网络爬虫的树莓派与Arduino蓝牙通信
- [转]用python 10min手写一个简易的实时内存监控系统
- 树莓派--python实现实时监控
- 用python 10min手写一个简易的实时内存监控系统
- 文件系统实时监控
- 看大众点评如何通过实时监控系统CAT打造7*24服务
- Linux中使用Pyinotify模块实时监控文件系统更改
- python实现实时监控文件的方法
- (3)Python笔记:使用WMI模块+TCP/IP来远程监控系统信息
- 一个基于树莓派和Python的无人机视觉跟踪系统
- 树莓派+python opencv实现远程监控
- 系统监控:msn在线机器人实时报警
- Dude 4 beat3 组建网络拓扑、实时流量监控系统