- 博客(122)
- 收藏
- 关注
原创 QT:控件属性及常用控件(4)-----多元素控件、容器类控件、布局管理器
使⽤QTreeWidget 表⽰⼀个树形控件.⾥⾯的每个元素,都是⼀个QTreeWidgetItem ,每个QTreeWidgetItem 可以包含多个⽂本和图标,每个⽂本/图标为⼀个列.可以给QTreeWidget 设置顶层节点(顶层节点可以有多个),然后再给顶层节点添加⼦节点,从⽽构成树形结构.这种设定⽅式其实并不⽅便.尤其是界⾯如果内容⽐较多,不好计算.⽽且⼀个窗⼝⼤⼩往往是可以调整的,按照绝对定位的⽅式,也⽆法⾃适应窗⼝⼤⼩.因此Qt引⼊"布局管理器"(Layout)机制,来解决上述问题.
2025-01-25 17:39:50
1324
原创 QT:控件属性及常用控件(3)-----输入类控件(正则表达式)
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2025-01-22 17:41:58
1404
原创 QT:控件属性及常用控件(2)-----按钮类控件及显示类控件
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2025-01-05 11:59:08
836
原创 动态SLAM论文写作(数据怎么处理,图怎么画,怎样呈现在论文中)
也是终于到可以水论文的一步了这篇就来说说SLAM文章写论文的表格、作图需要用到啥东西。
2024-10-10 15:43:11
1518
6
原创 QT:详解信号和槽
所谓的自定义一个槽函数,操作过程和自定义一个普通的成员函数没啥区别。但是这样有一个问题,我们发现自动生成的代码中没有connect函数如果我们通过图形化界面创建控件,还是推荐第二种这种方式快速连接信号槽。如果我们是通过代码的方式来创建控件,还是得手动connect!自定义信号比较少见,实际开发中很少会需要自定义信号。QT内置的信号,已经基本覆盖到了所有可能的用户操作。所谓的QT“信号”本质上也就是一个函数。QT5及更高版本中,槽函数和普通的成员函数之间就已经没啥区别了!但是,
2024-08-31 16:57:42
1379
原创 intel RealSense D435i自制数据集跑SLAM
此步骤的目的在于将录制好的数据集转换为 BundleFusion 所要求的离线输入格式,即 .sens 格式。BundleFusion 提供了将源格式封装成 .sens 格式的实现,因此只需将录制好的数据集存储为源格式即可。新建文件夹SLAM_Picture(此名称随意),在此文件夹下新建文件夹rgb和depth保存提取出来的深度图和彩色图,同时新建文件rgb.txt和depth.txt为对齐时间戳做准备。此时我们的rgb文件夹,depth文件夹,rgb.txt,depth.txt里面都写入了东西。
2024-08-27 18:35:23
1654
3
原创 动态SLAM:如何判断一个特征是动态特征(对极几何)
由图可知,C1,C2,X(X1,X2)组成了一个三角平面,这个三角所在的平面就是极面在这个极平面中,和成像平面相交的线是极线,即图中①位置蓝色点所在直线C1和C2即两个相机的光心位置,两个光心C1,C2和成像平面相交的点是极点,即蓝色点(X1)位置。
2024-07-30 13:01:20
732
原创 C++:特殊类的设计、类型转化、IO流
使用cin进行标准输入即数据通过键盘输入到程序中,同时C++标准库还提供了cerr用来进行标准错误的输出,以及clog进行日志的输出,从上图可以看出,cout、cerr、clog是ostream类的三个不同的对象,因此这三个对象现在基本没有区别,只是应用场景不同。如果单例对象构造十分耗时或者占用很多资源,比如加载插件啊, 初始化网络连接啊,读取文件啊等等,而有可能该对象程序运行时不会用到,那么也要在程序一开始就进行初始化,就会导致程序启动时非常的缓慢。如果需要用cin,cout可用如下代码增加效率。
2024-07-29 15:21:11
595
原创 C++线程操作、异常、智能指针
它通过引用计数来管理资源的生命周期,引用计数的增加和减少是线程安全的,但资源本身的访问不是线程安全的。实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。3.C++中异常经常会导致资源泄漏的问题,比如在new和delete中抛出了异常,导致内存泄漏,在lock和unlock之间抛出了异常导致死锁,C++经常使用RAII来解决以上问题。
2024-07-20 10:42:15
1163
1
原创 Linux:网络编程基础
协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的。其实在网络角度,OSI 定的协议 7 层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是 5 层协议。• 0 - 1023: 知名端口号, HTTP, FTP, SSH 等这些广为使用的应用层协议, 他们的端口号都是固定的.•局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标mac 地址判。PID和端口号是共生的,但是端口号才能做到网络通信!
2024-07-17 14:43:25
808
原创 Linux:多线程
生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。虽然上面加锁解决了会将票数抢到负数的问题,但是,我们发现一旦某个线程开始抢票,那么这个线程就会一直抢,从而导致别的线程不能抢票。tid是给用户提供线程的id,不是内核中的lwp,而是自己维护的一个唯一值,tid是一个地址(线程控制块的地址)!只适用不同的方法完成同样的目标罢了!
2024-07-13 13:48:35
1098
原创 复现ORB3-YOLO8项目记录
Thirdparty/fastdeploy-linux-x64-1.0.3/lib/libfastdeploy.so”,由“…这个项目的博主没有说应该用哪个版本的fastdeploy-linux-x64-1.0.3,我就先下载了fastdeploy-linux-x64-1.0.3版本,但是编译不过去。[CMakeFiles/Makefile2:126:CMakeFiles/ORB_SLAM3.dir/all] 错误 2 make: ***/Examples/RGB-D/rgbd_tum] 错误。
2024-07-12 15:58:11
1956
8
原创 MySQL:视图、用户管理、C/C++/图形化界面链接访问数据库、网页逻辑
接口函数使用文档:首先进入mysql官网:https://dev.mysql.com这样也行,因为我们设置的就是本地环回int main()//要使用库,必须先进行初始化!return 1;//初始化完毕之后,必须先链接数据库,在进行后续操作return 2;//关闭mysql链接mysql_closereturn 0;停止mysql,或者登录信息不对,都会造成链接mysql失败。链接mysql的信息在哪里查看,之前的博客都已经说过这里不再赘述!
2024-07-07 15:49:01
753
1
原创 复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录
所遇到的问题是因为read_file_list()函数需要两个参数,而你在调用时只传递了一个参数。1.按照要求下载数据集,我下载的是rgbd_dataset_freiburg3_walking_xyz,将其解压到你喜欢的目录.我个人放在了evalution下。当然我看到有人说只需要把COMPILEDWITHC11改为COMPILEDWITHC14就可以了,这个我没有尝试,我只用了上面的方法,大家可以自己尝试。这个时2.3.1版本的,我们只需要将上面的数字换掉,然后直接浏览器粘贴就可以下对对应的版本!
2024-07-06 18:26:44
2694
15
原创 MySQL:事务
事务就是由一条或者多条SQL共同组成的一个集合体,这个集合体需要共同完成某个任务,这就是事务!!!**假设一种场景:**你毕业了, 学校的教务系统后台 MySQL 中,不在需要你的数据,要删除你的所有信息(一般不会:) ), 那么要删除你的基本信息(姓名,电话,籍贯等)的同时,也删除和你有关的其他信息,比如:你的各科成绩,你在校表 现,甚至你在论坛发过的文章等。这样,就需要多条MySQL 语句构成,那么所有这些操作合起来,就构 成了一个事务。
2024-07-04 16:15:22
1090
原创 MySQL:表的内连接和外连接、索引
索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。它有着更高的IO场景,所以,为了提高基本的IO效率, MySQL 进行IO的基本单位是 16KB。如上面的5条记录,如果MySQL要查找id=2的记录,第一次加载id=1,第二次加载id=2,一次一条记录,那。用多少,加载多少不香吗?
2024-07-01 12:07:13
1211
原创 保姆教程教你如何使用数据集运行ORB-SLAM3
链接:这篇文章是详细教怎么运行ORB-SLAM2的,那么下来我们就看看怎么运行ORB-SLAM3理论上ORB-SLAM2的环境也是可以跑ORB-SLAM3的,因为我之前试过,编译成功了,由于某些原因,我把虚拟机给删了。所以只能从头再来!还有就是远程连接虚拟机在windows上下载传到ubuntu上,我给大家推荐WinSCP这个软件,比我前面用的Xshell,Xftp好用多了!远程链接如果连接不上,大家自行网上搜索解决方案!
2024-06-29 17:12:21
3319
8
原创 MySQL:内置函数、复合查询
在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。自连接是指在同一张表连接查询。
2024-06-26 15:55:58
578
原创 C++11(1)
arg_list中的参数可能包含形如_n的名字,其中n是一个整数,这些参数是“占位符”,表示newCallable的参数,它们占据了传递给newCallable的参数的“位置”。①左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址+可以对它赋值,左值可以出现赋值符号的左边,右值不能出现在赋值符号左边。①右值也是一个表示数据的表达式,如:字面常量、表达式返回值,函数返回值(这个不能是左值引用返回)等等,右值可以出现在赋值符号的右边,但是不能出现出现在赋值符号的左边,右值不能 取地址。
2024-06-19 15:29:09
834
原创 MySQL:表的约束
表的约束:表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术手段,倒逼程序员,插入正确的数据!
2024-05-26 13:25:48
850
原创 MySQL库/表/数据的操作
当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。①引擎是 MyISAM,数据目中有三个不同的文件,分别是。
2024-05-25 11:16:28
941
原创 哈希表/哈希桶
①插入:根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放。②搜索:对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。该方式即为哈希(散列)方法,哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(Hash Table)(或者称散列表)该方式就和计数排序非常相似。
2024-05-24 16:40:02
368
原创 linux:信号深入理解
所谓同步和异步就是:比如我正在上课,我让一个学生去帮我拿快递,然后我停下等那个学生回来再继续讲,即同步。如果学生去拿快递,我不管他,我接着讲就是异步!信号的处理大致分为三种:a.默认动作b.忽略动作c.自定义处理—信号的捕捉core,temp都是终止,在本篇文章的后面会有更详细的介绍!信号产生的三种主要方式和两种不常用接口:如果把所有信号都捕捉,换成自定义动作那么怎么办?答:操作系统有些信号是不允许自定义捕捉的,比如9号信号killed。如果所有信号都能被捕捉那不乱套了!!!而且信号的发
2024-05-18 16:55:22
996
1
原创 MySQL数据库基础
⑤SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。在修改配置文件之后,重启数据库,然后要把我们原来创建的helloworld删除了,不能再原来的数据库里面直接写入中文,否则会报错!④PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
2024-05-18 12:20:44
727
原创 Linux(Ubuntu)下MySQL5.7的安装
修改位于/etc/mysql/mysql.conf.d/mysqld.cnf 的配置文件,将bind-address=127.0.0.1修改成0.0.0.0,并添加 port = 开放的具体端口号,默认端口号为3306 ,即可实现开放外网访问和自定义端口的目的。此时mysql安装完成了,但是不能为我们的程序提供服务(使用连接工具现在是连接不上的)。修改host字段的值,将localhost修改成需要远程连接数据库的ip地址,或者直接修改成%,使所有主机都可以通过root用户访问数据库。
2024-05-18 10:05:06
4078
2
原创 红黑树!!
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。最长路径≤最短路径×2。
2024-05-14 10:18:08
435
原创 AVL树!
②左右子树高度之差(简称平衡因子)的绝对值不超过1(-1/0/1)如果一棵二叉搜索树是高度平衡的,它就是AVL树。①它的左右子树都是AVL树。
2024-05-13 10:04:25
212
原创 进程间通信
①既然父子进程要关闭不需要的fd(文件描述符),那为什么曾经要打开?可以看到父进程收消息,子进程发消息。这就是一个简单的管道的例子!②既然不需要刷新到磁盘,那么需要重新设计通信接口嘛?这个BUG会造成管道阻塞。
2024-05-04 11:24:10
773
原创 两种类型的二叉搜索树
②KV模型:每一个关键码key,都有与之对应的值Value,即<Key, Value>的键值对。①K模型:K模型即只有key作为关键码,结构中只需要存储Key即可,关键码即为需要搜索到的值。比如英汉词典就是英文与中文的对应关系,通过英文可以快速找到与其对应的中文,英。再比如统计单词次数,统计成功后,给定单词就可快速找到其出现的次数,单词与其出。①若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。②若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。③它的左右子树也分别为二叉搜索树。
2024-04-29 14:54:10
309
原创 C++多态
总结一下派生类的虚表生成:a.先将基类中的虚表内容拷贝一份到派生类虚表中b.如果派生类重写了基类中某个虚函数,用派生类自己的虚函数覆盖虚表中基类的虚函数c.派生类自己新增加的虚函数按其在派生类中的声明次序增加到派生类虚表的最后。
2024-04-23 11:57:53
860
原创 C++继承
继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承一定程度破坏了基类的封装,基类的改变,对派生类有很大的影响。类之间的关系可以用继承,可以用组合,就用组合。基类的其他 成员在子类的访问方式 == Min(成员在基类的访问限定符,继承方式),public > protected> private。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。
2024-04-19 15:17:26
725
原创 软硬链接与动静态库
它提供了一系列函数来控制终端的光标位置、颜色、文本输出等。使用ncurses库需要先初始化,然后使用各种函数来控制终端的输出和输入。ncurses库是一个用于控制终端屏幕输出和输入的库,可以用于创建交互式的命令行界面。上面的举例都是我们自己写的垃圾库,没什么应用价值。现在来说明一个真是应用的库:ncurses库!库加载和静态库没有关系,因为。
2024-04-17 18:03:27
411
原创 反向迭代器的底层
因此,只要你有一个满足上述条件的迭代器,这个适配器就可以适配你的容器。比如,你可以将这个适配器用于std::vector、std::list等STL容器的迭代器,甚至可以用于你自己实现的容器的迭代器(只要满足上述条件)。容器类名::const_reverse_iterator 迭代器名;②Ref:表示返回值的引用类型,通常是迭代器指向元素的引用类型。③Ptr:表示返回值的指针类型,通常是迭代器指向元素的指针类型。①Iterator:表示要适配的容器的迭代器类型。容器类名::iterator 迭代器名;
2024-04-14 18:15:16
370
原创 C++STL(stack类、queue类)
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。
2024-04-13 19:25:58
852
VHDL全加器、计数器、数码管、五人表决器、多路选择器、流水灯、分频器、交通灯
2024-08-26
基于Simulink的IDR卫星通信通信系统与SCPC卫星通信系统
2023-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人