定位,标记,Socket通信传输位置
# -*- coding: utf- -*-
"""
Editor : X-POWER Date : -- Motto : talk is cheap,show me your code ! This is a temporary script file.
""" import numpy as np
import pyscreenshot as ImageGrab
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import cv2
import time
import socket # Network communication def client(num):
mysocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
mysocket.connect(('192.168.1.101',))
mysocket.send(str(num))
print("+++++++++++++++++++++++++++++++++++++++")
mysocket.close() def draw_rectangle(img,location):
cv2.rectangle(img,( - location[], - location[]),( - location[], - location[]),(,,),) # Belongs to the picture , location , color , thickness def get_location():
a = [[],[],[],[],[],[],[],[],[],[],[],[]]
rectangle = [(,,,),(,,,),(,,,),(,,,),(,, ,),(,, ,),(,, ,),(,, ,),(,, ,),(,, ,),(,, ,),(,, ,)]
for num in range():
for i in range(rectangle[num][],rectangle[num][]):
for j in range(rectangle[num][],rectangle[num][]):
a[num].append((i,j))
return a,rectangle def identify_method_one(im,draw_location,rectangle): # image ,
student_location = []
for i in range():
sum = for j in draw_location[i]:
tem = im[j[]][j[]].sum()/
tem = abs(im[j[]][j[]][]-tem) + abs(im[j[]][j[]][]-tem) + abs(im[j[]][j[]][]-tem)
sum += tem
sum /= ((rectangle[i][]-rectangle[i][]) * (rectangle[i][] - rectangle[i][])) student_location.append(sum) return student_location draw_location,rectangle = get_location() cap = cv2.VideoCapture("http://192.168.1.101:8080/?action=stream") statue =
while True: ret, frame = cap.read()
im = frame[::-,::-,] student_location = identify_method_one(im,draw_location,rectangle)
count =
location = []
for i in student_location:
if i >= :
location.append(count)
count +=
print(student_location)
im = im[::-,::-,]
for i in location: #x mark all of the student location
draw_rectangle(frame,rectangle[i])
im = im[::-,::-,]
#-------deal-------
num =
num1 =
num2 =
num3 =
for i in location:
if i>= and i<=:
num1 =
if i>= and i<=:
num2 =
if i>= and i<=:
num3 =
if num1 == :
num += if num2 == :
num += if num3 == :
num +=
#-------deal-------
#print(num,statue)
#------Socket-------
if statue != num:
print("---")
statue = num
client(num)
#------Socket------- cv2.imshow("capture", im)
if cv2.waitKey() and 0xFF == ord('q'):
break cap.release()
cv2.destroyAllWindows()
定位,标记,Socket通信传输位置的更多相关文章
- java socket通信-传输文件图片--传输图片
ClientTcpSend.java client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...
- Java Socket实战之七 使用Socket通信传输文件
http://blog.csdn.net/kongxx/article/details/7319410 package com.googlecode.garbagecan.test.socket.ni ...
- IOS 基于TCP的socket通信详解(原创)
最近在整理通信层相关知识,这篇文章是边整理边写的,有些地方可能不够准确,还请各位路过的大牛专家指出来.这次整理的socket通信是基于TCP的,实现方式是GCD形式,以下记录的都是些理论知识,方便自己 ...
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- Android中Socket通信之TCP与UDP传输原理
一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时 ...
- 网络编程 - socket通信/粘包/文件传输/udp - 总结
socket通信 1.简单的套接字通信 import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.bin ...
- 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)
1.网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传 ...
- .net平台下C#socket通信(上)
在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳过去了.都是废话,进入正题. TCP/IP:Transmission Control Protocol ...
- C#socket通信1
.net平台下C#socket通信(上) 完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈. 在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳 ...
随机推荐
- Linux bridge-utils tunctl 使用
网络 brctl是Linux下用来管理以太网桥.在内核中建立.维护.检查网桥配置的命令 STP - Spanning Tree Protocol(生成树协议)逻辑上断开环路.防止二层网络的广播风暴的产 ...
- cocos2dx学习进度
将cocos2dx实战上面的例子都自己过一遍,手动敲一边里面的代码,瓦片地图,地图滚动,碰撞,容器类,现在搞到了fileUtils相关的了,哦,官方叫做数据持久化,一不小心就6点了,时间过得太快了,看 ...
- Difference between exit() and sys.exit() in Python
Difference between exit() and sys.exit() in Python - Stack Overflow https://stackoverflow.com/questi ...
- Spring的声明式事务
1.与hibernate集成 <bean id="sessionFactory" class="org.springframework.orm.hibernate3 ...
- redis04-----Hash 哈希数据类型相关命令
Hash 哈希数据类型相关命令 hset key field value 这里的域就是键值对的键. 作用: 把key中 filed域的值设为value 注:如果没有field域,直接添加,如果有,则覆 ...
- Hadoop 文件压缩
一.目的 a. 减小磁盘占用 b. 加速网络IO 二.几个常用压缩算法 是否可切分:是指压缩后的文件能否支持在任意位置往后读取数据. 各种压缩格式特点: 压缩算法都需要权衡 空间/时间 :压缩率越高, ...
- react native 中的ListView
ListView 的运用: 1.首先在react native中引入这个组件: 2.初始化的ListView 的相关属性: constructor(props) { super(props); con ...
- POJ1426 Find The Multiple —— BFS
题目链接:http://poj.org/problem?id=1426 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Tota ...
- ODC(Orthogonal Defect Classification)简介——正交缺陷分类法
Defect分析是软件开发和测试中一个重要的环节,ODC介绍了一种不同于大家常用的非常有效的defect分类及分析方法.这篇文章简单的向大家介绍了什么是ODC,以及如何在项目和产品开发中使用ODC来改 ...
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄很清楚. 现在把整个总结一下. 其实只要把下面这张图看明白就没问题了. 涉及到的方法一共有下面几个: view获取自身 ...