树莓派+pythonista实时监控系统
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了树莓派+pythonista实时监控系统,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2393字,纯文字阅读大概需要4分钟。
内容图文
客户端(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() ifnot msg: break#print len(msg), msg[-2]if closeFlat: sock.sendall(‘close‘) breakelse: 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‘breakelif msg == ‘close‘: breakelse: print‘Error:The msg from socket is unknow‘break dst.close() sock.close() capture.release() print‘Program end----‘
原文:http://www.cnblogs.com/lulu147/p/6803500.html
内容总结
以上是互联网集市为您收集整理的树莓派+pythonista实时监控系统全部内容,希望文章能够帮你解决树莓派+pythonista实时监控系统所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。