- 博客(48)
- 资源 (6)
- 收藏
- 关注
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---运用三:物体运动跟踪
教程:博主之前写了22节关于使用OpenCV的教程,欢迎大家阅读:(Python)从零开始,简单快速学机器仿人视觉Opencv—第一节:OpenCV的图像读取显示及保存(Python)从零开始,简单快速学机器仿人视觉Opencv—第二节:OpenCV的视频操作 (Python)从零开始,简单快速学机器仿人视觉Opencv—第三节:OpenCV中的绘图函数(Python)从零开始,简单快速...
2020-02-04 09:59:43 9493
原创 (Python)在子线程中使用Matplotlib进行绘图(100%解决问题)
想要主程序进行数据实时监控,子线程进行数据查找并通过Matplotlib进行绘制,却惨遭报错
2022-03-20 12:03:09 10668 8
原创 2021华东师范大学软院保研夏令营(可信人工智能大学生夏令营)经验总结
首先 首先,我想简单介绍下华东师大软院:其实ECNU真的很强的,滑动吃饭大学(老梗了)本身软件工程的专业、学科排名都非常的高。自身情况 本人来自于一个四非大学,物联网工程专业,GPA:4.16/5,排名:1/93,有2个国家级比赛的证书、国家奖学金1次,校一等奖学金2次。持有第一人专利人专利1项、软件著作3项,还有一些比较奇怪的公司的合作经验和一些奇奇怪怪的奖状。时间安排 今年华东师大的时间安排表如下: 夏令营正式开启的时间是7.12号,线上的形式。7.1-3,7.9-10主要进行的是
2021-07-19 16:27:56 6491 13
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---运用五:物体运动跟踪
教程:博主之前写了25节关于使用OpenCV的教程,欢迎大家阅读:(Python)从零开始,简单快速学机器仿人视觉Opencv—第一节:OpenCV的图像读取显示及保存(Python)从零开始,简单快速学机器仿人视觉Opencv—第二节:OpenCV的视频操作 (Python)从零开始,简单快速学机器仿人视觉Opencv—第三节:OpenCV中的绘图函数(Python)从零开始,简单快速...
2020-03-10 15:37:52 4582
原创 Ubuntu上安装NS3(最详细的图文介绍)
前提 1.首先我们需要安装好Ubuntu,这个我不在这里进行详细的说明了,这个是比较简单的。 2.虚拟机已经连接上网络。(这个可以后面安装的时候就知道有没有连上了,正常情况下是电脑连着wifi,虚拟机也会连上的) 3.本次安装过程中出现的(y/n)选项全部选择y。 4.有的包安装的时候有的时候可能显示只有 xxx B/s或者完全不动了,这个不用太在意,有的时候是这样的,过了那么一小...
2020-03-03 15:36:27 22690 23
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---运用四:图像损痕修复
教程:博主之前写了24节关于使用OpenCV的教程,欢迎大家阅读:(Python)从零开始,简单快速学机器仿人视觉Opencv—第一节:OpenCV的图像读取显示及保存(Python)从零开始,简单快速学机器仿人视觉Opencv—第二节:OpenCV的视频操作 (Python)从零开始,简单快速学机器仿人视觉Opencv—第三节:OpenCV中的绘图函数(Python)从零开始,简单快速...
2020-02-09 15:16:09 6390
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---运用二:物体检测
import cv2import numpy as np#生成sift检测和提取器detect=cv2.xfeatures2d.SIFT_create()extract=cv2.xfeatures2d.SIFT_create()#生成flann匹配器flann_params=dict(algorithm=1,trees=5)flann=cv2.FlannBasedMatcher(...
2020-01-30 15:36:06 8951 2
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---运用一:快速截取图像中指定单个物体
教程:博主之前写了21节关于使用Opencv的教程,欢迎大家阅读:(Python)从零开始,简单快速学机器仿人视觉Opencv—第一节:OpenCV的图像读取显示及保存(Python)从零开始,简单快速学机器仿人视觉Opencv—第二节:OpenCV的视频操作 (Python)从零开始,简单快速学机器仿人视觉Opencv—第三节:OpenCV中的绘图函数(Python)从零开始,简单快速...
2019-11-25 18:50:49 6027
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第二十节:轮廓的层次结构
一般情况下我们称外部的形状为父,内部的形状为子。按照这种方式分类,一幅图像中的所有轮廓之间就建立父子关系。这样我们就可以确定一个轮廓与其他轮廓是怎样连接的,它是不是某个轮廓的子轮廓,或者是父轮廓。这种关系就成为组织结构。 在这幅图像中,我给这几个形状编号为0-5。2和2a分别代表最外边矩形 的外轮廓内状语从句:轮廓。 在这里边轮廓0,1,2在外部或最外边。我们可以称他们为(组织结...
2019-11-18 16:42:30 5157 2
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十九节:关于轮廓的函数
1 凸缺陷 找到凸缺陷hull=cv2.convexHull(cnt,returnPoints=False)defects=cv2.convexityDefects(cnt,hull) 它会返回一个数组,其中每一行包含的值是【起点,终点,最远的点,到最远点的近似距离】import cv2import numpy as npimg=cv2.imread('0023.jpg')i...
2019-11-12 11:17:00 5153
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十八节:轮廓的性质
1.1长宽比边界矩形的宽高比x,y,w,h=cv2.boundingRect(cnt)aspect_ratio = float(w)/h2.Extent轮廓面积与边界矩形面积的比area=cv2.contourArea(cnt)x,y,w,h=cv2.boundingRect(cnt)rect_area=w*hextent=float(area)/rect_area3.So...
2019-11-10 08:53:53 5153
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十七节:轮廓详解与运用
什么是轮廓 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。 ·为了准确,要使用二值化图像。需要进行阀值化处理或者Canny边界检测。 ·查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。 ·在OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该...
2019-11-09 09:15:51 5360
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十六节:图像金字塔
1.原理 一般情况下,我们要处理是一副具有固定分辨率的图像。但是特别情况下我们需要对同一个图像的不同分辨率的子图像进行处理,如查找图像中的某个目标,如人脸,我们不知道目标在图像中的尺寸大小。这种情况下,我们需要创建一组图像,这些图像是具有不同分辨率的原始图像。我们把这组图像叫做图像金字塔。就是同一图像的不同分辨率的子图集合。我们把最大的图像放在底部,最小的放在顶部,看起来就像一座金字塔。 ...
2019-11-02 14:53:26 4786
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十五节:Canny边缘检测
首先:Canny边缘检测:cv2.Canny()任务1:原理步骤1.1 噪音去除由于边缘检测很容易受到噪音影响,所以第一步是使用5x5的高斯滤波器去除噪音。步骤1.2 计算图像梯度对平滑后的图像使用Sobel算子计算水平方向和竖直方向的一阶导数(图像梯度)(Gx和Gy)。根据得到的这两幅梯度图找到边界的梯度和方向。公式如下:梯度的方向一般总是与边界垂直。梯度方向被归为四类:垂直,水...
2019-10-24 09:18:37 4629
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十四节:图像梯度
事先说明图像梯度原理:简单来说就是求导OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Laplacian。Sobel和Scharr是求一阶或二阶导数。Scharr是对Sobel(使用小的卷积核求解梯度角度时)的优化,Laplacian是求二阶导数。任务1:Sobel算子和Scharr算子 Sobel算子是高斯平滑与微分操作的结合体,它的抗噪音能力很好。...
2019-10-23 17:34:16 4563
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十三节:形态学转换
涉及函数cv2.erode(),cv2.dilate(),cv2.morphotogyEx()首先 首先我们看下原始图像:形态学转换原理: 一般情况下对二值化图像进行操作。需要两个参数,一个是原始图像,第二个被称为结构化元素或者核(kernel),它是用来决定操作的性质的。基本操作为腐蚀和膨胀,他们的变体构成了开运算,闭运算以及梯度等。任务1:腐蚀 把前景物体的边界腐蚀掉,但...
2019-10-16 16:00:44 4571
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十二节:几种常见的图像滤波、平滑
事先准备使用工具:Python3.5使用库:cv2,numpy任务1:2D卷积 同一维信号一样,可以对2D图像实施低通滤波(LPF)和高通滤波(HPF)。LPF用于去除噪音,模糊图像,HPF用于找到图像的边缘。OpenCV提供的函数cv.filter2D()可以对一幅图像进行卷积操作。练习一幅图像使用平均滤波器。举例下面是一个5X5的平均滤波器核: 操作如下,将核放在图像的一个像...
2019-10-11 19:40:16 4582 1
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十一节:图像阈值
事前准备使用工具:Python3.5使用库:cv2,numpy原始图像任务1:简单阀值涉及函数:cv2.threshold() 当像素值高于阀值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是cv2.threshold()。这个函数的第一个参数就是原图像,原图像应该是灰度图。第二个参数就是用来对像素值进行分类的阀值,第三个参...
2019-10-09 16:13:06 4552
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第十节:五种常见的几何变换
涉及函数:cv2.getPerspectiveTransform()cv2.warpAffine()cv2.warpPersperctive()名称讲解: 通道数:指的是一个像素点由几个元素产生,有几个元素就有几条通道。如:一张RGB的图片,他上面的一个像素点就有三个元素组成(三通道),分别是B(Blue),G(Green),R(Red),所以这张图片就是三通道的;而一张灰度图,上面的...
2019-10-08 09:20:28 4679 2
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第九节:颜色空间转换
事先准备使用工具Python3.5使用包cv2,numpy涉及函数cv2.cvtColor()cv2.inRange()任务1:转换颜色空间 在 OpenCV 中有 超过150 种进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。我们用到的函数是:cv2.cvtColor(input_image,flag),其中flag就是转换...
2019-10-07 18:23:41 4792
原创 阿里云上通过MQTT协议,实现多设备的相互数据的稳定动态传输和使用(本地设备均采用c#窗体代码)第二篇-----本地设备开发(Demo)
引言 本段代码的含义在之前的一篇文章里有介绍,本文为完整代码的展示,之前介绍用的文章,点击此处即可查看Demo代码:using System;using System.Net;using System.Collections.Generic;using System.Linq;using System.Text;using uPLibrary.Networking.M2Mqtt;...
2019-10-07 17:59:29 5117
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第八节:程序性能检测及优化
事前准备:使用工具Python3.5使用包cv2,numpy,time,profile涉及函数:cv2.getTickCount,cv2.getTickFrequency任务1 使用OpenCV检测程序效率 cv2.getTickCount函数返回从参考点到这个函数被执行的时钟数。在一个函数执行前后都调用它,可以得到这个函数的执行时间。 cv2.getTickFrequency返...
2019-10-06 15:29:36 4419
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---函数讲解1:cv2.flip()函数
语法cv2.flip(src, flipCode[, dst]) #src为要操作的图像flipCode的使用flipCode=-1 #水平垂直翻转flipCode= 0 #垂直翻转flipCode= 1 #水平翻转我们随便导入一张图片,他的原始图像是这样的:import cv2import numpy as npimg=cv2.im...
2019-09-26 20:50:12 3891
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第七节:图像上的算术运算
准备工作使用工具Python3.5使用包cv2,numpy涉及函数cv2.add() ,cv2.addWeighted()任务1 图像加法 使用cv2.add()将两幅图像进行加法运算,也可以直接使用numpy,res=img1+img2.两幅图像的大小,类型必须一致,或者第二个图像可以是一个简单的标量值。 openCV的加法是一种饱和操作(大于255就按255算),而numpy的...
2019-09-25 19:54:01 2224
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第六节:OpenCV图像的一些基本操作
提前准备使用工具Python3.5使用包cv2,numpy任务1 获取并修改像素值 读取一副图像,根据像素的行和列的坐标获取它的像素值,对于RGB图像而言,返回RGB的值,对于灰度图则返回灰度值import cv2import numpyimg = cv2.imread('45.jpg')px=img[100,100]print(px)blue = img[100,100,0...
2019-09-25 19:02:11 2252
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第五节:OpenCV用滑动条做调色板
注释 本节对仿人视觉没什么作用,只是想把opencv里面的这个函数给讲一下,以后就算不用opencv去做仿人视觉,也可以派的上用场。事先准备使用库numpy;cv2使用函数cv2.getTrackbarPos();cv2.creatTrackbar() cv2.creatTrackbar():可在显示图像的窗口中快速创建一个滑动控件,用于手动调节阈值(阀值可以理解为上限的意思) ...
2019-09-23 09:50:02 2544
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第四节:OpenCV处理鼠标事件
准备工作使用工具:Python3.5涉及包:cv2 numpy涉及函数函数:cv2.setMouseCallback()任务开始简单的程序,在图片上双击过的位置绘制一个圆圈 任务1.创建鼠标事件回调函数,当鼠标事件发生时就会被执行。 比如左键按下,松开,左键双击等。可以通过鼠标事件获得相对应的图片上的坐标,根据这些信息可以做想做的事。所有鼠标事件回调函数都有一个统一的...
2019-09-22 14:05:17 2291
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第三节:OpenCV中的绘图函数
准备使用工具:Python3.5,使用库: numpy opencv涉及函数 涉及的函数:cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等参数说明需要设置的参数: img 你想要绘制的图形的那副图像 color 形状的颜色,以RGB为例,需要传入的元组,例(255,0...
2019-09-22 09:31:49 2375
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第二节:OpenCV的视频操作
准备工作使用库: numpy opencv任务1 用摄像头捕获视频cv2.VideoCapture() :0为默认计算机默认摄像头,1可以更换来源;import numpy as npimport cv2cap = cv2.VideoCapture(0)while(True): #capture frame-by-frame ret , frame = cap.r...
2019-09-21 20:34:57 3372 2
原创 (Python)从零开始,简单快速学机器仿人视觉Opencv---第一节:OpenCV的图像读取显示及保存
事前准备使用库: opencv,可以用pip install opencv-python来安装(注意!不是pip install opencv!!!) numpy(这个本节不用,但是以后经常要用到)从零开始我们先来讲从图片的导入和将灰度图另存到另一个地方概念 彩色图:图片每个像素都由Blue,Green,Red三种通过颜色的搭配获得,每个颜色的取值都在[0-255]内,如(0,...
2019-09-21 11:21:30 3708
原创 用python通过MQTT协议去连接阿里云来实现数据的上下交互(并将得到的云上数据发送到某人的QQ邮箱中)
库函数的需要 首先我们需要下载一个模块,可以使用pip命令进行安装pip install aliyun-iot-linkkit(这篇博文撰写的时候,他的版本处在1.2.0)任务描述 首先,我们需要在阿里云平台上创建一个产品和一台设备,然后本地程序通过连接这台云上设备来进行数据的上下交换。数据的交互我们凭借的是阿里云上自带的规则引擎去实现的(这些我都会一一讲述如何实现)对于将数据传递...
2019-09-15 20:46:49 7372 9
原创 如何不使用QQ邮箱,纯靠代码发送QQ邮件?
使用道具 下载了python tools的VisualStdio 2017(其实是只要有python的编译器就行)方法介绍 这里我们使用的模块是SMTPLIB,所以很显然我这里运用的是smtp协议去进行邮件的传输。邮件的传输我这里会讲两种情况:一种是不带附件的情况下该怎么传输,另一种则是带上附件的时候该怎么传输邮件。准备工作 我们首先需要一个邮件的发出端,因为我们要用的是smtp协...
2019-09-04 21:03:23 3532
原创 python编程.多线程(threading模块或_thread模块)
前提首先我们需要了解下我们为什么需要学习多线程,他有什么好处呢? 1.使用线程可以把占据长时间的程序中的任务放到后台去处理。 2.基本不会出现线程占用的问题。 3.可以提高程序的运行效率对于多线程的理解 在多线程的程序中,主线程可以理解为一个饭店的前台,专门用来接待客人,当接收到任务的时候,主线程(前台)就会将任务送到厨房去,交给厨师们去处理(子线程),不会占用自己招待其他客人...
2019-09-01 20:48:32 2252
原创 C#上最简洁明了的处理json数据(VS2017)
所需要的工具 VS2017 Newtonsoft.Json.LinqNewtonsoft.Json的安装打开Nuget包管理器然后点击浏览,下载Newtonsoft.Json实例代码using System;using Newtonsoft.Json.Linq;//添加刚下好的库namespace ConsoleApp1{ class Program ...
2019-08-30 15:24:25 5905
原创 NDN-lite 命名数据网络 -----第二章:对Interest和Data包的处理
关于NDN的路由机制 NDN的路由机制上保留了类似IP路由的转发路由表(Forwarding Interest Base,FIB),增加了待处理表(Pending Interest Table,PIT)和数据包缓存(Content Store,CS)数据机构。 NDN数据包是独立的,与他从哪里来以及要到哪里去都没有关系,传输过程中也不需要状态信息,...
2019-08-21 16:23:20 3494 1
原创 NDN-lite 命名数据网络 -----第一章:关于Interest和Data
声明: 博主这里参考的是NDN-lite 格式规范的0.3版本,不同版本中的数据包和兴趣包中所包含的参数会有细微的差异。关于NDN网络 命名数据网络(Named-Data Networking,NDN)早前也被称为内容中心网络(Content Centric Networking,CCN),由于其特殊的传输方式,其协议架构设计上可以彻底解决TCP/IP设计上的诸多不适应性,但依旧保留了细...
2019-08-12 20:02:17 3538
原创 蓝牙mesh协议的架构讲解
BLE Mesh 的基础架构 BLE Mesh的架构一共可以分成8层,如图所示1.蓝牙低功耗(Bluetooth Low Energy Core Specification) 最底下的 蓝牙低功耗 这一层,我将它标成了浅蓝色与上面几层进行了区分,原因是 蓝牙低功耗 并非仅是mesh架构的其中一层,而是完整的蓝牙低功耗协议栈,是提供基础无线通信功能所必需的组件,这些功能可为位于其上的mes...
2019-07-29 10:20:33 4948
Arduino IOT 全教程.rar
2019-07-28
membrane-monitor-1.1.2 三件套.rar
2019-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人