- 博客(148)
- 资源 (1)
- 收藏
- 关注
原创 ESP32S3 Smartconfig配网模式下,使用nvs存储wifi信息,免去重复配网
使用Smartconfig配网,配网信息使用nvs存储,下次设备可使用配网信息直接联网
2024-05-14 10:31:23
795
原创 Linux开机启动程序添加root权限
DebainUbuntu系列Linux开机之后会执行文件中的命令,所以,如果是想添加登陆用户所具有权限的操作,可以在文件中exit 0之前添加开机自动执行的脚本命令。再加入自动执行脚本:在exit 0的上面新起一行,写入。以上情况均适用于脚本中的执行命令都不需要root权限才能执行的操作,但是,如果x.sh脚本中具有只有root权限才能执行的操作时,以上的方式便不能生效。
2023-08-17 13:13:04
1737
原创 NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕
【代码】NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕。
2023-08-13 12:53:30
894
原创 STM32F407 LWIP掉线重连
STM32F407 LWIP掉线重连STM32CUBE配置(简略)网卡配置(注意网卡复位引脚)LWIP配置TCP/IP 连接自动重连的实现Lwip协议栈TCP保活(KeepAlive)设定自动重连流程简介代码实现STM32CUBE配置(简略)请根据硬件自行百度网卡、lwip、freertos配置网卡配置(注意网卡复位引脚)LWIP配置这里使用静态IP地址,注意一定要把LWIP_NETIF_LINK_CALLBACK选上,不然连接状态改变不能进入拔下或者插入网线回调函数,里面做一点自己的事情
2021-03-02 14:54:31
12010
2
原创 MAX6675 带冷端补偿的热电偶测温芯片驱动-基于STM32 HAL库
MAX6675 简介MAX6675 是一款带冷端补偿的热电偶测温芯片,通过3线SPI总线直接输出热电偶测量温度值。引脚如下:与单片机连接关系如下:通信时序与数据格式如下:MAX6675 驱动.c#include "max6675.h"SPI_HandleTypeDef hspi2;/* SPI2 init function */void SPI2_Init(void){ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_
2021-02-04 11:09:29
5236
5
原创 HIH8121(HIH8000系列)温湿度传感器驱动代码-基于STM32 HAL库
HIH8121温湿度传感器代码基于STM32 HAL库HIH8121传感器简介驱动代码.c驱动代码.hmain函数HIH8121传感器简介HIH8121是霍尼韦尔公司生产的测量温湿度参数一体的传感器,测量范围满足湿度:0-100%温度:-40-125℃,湿度测量误差±2%,温度测量误差±0.5℃。四引脚封装,分别是电源、接地、IIC总线的两条数据线,在使用绘制PCB时要尽量避免与发热器件靠近。驱动代码基于STM32 HAL库编写,除微秒延时函数未给出(需要自己实现无法统一给出,根据自身单片机主频大小、是
2021-02-04 10:41:38
1231
1
原创 AWTRIX像素灯DIY制作过程
前言Lametric像素时钟很好看,但是无奈太贵(国外 200 刀,淘宝要卖到 1500-2000 人民币)。但 AWTRIX 2.0 项目,花很少的钱就能自己 DIY 一个 WIFI 像素时钟。下面提供一种DIY方案。AWTRIX实现原理:使用一台电脑或者树莓派作为AWTRIX时钟的服务器用来部署相关服务用来运行APP和数据传输,AWTRIX时钟连接服务器后获取数据进行显示。准备材料ESP8266开发板一块,最好是买官方推荐D1 Mini,其他ESP8266开发版也可以。(核心配件)...
2020-11-27 22:05:24
7886
2
原创 基于STM32F103移植STemWin5.32到0.96寸OLED
概述本教程基于七线接口的使用SPI通信方式的0.96寸OLED单色屏进行移植,不需要考虑彩屏RGB排列顺序、权重、触摸屏等问题,移植的要点就是将官方GUI下的画点API函数和读点API函数用我们自己写的驱动函数进行填充。能够让官方UI实现在我们的屏幕上画点,就基本移植成功了。因为能画点就能画一切,移植难度很低。但是例如刷屏、画多边形等情景如果用刷点方式一点点去刷,速率会很低下,能做优化尽量优化...
2020-04-01 15:27:43
3056
5
原创 opencv DNN模块之人脸识别基于Torch openface
DNN 人脸识别使用facenet模型基于Torch,对每张图片进行多层卷积处理,计算出128个向量使用样本空间中的每张图的128个向量与采样的128个向量进行余弦相似度比较,0度为1,表示方向相同,90度为0,表示垂直正交。值越小,相似度越高,通过label存储的名字信息,可以把人检索出来,但是应该设置一定的阈值,否则会出现误检测代码实现过程模型加载人脸检测与识别模型特征向量输出...
2020-02-11 21:55:38
2360
3
原创 opencv DNN模块之人脸检测
DNN人脸检测在3.x版本人连检测,常用haar级联器检测,受光照、人脸位置影响比较大,识别率也不理想,DNN模块给出专用人脸模型,跟踪效果很好,抗干扰能力很强。在4版本之后DNN检测以后将会成为主流。opencv提供的模型基于SSD网络模型caffe训练生成的人脸检测模型基于SSD网络模型tensflow训练生成的人脸检测模型opencv模型量化版本16FP/uint8res...
2020-02-10 20:45:47
2806
2
原创 opencv DNN模块之使用SSD(caffe)实现视频对象检测
使用SSD(caffe)实现对视频中对象的检测###代码在访问速率优化上,采用指针形式#include <opencv2/opencv.hpp>#include <opencv2/dnn.hpp>#include <iostream>using namespace std;using namespace cv;using namespace c...
2020-02-10 20:06:15
720
1
原创 opencv DNN模块之YOLO(Darknet)对象检测
原理自行百度,本人不擅长YOLO 来自darknet对象检测框架基于COCO数据集,能检测80个类别YOLO V3版本https://pireddie.com/darknet/yolo每种网络模型对应的输入数据可以查看每种模型的模型二进制文件名称,网络描述文件名称,中至化处理参数,数据样本尺寸,描述label文件名称,rgb通道顺序以及典型应用场景等信息链接地址:https:...
2020-02-10 19:20:33
2300
原创 opencv DNN模块之Faster RCNN(Tensflow)检测物体
上一节写的是使用caffe的SSD模型来识别物体,能检测20种,本节使用tensflow的faster rcnn模型基于COCO数据集能检测80个类别,代码很相似原理本人不太懂,自行百度每种网络模型对应的输入数据可以查看每种模型的模型二进制文件名称,网络描述文件名称,中至化处理参数,数据样本尺寸,描述label文件名称,rgb通道顺序以及典型应用场景等信息链接地址:https://...
2020-02-10 17:51:19
1078
1
原创 opencv DNN模块之使用SSD(caffe)模型实现对象检测
上一节介绍了使用googlenet caffe模型实现对象分类,只能告诉图片中有什么,不能确定其位置,这一节使用Mobilenet SSD模型实现对象的检测,基于Pascal VOC数据集训练,能识别20个类别(刨除背景层)原理自行百度,本人不擅长每种网络模型对应的输入数据可以查看每种模型的模型二进制文件名称,网络描述文件名称,缩放尺度,中心化处理参数,数据样本尺寸,描述label文...
2020-02-10 10:34:57
986
原创 opencv DNN模块之使用GoogleNet Caffe模型实现图像分类
原理自行百度,本人不擅长相关函数api创建并载入神经网络Net函数apiNet cv::dnn::readNetFromCaffe ( const String &prototxt, const String &caffeModel = String()) 参数说明prototxt: prototxt文件的pr...
2020-02-09 14:11:46
839
原创 opencv视频运动对象计数
案例需求统计视频中行人个数实现方法采用BSM算法提取运动物体前景,通过形态学方法处理降噪,采用轮廓过滤基数代码#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;int main(...
2020-02-08 17:17:03
2231
2
原创 opencv视频分析与对象追踪之CAMSHIFT对象跟踪
原理CamShift算法,全称是 Continuously AdaptiveMeanShift,顾名思义,它是对Mean Shift 算法的改进,能够自动调节搜索窗口大小来适应目标的大小,可以跟踪视频中尺寸变化的目标。它也是一种半自动跟踪算法,需要手动标定跟踪目标。基本思想是以视频图像中运动物体的颜色信息作为特征,对输入图像的每一帧分别作 Mean-Shift 运算,并将上一帧的目标中心和搜索窗...
2020-02-08 16:33:01
805
原创 opencv视频分析与对象追踪之基于光流(稀疏光流、密集光流)
光流跟踪光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的相应关系。从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是因为场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。研究光流场的目的就是为了从图片序列中近似得到不能直接得...
2020-02-07 22:50:11
2244
1
原创 opencv视频分析与对象追踪之基于颜色
适用场景根据画面中对象的颜色进行识别追踪,此种方法有一定局限性,首先目标颜色一定要与其他背景有着非常明显的区分,光照条件不经常变化不会导致对象颜色的突变。处理思路利用颜色范围过滤标注与测量操作步骤inRange过滤形态学操作提取轮廓查找外接矩形获取位置标定代码#include <opencv2/opencv.hpp>#include <i...
2020-02-07 15:26:46
396
原创 opencv视频分析与对象追踪之背景消除建模(BSM)适用于静态背景动态前景
原理介绍一些使用场景实际场景:电梯间检测人,电梯间没人的时候摄像头看到的都是轿箱图片,由于电梯内部光源比较恒定,平时变化部分不大属于背景,当有人进来的时候,当前帧与背景差值,就是新物体,可以做到人体检测。还可以用到其它的背景画面常态性不变的监控场景。基本原理图Background Subtraction基本原理BS算法图像分割(GMM-高斯混合模型)机器学习(KNN-K个...
2020-02-07 10:53:51
592
原创 opencv实战案例之视频绿幕背景替换
视频绿幕替换将视频中绿幕背景替换为其它图片,新闻报道中常用处理方法GMM或者KMeans方法太慢,视频容易卡顿基于色彩处理方法RGB到HSV色彩空间,颜色过滤获取掩膜,速度快HSV空间各种颜色分布范围代码#include <opencv2/opencv.hpp>#include <iostream>#include <math....
2020-02-06 19:09:16
3606
原创 opencv实战案例之照片背景替换
案例需求替换证件照片的背景颜色用到的知识K-Means背景融合-高斯模糊遮罩层生成处理流程数据组装,准备样本数据KMeans分割背景去除遮罩生成遮罩模糊通道混合输出–代码演示#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>usin...
2020-02-06 16:21:23
1401
原创 opencv图像分割之Grabcut
Grabcut原理部分请大家自行百度学习,本人不擅长。基于交互式界面由用户选择前景区域;定义一个单通道的输出掩码,0为背景,1为前景,2为可能的背景,3为可能的前景;grabCut抠图;将输出结果与可能的前景作比较得到可能的前景;定义三通道的结果图像;从原图中拷贝可能的前景到结果图像;相关api函数apigrabCut( InputArray img, ...
2020-02-06 14:25:41
556
1
原创 opencv图像分割之分水岭分割
分水岭分割watershed图像自动分割的实现步骤:图像灰度化、滤波、Canny边缘检测查找轮廓,并且把轮廓信息按照不同的编号绘制到watershed的第二个入参merkers上,相当于标记注水点。watershed分水岭运算(实质是将markers的轮廓线的信息,转化为按轮廓区分的块状信息)绘制分割出来的区域,视觉控还可以使用随机颜色填充,或者跟原始图像融合以下,以得到更好的显示效果...
2020-02-06 13:44:44
947
原创 opencv图像分割之GMM(高斯混合模型)方法
GMM简介不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注。相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计。也能得到每个样本对应的标注值,类似于kmeans聚类(输入样本数据,输出样本数据的标注)。实际上,高斯混和模型GMM和kmeans都是EM算法的应用理部分请自行百度学习,本人不擅长相关函数api函数api bool tra...
2020-02-05 20:12:18
3000
原创 opencv图像分割之Kmeans方法(实现聚落与图片分割)
Kmeans方法概述无监督学习方法分类问题,输入分类数目,初始化中心位置硬分类方法,以距离度量迭代分类为聚类KMeans 原理介绍“聚对于"监督学习"(supervisedlea rning),其训练样本是带有标记信息的,并且监督学习的目的是:对带有标记的数据集进行模型学习,从而便于对新的样本进行分类。而在“无监督学习”(unsupervised learning)中,训练样本的...
2020-02-05 12:19:06
1413
原创 opencv之HAAR与LBP级联分类器,实现人脸识别人眼追踪
haar、LBP检测器原理本人不擅长,请自行百度级联器相关介绍Viola和Jones在2001在CVPR提出一种实时对象(人脸)检测框架训练速度非常慢,检测速度非常快5000个正向人脸样本与3000万个非人脸负样本数据级联分类器原理-AdaBoost弱分类器-Weak classifier = Feature强分类器-多个弱分类器的线性组合级联分类器-多个强分类器的组...
2020-02-04 16:37:29
1867
1
原创 opencv案例之统计图像周长、面积
案例背景照片是来自太空望远镜的星云图像,科学家想知道它的面积和周长方法步骤图像二值化形态学操作轮廓查找计算参数代码#include <opencv2/opencv.hpp>#include <opencv2/xfeatures2d.hpp>#include <iostream>#include <math.h>usi...
2020-02-03 17:16:42
1510
2
原创 opencv案例之图片透视矫正
案例背景拍摄或者扫描图像不是规则的矩形,会对后期处理产生不好的影响,需要通过透视变换矫正得到正确的形状方法二值化形态学操作,去噪点进行轮廓查找, 通过 矩形的长款过滤较小和图片的大边框霍夫直线变换,查找直线过滤直线,通过直线位置和长度确定上下左右四条直线求出四条直线得到四条直线的交点,这就是物体原始四个角点把原始的四个角点,变换到图片的四个角落,透视变换会把相对位置的像素通...
2020-02-03 16:29:28
1927
1
原创 opencv案例之对象计数(自适应阈值介绍)
案例需求背景农业领域经常需要计算对象个数或者在其他领域拍照自动计数,可以提高效率,降低成本解决思路二值分割形态学处理距离变换连通区域计算相应api自适应阈值处理在阈值处理操作中,仅通过设定固定阈值很难达到理想分割效果,我们需要从二值化的图像中分离目标区域和背景区域。实际上,目标和背景通常相互依存,我们可以从图像像素领域块的分布特征来自适应确定区域的二值化阈值。OpenC...
2020-02-03 12:53:42
841
1
STM32基于RT-thread3.1.3移植STemWin工程代码
2021-01-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人