- 博客(326)
- 资源 (88)
- 论坛 (3)
- 收藏
- 关注
原创 NodeMCU-ESP32开发实例-WiFi连接设置静态IP
WiFi连接设置静态IPNodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340 WiFi 蓝牙ESP-32 可用Arduino IDEESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低功耗协处理器来不断
2021-02-28 21:15:04
38
原创 NodeMCU-ESP32开发实例-WiFi事件处理
WiFi事件处理NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340 WiFi 蓝牙ESP-32 可用Arduino IDEESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低功耗协处理器来不断地监测外
2021-02-28 20:37:23
28
原创 NodeMCU-ESP32开发实例-扫描可用WiFi网络及WiFi信号强度检测
扫描可用WiFi网络及WiFi信号强度检测NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340 WiFi 蓝牙ESP-32 可用Arduino IDEESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低
2021-02-28 18:56:15
30
原创 NodeMCU-ESP32开发实例-ESP32的WiFi工作模式
ESP32的WiFi工作模式NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340 WiFi 蓝牙ESP-32 可用Arduino IDEESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低功耗协处理器来
2021-02-28 18:37:35
25
原创 NodeMCU-ESP32开发实例-通过NTP获取 Epoch/Unix时间
通过NTP获取 Epoch/Unix时间NTP代表“网络时间协议”,它是用于在计算机系统之间进行时钟同步的网络协议。 换句话说,它用于同步网络中的计算机时钟时间。本文将介绍如何使用带Arduino IDE的NodeMCU ESP32s开发板获取Epoch/Unix时光。 获取纪元时间对于时间戳记读数,为文件指定唯一名称以及其他应用程序很有用。 我们会从NTP服务器请求当前的epoch时间,因此ESP32s开发板需要建立Internet连接。
2021-02-28 13:59:51
965
4
原创 NodeMCU-ESP32开发实例-连接WiFi
连接WiFi在前面,NodeMCU-ESP32-Arduino开发环境搭建的笔记中,已经成功搭建了NodeMCU-ESP32s的开发环境并成功扫描附近的WiFi网络。下面将详细介绍NodeMCU-ESP32s连接开发板。1、准备硬件NodeMCU-ESP32s开发板一块数据线一条笔记本电脑一台假设已经通过路由器搭建好WiFi网络,并且可以访问。NodeMCU-ESP32s开发板通过数据线连接电脑。2、软件准备Arudino IDE 及ESP32插件3、代码实现#include
2021-02-28 13:17:56
46
原创 NodeMCU-ESP32开发实例-Arduino开发环境搭建
NodeMCU-ESP-32S开发环境搭建NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDEESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低
2021-02-28 12:37:38
39
原创 Arduino开发实例-433M无线模块数据发送与接收
433M无线模块数据发送与接收435m无线模块广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。下面将通过433M无线模块实现数据的送与接收。1、硬件准备433M无线发送模块一个、接收模块一个Arduino UNO R3开发板两个及两根数据线杜绑
2021-02-27 10:19:41
41
原创 OpenCV4.x图像处理实例- 特征描述符匹配器及匹配点绘制
第二节 特征描述符匹配器及匹配点绘制OpenCV中关键点描述符的匹配器具有带有公共接口的包装器,可以轻松地在解决同一问题的不同算法之间进行切换。 本节专门介绍在多维空间中以向量表示的匹配描述符。 实现矢量描述符匹配器的所有对象都继承DescriptorMatcher接口以及相应的关键点和匹配点绘制接口。1、cv::drawKeypoints绘制关键点void cv::drawKeypoints(InputArray image,const std::vector< KeyPoint >
2021-02-27 10:11:44
15
原创 OpenCV 4.x API 详解与C++实例-特征检测与描述
第一节 特征检测与描述OpenCV提供了丰富的特征检测算法,比如SIFT(Scale Invariant Feature Transform)、AffineFeature、AgastFeatureDetector、AKAZE、BRISK、FastFeatureDetector、GFTTDetector、KAZE、MSER、ORB、SimpleBlobDetector等1、SIFT尺度不变特征变换算法提取图像特征SIFT类继承了cv::Feature2D类,通过create静态方法创建。stati
2021-02-27 10:09:18
37
原创 C++11代码注释及Doxygen文档生成
代码注释及Doxygen文档生成1、DoxygenDoxygen是一个免费的(成本和许可证)工具,可读取源代码,查找遵循特定条件的注释。构建并从注释和代码中提取信息以生成文档。 它以多种格式输出:HTML,RTF(富文本格式),LaTeX,UNIX手册页和XML。Java程序员可能熟悉类似的名为javadoc的工具。Javadoc工具是Java软件开发工具包中的标准工具,而Doxygen与C ++标准或任何C ++供应商都没有关系。C++缺乏结构化文档的标准,因此你可以自由地做任何想做的事情。例如,如
2021-02-26 09:00:29
27
原创 C++11Lambda表达式捕获变量(Capturing the Variable)与本地变量(Local Variable)
在Lambda的方括号[]中命名局部变量称为捕获变量(capturing the variable)。如果没有在**方括号[]**指定变量,则在Lambda表达中不能使用。Lambda捕获变量默认是值传递方式。如下面代码:#include <iostream>#include <algorithm>#include <iterator>#include <vector>using namespace std;int main(int argc
2021-02-25 19:36:19
29
1
原创 C++11通过Lambda表达式操作向量元素
C++11提供了Lambda表达式,可以方便地操作向量元素。虽然C++11的Lambda表达式是未命名函数,但是可以像变量一样命名一个Lambda表达式并且调用方式跟常规函数没有什么区别。
2021-02-25 19:17:00
19
原创 C++11通过迭代器反转向量元素
反转向量容器中的元素,可以通过索引方式,也可以直接调用C++STL标准库中的std::reverse函数实现,还可以通过迭代器实现。
2021-02-25 17:56:11
17
原创 C++11使用copy函数优雅实现向量输入及输出
C++STL算法中的copy函数主要用于容器之间元素的拷贝,即将迭代器区间[first,last)的元素复制到由复制目 标result给定的区间[result,result+(last-first))中。下面将通过copy函数及迭代器实现向量的输入和输出:#include <iostream>#include <algorithm>#include <vector>#include <iterator>using namespace std;
2021-02-25 17:40:10
25
原创 C++11格式化输出生成乘法口诀表
C++格式化输出生成乘法口诀表C++格式化输出的主要内容有:字段宽度、字符填充、字符对齐。字段宽度:由setw函数实现,可以在字符前、中、后设置。字符填充:由setfill函数实现,setfill函数是跟在setw后面填充相应的空位(默认是空格)。字符对齐:由std::ios_base::left, std::ios_base::adjustfield,std::ios_base::right等指定。下面将通过以上三种操作生成一个乘法口诀表:#include <iostream>
2021-02-25 17:09:40
21
原创 WeMos物联网开板实例入门-实现简单CoAP服务器
实现简单CoAP服务器Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252。COAP名字翻译来就是“受限应用协议”,顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。本文对CoAP协议暂不做详细讲解,感兴趣的同学可以参考相关资料。通过前面[WeMos物联网开板实例入门-连接WIFI]的实例将WebMos开发板连接上了WIFI,在本节里,将实例一个
2021-02-18 19:44:00
45
1
原创 WeMos物联网开板实例入门-实现简单MQTT客户端
简单MQTT客户端通过前面[WeMos物联网开板实例入门-连接WIFI]的实例将WebMos开发板连接上了WIFI,在本节里,将实例一个简单的MQTT客户端。1、硬件准备WeMos D1 R2开发板一个笔记本电脑(台式电脑)一台发光LED一个杜邦线两根面包板一个发光LED通过面包板、杜邦线与开发板连接。如下图:2、代码实现安装mosquitto可以通过https://mosquitto.org/download/下载并安装并启动。导入相关头文件及定义#incl
2021-02-11 10:28:12
99
1
原创 WeMos物联网开板实例入门-实现简单WebSocket服务器
实现简单WebSockets服务器通过前面[WeMos物联网开板实例入门-连接WIFI]的实例将WebMos开发板连接上了WIFI,在本节里,将实例一个简单的WebSockets服务器。1、硬件准备WeMos D1 R2开发板一个笔记本电脑(台式电脑)一台发光LED一个杜邦线两根面包板一个发光LED通过面包板、杜邦线与开发板连接。如下图:2、代码实现在本次应用中,需要使用到WebSockets库,下载完成后,将其导入到Arduino IDE中,如下图:[外链图片转存失败,源站可
2021-02-11 10:25:24
35
原创 WeMos物联网开板实例入门-实现简单Web服务器
实现简单Web服务器通过前面连接WIFI的实例将WeMos开发板连接上了WIFI,在本节里,将实例一个简单的Web服务器。1、硬件准备WeMos D1 R2开发板一个笔记本电脑(台式电脑)一台发光LED一个杜邦线两根面包板一个发光LED通过面包板、杜邦线与开发板连接。如下图:2、代码实现实现简单Web服务器主要由以下几步组成:连接WIFI定义服务器端口初始化LED接口启动服务器监听客户端连接解析客户端请求参数按请求参数控制LED代码实现如下:#includ
2021-02-10 18:34:38
68
原创 WeMos物联网开板实例入门-连接WIFI
WeMos开发板连接WIFIWeMos开发板自带WIFI模块,并与Arudino UNO 兼容,连接WIFI非常简单。1、硬件准备WeMos D1 R2 开发板一块笔记本电脑一台将WeMos开发环境建塔好,可以参考WeMos物联网开板实例入门-环境搭建。2、代码实现打开Arduino IDE,新建一个工程,编写如下代码:#include <ESP8266WiFi.h>// WIFI 连接信息const char* ssid = "填写WIFI的名称";const ch
2021-02-10 17:33:59
38
原创 WeMos物联网开板实例入门-点亮内置LED
点亮内置LEDWebMos D1 R2开发板内置的内置LED与TXD接口共用,因此在使用LED时不能使用Serial.print()。// 程序初始化void setup() { pinMode(LED_BUILTIN, OUTPUT); // 设置LED_BUILTIN引脚为输出}// 无限循环void loop() { digitalWrite(LED_BUILTIN, LOW); // 点亮内置LED,内置LED设置低电压时LED实际是点亮 delay(1000)
2021-02-06 18:44:59
53
原创 OpenCV 4.x API 详解与C++实例-物体跟踪
第二节 物体跟踪OpenCV的video模块提供了几种基于光流的物体跟踪方法。1、cv::buildOpticalFlowPyramid、cv::calcOpticalFlowPyrLK1)cv::buildOpticalFlowPyramid:构造可以传递给calcOpticalFlowPyrLK的图像金字塔。int cv::buildOpticalFlowPyramid (InputArray img,OutputArrayOfArrays pyramid,Size winSize,int m
2021-02-06 17:36:32
41
原创 OpenCV 4.x API 详解与C++实例-运动分析
第一节 运动分析OpenCV的video模块提供了KNN和MOG2的运动分析算法。1、cv::createBackgroundSubtractorKNN创建基于KNN算法的背景提取器。Ptr cv::createBackgroundSubtractorKNN(int history = 500,double dist2Threshold = 400.0,bool detectShadows = true)参数名称参数描述history历史帧长度dist2Thresho
2021-02-06 17:33:20
23
原创 WeMos物联网开板实例入门-环境搭建
WeMos开发环境搭建1、什么是WeMosWeMos D1 R2 是一种基于ESP8266EX带有WiFi功能物联网开发板,并与Arduino UNO R3兼容,是一个低成本的WiFI+开源的物联网平台。ESP8266EX的内置Tensilica L106 32位MCU,具有超低功耗和16位RSIC,时钟频率最高可达160MHz。支持RTOS(实时操作系统)。WeMos D1 R2相当于保留了Arduino UNO R3的特性并添加上WiFi功能,带有ESP8266 ESP-13无线网络芯片。W
2021-02-06 17:25:34
34
原创 OpenCV 4.x API 详解与C++实例-物体检测
第十二节 物体检测Opencv的imgproc模块提供了matchTemplate模板匹配函数,该函数计算模板与待测图片的重叠区域的相似度。1、cv::matchTemplate将模板与重叠的图像区域进行比较。void cv::matchTemplate(InputArray image,InputArray templ,OutputArray result,int method,InputArray mask = noArray())该函数图像中滑动,并使用指定的方法将大小为w×hw×hw×h
2021-01-24 09:49:19
29
原创 OpenCV 4.x API 详解与C++实例-特征检测
第十一节 特征检测OpenCV的imgproc模块提供了图像特征检测函数,包括Canny边缘检测、直线检测、角点检测等。1、cv::Canny使用Canny算法对输入图像进行边缘检测。void cv::Canny(InputArray image,OutputArray edges,double threshold1,double threshold2,int apertureSize = 3,bool L2gradient = false)该函数使用Canny算法在输入图像中找到边缘,并在输出
2021-01-24 09:45:30
34
原创 OpenCV 4.x API 详解与C++实例-运动分析和对象跟踪
第十节 运动分析和对象跟踪OpenCV的imgproc模块提供了运动分析和对象跟踪的基础函数,可以根据这些函数对视频进行前景-背景分离,从而达到运动分析和对象跟踪的目的。1、cv::accumulate将多幅图像累加。void cv::accumulate(InputArray src,InputOutputArray dst,InputArraymask = noArray())该函数将src或其某些元素添加到dst中:dst(x,y)←dst(x,y)+src(x,y)ifmask(x,y
2021-01-24 09:41:12
38
原创 数字图像处理Python语言实现-图像滤波-超限邻域滤波
超限邻域滤波1、前言超限邻域滤波是在均值滤波的基础增加阈值处理,可以在有效地去除椒盐噪声的同时尽可能保留原图像信息。2、超限邻域滤波描述设G(x,y)G(x,y)G(x,y)为输入图像,G′(x,y)G'(x,y)G′(x,y)为输出图像,超限邻域滤波的数学公式如下:G′(x,y)={1n∑(i,j)∈Sx,yG(i,j)G(x,y)>1n∑(i,j)∈Sx,yG(i,j)+TG(i,j)G(x,y)≤∑(i,j)∈Sx,yG(i,j)+TG'(x,y) = \begin{cases}\fr
2021-01-15 19:58:29
59
原创 OpenCV 4.x API 详解与C++实例-结构分析和形状描述
第九节 结构分析和形状描述OpenCV的imgproc模块对物体描述提供了丰富的API,比如弧长计算、轮廓查找、质心查找等等。1、cv::findContours查找二值图像中的轮廓。void cv::findContours(InputArray image,OutputArrayOfArrays contours,OutputArray hierarchy,int mode,int method,Point offset = Point())该函数使用算法(Satoshi Suzuki an
2021-01-10 12:56:02
44
原创 OpenCV 4.x API 详解与C++实例-直方图
第八节 直方图OpenCV库提供了直方图统计、直方图比较、直方图均衡化、直方图反向投影等API。1、cv::calcHist计算一组数组的直方图。void cv::calcHist(const Mat * images,int nimages,const int * channels,InputArray mask,OutputArray hist,int dims,const int * histSize,const float ** ranges,bool uniform = true,boo
2021-01-10 12:48:28
29
原创 OpenCV 4.x API 详解与C++实例-平面剖分
第七节 平面剖分OpencCV提供了Subdiv2D类计算Delaunay三角剖分或Voronoi图。下面将通过一个示例演示Subdiv2D类的使用,关于Delaunay三角剖分和Voronoi图,可以参考相关的资料。#include <opencv2/imgproc.hpp>#include <opencv2/highgui.hpp>#include <iostream>using namespace cv;using namespace std;
2021-01-10 12:45:04
28
原创 OpenCV 4.x API 详解与C++实例-颜色映射
第六节 颜色映射人类的感知并不是为观察灰度图像的精细变化而建立的。 人眼对观察颜色之间的变化更为敏感,因此您通常需要重新着色灰度图像以获取有关它们的线索。 OpenCV现在带有各种颜色图,以增强计算机视觉应用程序中的可视化效果。在OpenCV中,只需要applyColorMap即可在给定图像上应用颜色图。void cv::applyColorMap(InputArray src,OutputArray dst,int colormap)参数如下:参数名称参数描述src输入
2021-01-10 12:44:12
24
原创 OpenCV 4.x API 详解与C++实例-颜色空间变换
第五节 颜色空间变换OpenCV提供了143种颜色空间相互转换的类型,比如RGB2BGR、BGR2GRAY等等。在本节中将介绍平时常用的几种颜色空间转换。1、cv::cvtColor将图像从一种颜色空间转换为另一种颜色空间。void cv::cvtColor(InputArray src,OutputArray dst,int code,int dstCn = 0)该函数将输入图像从一种颜色空间转换为另一种颜色空间。 在从RGB颜色空间转换的情况下,应明确指定通道的顺序(RGB或BGR)。 请注
2021-01-10 12:43:02
30
原创 OpenCV 4.x API 详解与C++实例-绘图函数
第四节 绘图函数绘图函数适用于任意深度的矩阵/图像。 可以使用抗锯齿渲染形状的边界(目前仅针对8位图像实现)。 所有函数都包括用于彩色图像的参数color(使用RGB值(可以使用Scalar构造函数构造))和用于灰度图像的亮度。 对于彩色图像,通道顺序通常为蓝色,绿色,红色。 这就是imshow,imread和imwrite的期望。 因此,如果使用Scalar构造函数形成颜色,则其外观应类似于:Scalar(blue_component,green_component,red_component[,al
2021-01-07 00:12:32
28
原创 OpenCV 4.x API 详解与C++实例-图像变换
第三节 图像变换杂项本节主要介绍图像分割相关的一些API函数,比如theshold、watershed等。1、cv::threshold、cv::adaptiveThreshold1)cv::threshold:将固定级别阈值应用于每个数组元素。double cv::threshold(InputArray src,OutputArray dst,double thresh,double maxval,int type)threshold函数将固定级别的阈值应用于多通道数组或图像。经常应用于灰度
2021-01-07 00:08:12
32
原创 OpenCV 4.x API 详解与C++实例-图像几何变换
第二节 图像几何变换本节中的功能执行2D图像的各种几何变换。 它们不更改图像内容,而是使像素网格变形并将该变形的网格映射到目标图像。实际上,避免采样伪像,以从目标到源的相反顺序进行映射。 也就是说,对于目标图像的每个像素(x,y)(x,y)(x,y),函数计算源图像中相应原像素的坐标并复制像素值:dst(x,y)=src(fx(x,y),fy(x,y))\texttt{dst} (x,y)= \texttt{src} (f_x(x,y), f_y(x,y))dst(x,y)=src(fx(x,y),f
2021-01-04 17:09:27
26
原创 OpenCV 4.x API 详解与C++实例-图像滤波
第二节 图像滤波Opencv库的imgproc模块提供了很多经典的图像滤波函数,比如双边滤波、高斯滤波、Box滤波等等,同时也支持自定义滤波。本节中描述的函数和类用于对2D图像(表示为Mat)进行各种线性或非线性滤波操作。 这意味着对于源图像(通常为矩形)中的每个像素位置(x,y),都将考虑其邻域并将其用于计算响应。 对于线性滤波器,它是像素值的加权和。 在形态操作的情况下,它是最小值或最大值,依此类推。 计算出的响应存储在目标图像中相同位置(x,y)处。 这意味着输出图像将具有与输入图像相同的尺寸。
2021-01-04 16:43:03
30
原创 OpenCV 4.x API 详解与C++实例-图像与视频读取与保存
第二节 图像与视频读取与保存在前面,详细描述了OpenCV库的imgcodecs模块的图像读取、保存、编码、解码及highgui模块的基本操作。接下来将详细描述highgui模块对图像、视频的显示操作。1、图像显示cv::imshow:在指定的窗口中显示图像。void cv::imshow (const String & winname,InputArray mat)imshow函数在指定的窗口中显示图像。 如果窗口是使用cv :: WINDOW_AUTOSIZE标志创建的,则图像以其原
2021-01-03 14:32:02
34
OpenCV4.x图像处理实例-社交距离检测Caffe模型
2020-11-17
Pro Processing for Images and Computer Vision with OpenCV
2017-11-07
在VFP中调用MSTTS技术实现英文语音输出的方法
2008-06-19
可视化DOS命令执行
2008-05-25
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net
发表于 2017-11-03 最后回复 2017-11-04
在写VB2005MDI程序是出现了ActiveMdiChild 的参数问题
发表于 2008-05-02 最后回复 2009-06-24
用VB2005写演示从子线程更新主线程数据遇到的问题
发表于 2008-05-02 最后回复 2008-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝