- 博客(48)
- 收藏
- 关注
原创 OpenCV 的 BackgroundSubtractorMOG2 原理
fgMask:输出的前景掩码(cv::Mat,单通道,0=背景,255=前景)varThreshold:方差阈值(默认16),控制灵敏度(越小越敏感)history:历史帧数量(默认500帧),影响背景学习速度。detectShadows:是否检测阴影(默认true):当新的帧中某些区域和背景不同时,判定为"前景"frame:输入的当前帧(cv::Mat)MOG2 算法原理的核心思想:区分":算法会持续学习"静止不动"的部分。
2025-11-04 21:24:31
178
原创 CascadeClassifier(级联分类器)学习与使用
可以加载训练好的分类器(如 Haar / LBP 特征模型),完成快速检测。以人脸检测为例,如果检测到人脸则绘制正方形方框。是 OpenCV 提供的。
2025-11-03 08:24:58
186
原创 设计模式-单列模式
类只有一个实例并提供一个对该实例的全局访问方式需要全局唯一对象资源消耗大,不适合频繁创建如:日志系统、配置管理、数据库连接管理等。
2025-11-02 15:34:44
289
原创 vs2022遇到c2146语法错误: 缺少“;”(在标识符“cout”的前面)
问题:再检查代码无任何语法错误但任然报错,且切换vs code无任何问题。解决方式:右上角菜单栏文件->高级文件保存选项->修改编码如图。
2025-10-28 17:12:21
118
原创 设计模式-策略模式
策略模式是一种行为型设计模式,它定义了一系列算法(策略),并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户端。
2025-09-26 16:22:47
363
原创 cursor使用教程
cursor集合市面上大多数ai模型例如gpt4o,cluade3.7等模型,能够大大提高我们编写程序的效率,并且cursor是基于vs code开发的,能够直接导入自己的vs插件,对于使用vs code的人来说很方面,如果你还使用过vs里的copilot,会发现cursor和vs的类似,上手会更容易些。还是以上面的类举例,该类确实包含了相关用户信息,但还没判断是否符合姓名的规范,身份证和手机号是否合规,并且带一个构造函数自己初始化,我们可以选择相关代码块按下Ctrl+K唤出编辑框,补上我们想要的功能。
2025-07-17 18:11:48
1669
原创 如何在Linux用libevent写一个聊天服务器
如果成功连接后我们可以直接在listener回调函数里创建一个bufferevent缓冲区,并为每个缓冲区设置相应的读回调和事件回调,读回调是专门处理用户给服务器发送的指令,服务器通过指令执行登陆账号,添加好友,删除好友,注销账号,列出好友列表,发送信息的操作。那么如何储存用户数据呢,那自然是创建一个全局变量的Client类的数组的动态指针(在写代码时我一直想需不需要用链表,用链表在处理用户注销时很方便,但在初始化时可能很麻烦,所以我暂时没用链表)演示效果晚点发,要求上课了!废话少说,先看看思路。
2025-04-25 15:07:52
522
原创 Linux网络编程socket服务器端模拟实现
此时打开另一个端口,用nc命令连接服务器,输入hello,会返回HELLO,如图。socket(),创建socket套接字。accept(),阻塞客户端监听连接。listen(),设置监听上限,当程序运行时将在端口堵塞,如图下。server 服务器端主要流程。bind(),绑定ip和端口。用转换大小写字符串为例子。
2025-04-01 16:45:02
246
原创 Qt如何创建多个窗口在不依赖于创建多个qwidget和qmainwindow
首先在Qt designer完成自己第一个窗口的配置,后剪切第一个窗口的所有控件,再放入一个stackwidget控件,调整窗口大小后即可用stackwidget创建多个窗口。
2025-03-30 15:12:01
125
原创 linux系统编程循环创建子线程和读写锁区别
线程2不可能和线程3一起,因为写锁优先级高,而读锁1和3在他前面。读锁可多线程一起访问如读锁1和3,读锁4 5 2。读共享,写独占,写锁优先级更高。
2025-03-30 15:05:56
196
原创 QT小项目-简单的记事本
这次用的配置好了QT环境的vs2022编写,与之前有些不同,比如QT creator里,ui界面是用指针编写,在vs则变为结构体,其次,由于vs是用的MSVC套件,一般作用与windows系统,不考虑跨平台,如需跨平台则用QT creator编写,项目编写与QT creator区别不是很大,注意细节,第一次使用VS编写随便写个简单的项目。
2025-03-11 15:43:09
375
2
原创 qt小项目,简单的音乐播放器
问题:ui界面文件的spacer效果不是我所想的,可能还不太熟练spacer的使用,所以固定了窗口大小。主要所使用的知识:qt文件对话框和qfile的使用,qt媒体的配置和使用,qurl的使用。可改进点:没有添加播放器背景,可在paintevent重载,自行添加想要背景。
2025-03-07 15:19:56
1083
1
原创 文本搜索程序(Qt)
当前问题:如果给的文本例如:abcd efg,只搜索a时abcd会一起标红,或许是设置查找模式出了问题。解决方案:查看是否是查找模式设置出了问题,如不是,则可通过kmp字符串匹配修改查找方案。功能:可查找想要收索的关键字,找到则标红。
2024-11-28 18:10:00
472
原创 Leetcod编程基础0到1-基础实现内容(个人解法)(笔记)
for (i = 0;i++)for (;for (i = 0;i++)for (;
2024-08-13 17:00:30
960
原创 有n个人围成一圈,顺序排号。 从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
我的想法是先创建一个Person类包含自身序号和数字,在借助vector容器从而实现,人数和出局数字都经过宏定义来实现,提高代码移植性。
2024-07-30 18:04:31
263
原创 简单的搜索方式(c++)(stl容器)(初版)
输入面可搜索出相关食物,如输入面,输出面条,面包。假设我们有以下食物在搜索数据库中。1.初始化数据库复杂。
2024-07-14 21:31:46
299
原创 deque容器学习(c++)
vector对于头部的插入和删除效率低,尤其是当数据量过于大时deque对于头部的插入和删除的速度较快vector访问元素的速度会比deque快。
2024-07-04 17:04:08
250
原创 STL容器初学(String,Vector)
vector数据结构与数组非常类似,不同在于vector可以动态扩展(malloc,realloc???
2024-06-09 20:21:40
212
原创 初学STM32-LED流水灯及蜂鸣器的使用
实际上也是使用了固件库,但是不是使用固件库的函数,而是使用了固件库的定义,包括宏定义,结构体定义。和51的开发差不多,但因为32的寄存器太多,实际开发手动配置大量寄存器极其耗费时间,同时在没有注释的情况下可读性差,所以较少使用。HAL库模式:全称是Hardware Abstraction Layer(抽象印象层),相比于标准库更加深入的封装,有句柄、回调函数等概念(ps:有点类似Windows开发),因此相对于标准库模式有更好的可移植性(可在不同芯片的移植),但代价就是更多的性能损失。
2024-05-29 19:50:04
411
原创 int main(int argc,char* argv[])写法使用
使用vim编写c/c++代码时可以用int main(int argc,char* argv[])而非int main()编写,可以方便编写。再编译完后./my_program arg1 arg2 arg3。一般要输出自己的以数组1开始,数组0为程序名称。
2024-05-29 18:49:13
218
原创 如何用wsl2编写一个自动打开程序脚本
因为每次学习都要打开浏览器和vs 2022等一系列程序,很麻烦,所以可以运用wsl2启动后缀.sh的脚本文件。
2024-05-19 14:59:18
584
原创 本周学习总结
简单来说就是把父类的public内容放到子类的public,父类的protected内容放到子类的protected,父类的private内容放到子类private,如以下列子。因为父类和子类都是类,必然也少不了构造和析构函数,但处理顺序有点不同,这是我的一句话总结“先有爸爸后有儿子,白发人送黑发人”如以下列子。如果父类和子类有相同的函数或成员,一般调用是调用子类,如要调用父类加作用域即可。继承方式分为三种,1公共继承,2保护继承,3私有继承,即把父类的属性继承到子类的private里。
2024-05-12 18:04:52
392
原创 学习总结(4_8-4_15)
我们可以按照此图来写定时器程序,以T0定时器为例,图二是控制定时器模式,高四位为T1定时器,低四位为T0定时器,我要启用T0定时器则给前面高四位置1,设置第四位即可,GATE不用设置置0即可,CT为0时为定时器模式,所以CT为0,M1和M2是设置定时器模式,定时器有多个模式,如十六位自动重载,十六位,八位自动重载等,而T0定时器十六位常用,M1 M0 = 01:方式1,是16位定时器/计数器。连续存储:数组中的元素在内存中是连续存储的,也就是说,数组的所有元素在内存中是相邻的。8的点阵屏,相当于有8。
2024-04-18 17:30:31
1722
1
原创 Github的注册学习与使用
打开自己的储存文件夹会发现会有自己的储存库出现,进入储存库文件夹,可随意注册任意文件,以test.txt为例,首先创建test.txt,在此路径打开git bash,输入git add “test.txt”,然后再输入git commit -m “想要的备注”,然后根据此图。最右边为main或master,例如我是main则输入git push origin main即可把自己的文件传入的自己的github的储存库。找到ssh和pgh密钥,添加新的ssh密钥,把密钥复制进去即可,命名可随意。
2024-04-06 23:30:03
1547
2
原创 本周学习总结
138译码器可以控制数码管状态,图中ABC指的是二进制数,C为高位,A为低位,如点亮第三个数码管即LED6,而LED6对应的是Y5,即二进制5,那么得使得CBA二进制为5,即P24 = 1,P23 = 0,P22 = 1,第三个数码管即可点亮,那么如何显示数字呢?dp被称为段码,与前面不同,如果为高电平1才会点亮,结合前面的电路图,可知P0口控制段码,假设要显示数字6,则是b口为0,其余为1,即1011 1110,但给P0口赋值时得低位读写即0111 1101 十六进制为0x7D。共阳时,拉低电平点亮。
2024-04-05 19:01:45
1811
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅