# -*- 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通信传输位置的更多相关文章

  1. java socket通信-传输文件图片--传输图片

    ClientTcpSend.java   client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...

  2. Java Socket实战之七 使用Socket通信传输文件

    http://blog.csdn.net/kongxx/article/details/7319410 package com.googlecode.garbagecan.test.socket.ni ...

  3. IOS 基于TCP的socket通信详解(原创)

    最近在整理通信层相关知识,这篇文章是边整理边写的,有些地方可能不够准确,还请各位路过的大牛专家指出来.这次整理的socket通信是基于TCP的,实现方式是GCD形式,以下记录的都是些理论知识,方便自己 ...

  4. 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)

    原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...

  5. Android中Socket通信之TCP与UDP传输原理

    一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时 ...

  6. 网络编程 - socket通信/粘包/文件传输/udp - 总结

    socket通信 1.简单的套接字通信 import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.bin ...

  7. 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)

    1.网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传 ...

  8. .net平台下C#socket通信(上)

    在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳过去了.都是废话,进入正题. TCP/IP:Transmission Control Protocol ...

  9. C#socket通信1

    .net平台下C#socket通信(上) 完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈. 在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳 ...

随机推荐

  1. Intel的东进与ARM的西征(5)--智慧的大窗口,我们都在画里面

    http://www.36kr.com/p/200168.html 繁华又算得了什么,不过是星尘的崩碎,那一抹青青的灰.公元 79 年,意大利维苏威火山喷发,已然兴盛了 600 年的庞贝古城被完全湮没 ...

  2. poj2406--Power Strings(kmp:求循环串的次数)

    Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 33163   Accepted: 13784 D ...

  3. Simple calculations

    Description 有一个包括n+2个元素的数列a0, a1, ..., an+1 (n <= 3000, -1000 <= ai <=1000).它们之间满足ai = (ai- ...

  4. ruby简单的基础 2

    1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| p ...

  5. 安卓动态逆向分析工具--Andbug&Androguard

    工具使用方法: 转自: http://bbs.pediy.com/showthread.php?t=183412 https://testerhome.com/topics/3542 安装andbug ...

  6. fruitstrap 安装.app文件

    1. 下载ipa的ios文件然后解压成.app的文件 2. 进入fruitstrap文件夹,copy .app文件到fruitstrap文件夹中 执行./fruitstrap -b umetrip.a ...

  7. OPENCV在ARM平台的移植

    两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...

  8. bzoj3134: [Baltic2013]numbers

    稍微用脑子想一想,要是一个回文数,要么s[i]==s[i+1]要么s[i]==s[i+2]就可以实锤了 所以多开两维表示最近两位选的是什么数就完了 注意前导0 #include<cstdio&g ...

  9. 软件安全测试新武器 ——浅谈基于Dynamic Taint Propagation的测试技术

    软件安全测试是保证软件能够安全使用的最主要的手段,如何进行高效的安全测试成为业界关注的话题.多年的安全测试经验告诉我们,做好软件安全测试的必要条件是:一是充分了解软件安全漏洞,二是拥有高效的软件安全测 ...

  10. Hadoop的jobhistoryserver配置

    配置mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</na ...