- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 医学图像分割半监督学习记录
半监督学习中,一部分数据带标签,一部分不带标签,在模型训练过程中,带标签的数据我们注重分类,无标签的数据我们注重分布。半监督坚持一致性正则(consistency regularization)来进行半监督学习(semi-supervised learning)。一致性正则要求一个模型对相似的输入有相似的输出,即给输入数据注入噪声,模型的输出应该不变,模型是鲁棒的。
2025-01-14 20:10:27
466
原创 QT样式学习-侧边栏隐藏和滑出
最简单的方法,直接按钮实现侧边栏sideWidget的隐藏和出现,但显示和隐藏很突兀不够平滑,于是使用QT的动画框架实现线性滑出和隐藏。
2024-12-24 11:38:01
974
原创 QT-多线程、线程池的使用
在进行桌面应用程序开发的时候, 假设应用程序在某些情况下需要处理比较复杂的逻辑,如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验,还可以提升程序的执行效率。
2024-10-06 16:57:35
1503
原创 Qt系统学习篇(6)-QMainWindow
QMainWindow是一个为用户提供主窗口程序的类,包含(status bar)及(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。1.1最多有一个1.2可以有多个1.3最多一个1.4- 浮动窗口 可以多个1.5只能一个。
2024-10-04 11:01:35
1041
原创 QT系统学习篇(5)-信号与槽
signals://自定义信号,写到signals下//返回值void,需要声明,不用实现//可以有参数,可以重载//早期Qt版本,必须写到public slots下,高级版本可以写到public或者全局下//返回值void,需要声明,需要实现//可以有参数,可以重载。
2024-10-03 16:15:50
534
原创 QT系统学习篇(4)-对象树、定义自己的按钮
class myPushButton : public QPushButton //修改继承的父类为QPushButtonQ_OBJECTpublic:signals:myPushButton::myPushButton(QWidget *parent) : QPushButton(parent) //交给父类构造qDebug()<<"我的按钮构造";qDebug()<<"我的按钮析构";
2024-10-03 10:26:59
701
原创 QT系统学习篇(3)- Qt开发常用算法及控件原理
1、a.exec(): 进入事件循环,相当于把程序运行交给Qt处理,进入程序的循环状态。其中return的a.exec();和return的0;2、return 0: 程序就直接退出,不能达到显示的效果。直接return 0,其w中的创建资源有没有被回收?Qt框架中和模块提供一些算法和常用函数。理解Qt窗口的生成、属性。
2024-10-02 09:41:58
517
原创 QT系统学习篇(2)- Qt跨平台GUI原理机制
由exec执行的事件循环监听整个应用程序中所有控件的事件,当某个控件产生相关事件之后,QApplication 对象就会执行 notify 函数,向此控件发送通知,收到事件通知的控件通过 过滤 以及 分发函数,到达事件处理函数,整个过程为响应函数。:基于主窗口类的应用程序,一般主要用于比较复杂的程序,除中央客户界面,还可以包括菜单栏、状态状、工具栏及多个停靠的工具对话框等等。mian()主函数中,定义主窗口,再到创建主窗口,再创建主窗口中各种元素,然后显示主窗口,最后进入消息循环。
2024-10-01 16:57:54
1318
原创 QT系统学习篇(1)
QT是一个跨平台的C++图形用户界面库,目前包括Qt Creator、Qt Designer等等快速开发工具。支持所有Linux/Unix系统,还支持windows平台。Qt很容易扩展,并且允许真正的组件编程。优秀的跨平台特性(通过Qmake工具)面向对象(Qt的非常好的封装机制,模块化程度高,重用性好)丰富的APIXML支持/大量的开发文档。
2024-10-01 14:43:09
547
原创 雷达原理-绪论-西电魏青
Radar 雷达:radio detection and ranging 无线电探测和测距无线电:电磁波信号探测:通过电磁波信号的一个回波特性实现物体探测测距:利用回波信号(现在技术发展,不单单是测距,还能是物体的各种属性)发射天线发射电磁波,上空的飞机有各种电磁波信号的散射,其中回来的散射就是反射信号,解析这个反射的信号即雷达信号,就可以获得飞机的方向(角度信息)、速度信息、形状信息、距离信息。这样有发射天线、发射机、接收天线、接收机的一个装置就是一个简单的雷达。
2024-09-25 14:35:09
697
原创 Shell入门
在Linux中,所有进程的都默认有3各文件描述符,0 标准输入 1标准输出 2标准错误输出。将原有终端中输入和输出的地方定向到其他的地方。
2024-09-10 21:53:21
305
原创 C++类继承
派生类和基类内存模型相同,在创建派生类对象后,在虚函数列表中,会用派生类成员函数取代基类成员函数的地址。关键字,把它声明为虚函数,基类指针就可以调用派生类中同名的成员函数,通过派生类中同名的成员函数,就可以访问派生对象的成员变量。2)当需要创建多个类时,如果它们拥有很多相似的成员变量或成员函数,可以将这些类共同的成员提取出来,定义为基类,然后从基类继承。创建派生类时,申请一块基类+派生类的内存空间,先调用基类的构造函数初始化基类的成员,再调用派生类的构造函数初始化派生类的成员。如果在基类的成员函数前加。
2024-09-06 09:03:07
1007
原创 C++基础回顾
如果重载函数有默认参数,调用函数时,可能导致匹配失败(本来有3个参数,第3个参数有个默认值,现在调用是只传入了两个参数,两个函数都能匹配,调用不明确)2)当需要创建多个类时,如果它们拥有很多相似的成员变量或成员函数,可以将这些类共同的成员提取出来,定义为基类,然后从基类继承。引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器形参类型的本身和类型引用视为同一特征。)引用的本质是指针,传递的是变量的地址,在函数中,引用时已定义的变量的别名,作用是用作函数的形参和返回值。
2024-09-01 09:38:33
966
原创 线程同步学习
线程同步不是一起、相同,而是协调、协同的意思。1)按预定的先后次序进行运行,如:您说完,我再说;线程A生成数据后交给线程B处理;2)公共资源同一时刻只能被一个线程使用;共享数据在同一时刻只能被一个线程修改,以保证数据的完整性。线程安全的3大特性1、原子性原子性是指操作是不可分的。其表现在于对于共享变量的某些操作,应该是不可分的,必须连续完成。2、可见性可见性是指一个线程对共享变量的修改,另外一个线程能够立刻看到;基于互斥锁、条件变量、信号量、自旋锁、读写锁。
2024-08-27 11:54:02
822
原创 多进程比多线程开销大的原因
综上所述,多进程比多线程开销大的原因主要包括资源分配与回收的复杂性、上下文切换的开销、进程间通信的复杂性。然而,需要注意的是,在某些情况下(如需要高隔离性、高稳定性或利用多核CPU并行计算时),多进程可能是更好的选择。因此,在选择使用多进程还是多线程时,需要根据具体的应用场景和需求来权衡利弊。
2024-08-26 19:47:21
503
原创 Linux TCP多线程服务器
假设两个核心1,2,4个任务a,b,c,d,ab分配给了核心1,cd分配给了核心2,此时ab就是并发,cd也是并发,a与c就可以并行,b与d也可以并行。假如进程是一个文档编辑器,存放着相应的程序和文档,现在用户用键盘敲下回车,交互的程序接收键盘的按下事件,布局的程序将文字重新排布渲染出来,另外每隔一段时间,写入的程序保存文档到硬盘中,所以这三个程序最好能并行执行,但他们又需要访问修改同一个文档,所以肯定是在同一个进程中,所以现在需要更轻量级的3个线程,交互线程, 渲染线程,保存线程。
2024-08-25 16:56:19
1266
原创 堆栈的初步理解
那么什么时候可以回收呢,显然只有使用这块内存的程序员自己知道,也就是说 如果程序员不去释放内存,那么在任何函数中,都可以使用这块内存或者这个变量,这些变量占据的内存就是堆区。当变量出现在函数后就会出现一个问题,那就是变量的使用范围或者生命周期仅仅是函数内部还是超越函数,如果一个变量仅仅在函数内部,那么当函数结束后,这个变量占据的内存就可以进行销毁了,这就是局部变量。栈区的内存管理无需程序员关心,实际上栈区是非常好管理的,栈区的内存申请和释放是非常有规律的,先来的后释放,遵循栈的顺序。栈区和堆区大小一样吗。
2024-08-25 10:47:20
411
原创 Linux系统编程全面学习
一种可执行的二进制文件,编译好的代码。使用库可以提高开发效率Linux库分为静态库和动态库静态库:静态库在程序编译的时候会被链接到目标代码里面。所以我们的程序运行就不再需要该静态库了。因此编译出来的体积就比较大,静态库以lib开头.a结尾(10个程序都需要某个静态库,编译的时候就需要链接10次,不太方便)动态库: 动态库(也叫共享库)在程序编译的时候不会被链接到目标代码里面,所以我们的程序运行就需要该动态库。因此编译出来的体积就比较小。静态库以lib开头.so。
2024-08-22 19:58:10
1507
原创 QT事件机制理解
在操作系统中,用户操控硬件时的中断由操作系统所监控,比如,当用户点击了一下鼠标时,此时鼠标就产生了一个中断,操作系统监控到这个中断,向CPU发出响应的请求(即一种信号),CPU按照自己的时间片对这个响应请求进行响应并进入相应的函数对这个鼠标点击事件进行处理的过程,叫做响应。只能说信号槽的信号产生是由事件产生的。事件机制是CPU调度完成的,信号与槽机制是自动触发的,只要触发了信号,直接槽函数处理,不会等CPU。事件是信号槽中信号产生的基础,而不是信号槽,信号槽解决的是两个不相关的控件中的通信问题。
2024-08-20 12:45:09
505
原创 QT多线程和自定义信号
信息流转流程:线程里收到数据后,通过emit发出信号,同时信号中携带数据变量Buf,发出的信号导致执行槽函数,槽函数接收信号中的变量并处理myThread.hQ_OBJECT//加上这个宏才能使用信号和槽public://构造函数void run();//重写run,线程处理函数private:signals://声明信号socket=s;//ui界面只能在ui类里操作//发出信号在widget.cpp里连接信号和槽函数同时在widget.h声明槽函数。
2024-08-20 11:28:59
507
原创 MySQL快速使用
关系型数据库(RDBMS):建立在关系模型基础上,由多张相互连接的二维表组成的数据库特点:使用表存储数据,格式统一方便维护;使用SQL语言操作,标准统一使用方便。
2024-08-18 12:42:23
487
原创 QT学习从零开始,开发一个串口调试助手
c语言就是面向过程的,C++就是面向对象的。举例: a+b:直接计算a+b就是面向过程。面向对象就是给a+b穿上了一层衣服。不是直接计算a+b。封装了再计算a+b,更加方便使用public:char age;对象是类的实例化。通过类定义的变量就是对象student my;删除堆定义的对象delete my;//目的是释放堆里面的内存。
2024-08-11 13:10:37
1380
原创 ARM架构了解
现在说ARM,指一家半导体行业技术领先的公司,主要业务是设计RISC处理器(设计RISC处理器架构的公司);也指一类微处理器芯片或产品的统称,即采用ARM公司提供方案开发的处理器,像高通的处理器、华为的处理器,都叫ARM处理器。
2024-08-06 15:16:15
812
原创 Linux常用命令学习
kernel是核心,管理操作系统的硬件资源,包括内存、cpu、硬盘,运行在核心态,就是说运行在这个状态,CPU想干什么就干什么。apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。:普通用户的家目录,每创建一个新用户,就会在home目录下创建一个家目录。重定向就是把输入输出定义在一个文件,不显示在终端,而是输出到一个文件中。Linxu是一个多用户系统,不同的用户访问不同的文件,有不同的权限。:系统会识别一些设备,然后挂载在这个目录里,比如U盘、光驱。
2024-08-03 17:49:21
1471
原创 OLED、LCD
0.96寸OLED显示屏(驱动芯片:SSD1306/ SSD1315)1.3寸OLED显示屏(驱动芯片:SH1106)4Pin I2C接口7Pin SPI接口128*64像素像素颜色不限(有全白、蓝、第一行黄其他蓝)OLED一般由一个屏幕和一个PCB底板组成,驱动芯片(一个长条的东西)就在屏幕上。点阵屏,需要不断进行扫描刷新,但这里128*64的点阵屏,用单片机直接驱动显然无法完成,这里近乎200个引脚。因此需要一个单独负责扫描驱动的芯片,他的 任务就是扫描刷新,让屏幕不断显示内容。
2024-07-30 16:18:13
654
原创 TCP/UDP通信
TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。:传输层引入的概念,有了mac+ip地址,可以确定具体网络下的某一设备,但需要确定交换的数据交给哪个程序应用(进程)处理,是QQ还是微信,于是就需要端口号。:在网络层引入的地址,用于区分不同计算机是否属于同一子网络下。:物理层里网卡的地址,设备的唯一标识,不可变。建立了主机到主机的通信,
2024-07-29 18:57:13
519
原创 Wi-Fi、WLAN、Bluetooth、zigbee、蜂窝网络、4g5g、MQTT
为什么打开手机的WiFi连接,显示的是WLAN?分清Wi-Fi、WLAN、Bluetooth、zigbee、蜂窝网络、4g5g、MQTT这些概念.
2024-07-29 11:44:11
1292
原创 STM32-FreeRTOS快速学习
FreeRTOS 满足实施系统对任务响应时间的要求。实时操作系统、轻量级(内核小,只需要几KB的ROM和RAM)、提供了一些内核功能,如任务管理、时间管理、内存管理和通信机制等。
2024-07-24 22:00:47
1501
1
原创 STM32+ESP8266(ESP32)+MQTT+阿里云物联网平台
设置发布主题后,客户端发送数据,阿里云平台收到数据,温度表和湿度表显示,点击开关,客户端mqtt.fx收到数据。在直接使用单片机与阿里云通信前,先利用mqtt.fx工具模拟客户端确认阿里云这边配置无问题。利用sscom串口工具,测试esp8266通过at指令发布订阅消息。在产品上添加物模型,然后设备是继承自产品的,因此也具有物模型。产品-设备-编辑物模型-设备端开发-查看上报数据。添加产品、添加设备、产品上添加物模型。绘制图形化界面,添加数据来源。可以看到设备状态变化。
2024-07-05 17:45:39
2148
2
原创 STM32和DHT11使用显示温湿度度(代码理解)+单总线协议
基于STM32CT,利用DHT11采集温湿度数据,在OLED上显示。一定要阅读DHT11数据手册。
2024-07-05 17:44:58
1966
1
原创 【STM32HAL库学习】定时器功能、时钟以及各种模式理解
记录自己从学习了定时器理论->代码实现使用定时->查询数据手册,加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。
2024-06-05 19:57:39
2590
原创 【STM32】影子寄存器简单理解
比如STM32参考手册里叙述可以在定时器计数的时候操作自动装载寄存器ARR,那么问题来了,在用户写了ARR时,此时定时器当前计数值与哪个定时值比较,会不会由于写的值小于当前计数值立即溢出?这就是影子寄存器的作用,写了ARR后,当前的计数值是和影子寄存器里的值比较的,当产生了更新事件或者手动情况下,自动装载值立即被送往影子寄存器。影子寄存器是个实际存在的寄存器,主要起一个缓存作用。
2024-05-30 17:52:13
1165
原创 【STM32HAL库学习】定时器-HAL_TIM_Base_Start_IT和 HAL_TIM_Base_Start 区别
两者的区别在于是否开启中断,以及是否适用于周期性任务
2024-05-30 15:41:53
3122
原创 Java反射学习记录
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。
2023-09-16 16:45:14
146
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人