2015年,我出版了第一本关于图像处理的书《Java图像处理——编程技巧与应用实践》。本书主要从理论和编码两方面阐述了图像处理的基本算法及其编码技巧。转眼间,三年...
许多市民已经在银行申请了信用卡。但是,信用卡在给我们的消费带来便利的同时,也存在着隐患。近日,有媒体报道称,芜湖市民陈先生因不注意保护信用卡信息,在几分钟内为自...
"我们没有对此次收购的官方回复."1月22日,俏江南官方负责人告诉《金融周刊》记者。1月10日,商务部官网公布了2013年第四季度无条件批准的经营者集中案例清单。根据...
-
按照官方说明安装Numpy,或运行以下命令
pipinstall numpy安装imutils
pipinstall imutils安装请求
pipinstall requests2.编码
检测和发送数据的整个例程可以在本章中找到。为了更好地解释这段代码,我们将其分为八个部分,以便更好地解释代码的各个方面,使您更容易理解。
第1节
from imutils.object_detection importnon_max_suppression importnumpy as np importimutils importcv2 importrequests importtime importargparseURL _ EDITION = " http://things . ubi dots . com " URL _ INDUSTRIER = " http://INDUSTRIER . API . ubi dots . com " INDUSTRIER _ USER = True #将此设置为false如果您是教育用户令牌= " .." alt="计数器代码 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)">
图片转载自
https://www.pyimagesearch.com
第3节
deflocalDetect(image_path):result = []image = cv2.imread(image_path)iflen(image) <= 0:print("[ERROR] could not read your local image")returnresultprint("[INFO] Detecting people")result = detector(image)# shows the resultfor(xA, yA, xB, yB) inresult:cv2.rectangle(image, (xA, yA), (xB, yB), (0, 255, 0), 2)cv2.imshow("result", image)cv2.waitKey(0)cv2.destroyAllWindowsreturn(result, image)现在,在这部分代码中,我们必须定义一个函数来从本地文件中读取图像,并检测其中是否有人。为了实现这一点,我简单的调用了检测器函数,并添加了一个简单的循环来绘制检测器的圆框。它返回检测到的帧数和带有绘图检测的图像。然后,只需在新的操作系统窗口中重新创建结果。
第4节
defcameraDetect(token, device, variable, sample_time=5):cap = cv2.VideoCapture(0)init = time.time# Allowed sample time for Ubidots is 1 dot/secondifsample_time < 1:sample_time = 1while(True):# Capture frame-by-frameret, frame = cap.readframe = imutils.resize(frame, width=min(400, frame.shape[1]))result = detector(frame.copy)# shows the resultfor(xA, yA, xB, yB) inresult:cv2.rectangle(frame, (xA, yA), (xB, yB), (0, 255, 0), 2)cv2.imshow('frame', frame)# Sends resultsiftime.time - init >= sample_time:print("[INFO] Sending actual frame results")# Converts the image to base 64 and adds it to the contextb64 = convert_to_base64(frame)context = {"image": b64}sendToUbidots(token, device, variable,len(result), context=context)init = time.timeifcv2.waitKey(1) & 0xFF== ord('q'):break# When everything done, release the capturecap.releasecv2.destroyAllWindowsdefconvert_to_base64(image):image = imutils.resize(image, width=400)img_str = cv2.imencode('.png', image)[1].tostringb64 = base64.b64encode(img_str)returnb64.decode('utf-8')与第3节中的函数类似,第4节中的函数将调用检测器方法和绘图框,并使用OpenCV中的VideoCapture方法直接从网络摄像头中检索图像。我们还稍微修改了官方的摄像头,以捕捉相机中的图像,并每“n”秒将结果发送到一个Ubidots帐户(发送到bidots功能将在本教程的稍后部分进行介绍)。convert_to_base64函数将图像转换成基本的64位字符串,对于在HTML Canvas小部件中使用Java代码查看Ubidots中的结果非常重要。
第5节
defdetectPeople(args):image_path = args["image"]camera = Trueifstr(args["camera"]) == 'true'elseFalse# Routine to read local imageifimage_path != Noneandnotcamera:print("[INFO] Image path provided, attempting to read image")(result, image) = localDetect(image_path)print("[INFO] sending results")# Converts the image to base 64 and adds it to the contextb64 = convert_to_base64(image)context = {"image": b64}# Sends the resultreq = sendToUbidots(TOKEN, DEVICE, VARIABLE,len(result), context=context)ifreq.status_code >= 400:print("[ERROR] Could not send data to Ubidots")returnreq# Routine to read images from webcamifcamera:print("[INFO] reading camera images")cameraDetect(TOKEN, DEVICE, VARIABLE)这种方法的目的是通过终端和触发例程插入参数,并从本地存储的图像文件或通过网络摄影搜索行人。
第6节
defbuildPayload(variable, value, context):return{variable: {"value": value, "context": context}}defsendToUbidots(token, device, variable, value, context={}, industrial=True):# Builds the endpointurl = URL_INDUSTRIAL ifindustrial elseURL_EDUCATIONALurl = "{}/api/v1.6/devices/{}".format(url, device)payload = buildPayload(variable, value, context)headers = {"X-Auth-Token" alt="计数器代码 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)">
注:TTCV含有破伤风类毒素疫苗 伤口分类标准 清洁伤口:位于细菌定植较少的区域并在受伤后立即治疗的简单伤口(如刀伤)。 不洁伤口:位于细菌定植较多的区域(如腋窝...
2015年兽医考试成绩查询预计时间将于2016年1月公布。请注意当时的追梦人。 执业兽医考试成绩怎么查? 您可以登录中国兽医协会(www.cvma.org.cn)查询您的成绩并打印...
什么是ASCVD 根据2013年ACC/aha指南,临床诊断的ASCVD为:急性冠状动脉综合征、心肌梗死史、稳定或不稳定型心绞痛、冠状动脉血运重建、动脉粥样硬化性卒中或TIA(新...
PICVideo解码器是一个完美而独特的MJPEG(动态JPEG)视频编解码器,可以支持64位和32位。飞马成像提供业界最快和最高质量的图像压缩和解压缩技术。赶紧下载。 软件...
优势 大座位 可用的全轮驱动 运动SR模型 高速公路卓越的燃油经济性 VC-Turbo发动机是一个技术奇迹 劣势 没有混合Altima 没有马自达6高档 变速箱只有无级变速器 ...
网配圈的CV们,关注过这个圈子的网友们,多多少少都会知道,CV们因配剧,而形成各种各样的CP,网友们也多多少少有自己喜欢的CP,那在CV圈里真实的CP有谁呢?有网友整理了资料,下...