自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dahei_zy的博客

学习笔记记录

  • 博客(33)
  • 收藏
  • 关注

原创 【三维重建】点云配准拼接学习笔记

寻找不同视角下不同点云之间的映射关系,利用一定的算法将同一目标场景的不同点云转换到同一个坐标系下。问题的关键是如何让得到坐标变换的参数R(旋转矩阵)和T(平移向量),使得两视角下测得的三维数据经坐标变换后的距离最小,目前配准算法按照过程可以分为整体配准和局部配准。PCL中有单独的配准模块,实现了配准相关的基础数据结构,和经典的配准算法如ICP。就是映射的准确性。点云配准要应对点云数据的等干扰。如何有效地利用已有的信息实现精确、的点云配准算法具有重要的研究意义和价值。

2023-12-07 22:17:20 474

原创 PCL学习笔记

参考链接:C++模板库。

2023-12-07 19:57:59 102

原创 【三维重建】Delaunay三角剖分学习笔记

给定的点集,生成三角形集合的过程。

2023-10-30 14:47:51 648

原创 OpenMVS源码阅读笔记(2)------DensifyPointCloud.cpp

这段代码是用于解析命令行参数和配置文件的一般流程,通常在程序启动时执行。以下是关于这段代码的解释:1. `try` 块:- 这是一个异常处理块,用于捕获潜在的异常。2. 解析命令行参数:- `boost::program_options` 库用于解析命令行参数。- `boost::program_options::command_line_parser` 用于解析传递给程序的命令行参数。`argc` 和 `argv` 是 `main` 函数传递的参数数量和参数数组。

2023-10-12 20:41:06 232

原创 嵌入式的八股总结

在大端存储中,数据的高位字节(Most Significant Byte,MSB)存储在内存的低地址处,而数据的低位字节(Least Significant Byte,LSB)存储在内存的高地址处。这意味着数据的高位字节在内存中的地址较小,而低位字节在内存中的地址较大。在网络通信和数据传输中,大端和小端存储方式之间的差异可能导致数据格式不匹配的问题,因此在进行数据交换时需要进行字节顺序的转换。在小端存储中,数据的低位字节(LSB)存储在内存的低地址处,而数据的高位字节(MSB)存储在内存的高地址处。

2023-09-02 15:40:42 245

原创 传统算法-基于MVS的重建学习框架

经典开源框架:位姿计算:COLMAP,MVE,openMVG,Slam等;MVS: COLMAP,MVE,PMVS,SMVS,OpenMVS等现使用重建方案:COLMAP + OpenMVS论文研究:Multi-View Stereo:A Tutoria(综述文章)Tanks and Temples: Benchmarking Large-Scale Scene Reconstruction(MVS开源框架测评)。视频左下角好像是论文(我猜)。

2023-08-23 22:06:01 461

原创 MFC宏定义

是 MFC(Microsoft Foundation Classes)中的一个宏,用于在类声明中声明一个的类。它通常与宏一起使用,以便在运行时进行类信息的查询和创建。在 MFC 中,动态类是指可以在运行时使用类名字符串来创建对象的类。这在很多情况下非常有用,比如在工厂模式中。使用宏声明的类可以在运行时使用类名字符串来创建对象。在这个例子中,使用声明为动态类,然后通过宏实现。这样就可以在运行时创建的对象。请注意,和宏通常在 MFC 类中使用,如果你的代码不是基于 MFC,可能不会使用这些宏。

2023-08-09 18:50:20 207

原创 C++浓缩学习笔记(2)-C++内存

简单地说就是申请了一块内存空间,使用完毕后没有释放掉。(1)new和malloc申请资源使用后,没有用delete和free释放;(2)子类继承父类时,父类析构函数不是虚函数。(3)Windows句柄资源使用后没有释放。

2023-07-25 07:50:54 114

原创 C++浓缩学习笔记(3)-面向对象

参考回答面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性变量和操作这些属性变量的函数打包成一个类来表示面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程参考答案只定义了析构函数,编译器将自动为我们生成拷贝构造函数和默认构造函数。默认构造函数和初始化构造函数。

2023-07-25 07:50:52 224

原创 C++浓缩学习笔记(4)-STL

参考回答​ 容器可以用于存放各种类型的数据(基本类型的变量,对象等)的数据结构,都是模板类,分为顺序容器、关联式容器、容器适配器三种类型,三种类型容器特性分别如下:顺序容器​ 容器并非排序的,元素的插入位置同元素的值无关。包含vector、deque、list,具体实现原理如下:(1)vector 头文件​ 动态数组。元素在内存连续存放。随机存取任何元素都能在常数时间完成。在尾端增删元素具有较佳的性能。(2)deque 头文件​ 双向队列。元素在内存连续存放。

2023-07-25 07:50:50 176

原创 C++浓缩学习笔记(5)-新特性

的,例如://编译器不会报错​ 但这种定义出来的右值引用并无实际用处。一方面,右值引用主要用于移动语义和完美转发,其中前者需要有修改右值的权限;其次,常量右值引用的作用就是引用一个不可修改的右值,这项工作完全可以交给常量左值引用完成。move语义​ move 本意为 "移动",但该函数并不能移动任何数据,它的功能很简单,就是将。

2023-07-25 07:50:24 183

原创 C++浓缩学习笔记(1)-语言基础

参考回答函数指针就是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。定义形式如下:f = &func;​函数指针的应用场景回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫Callback。

2023-07-25 07:46:58 269

原创 MySQL浓缩笔记(5)-语法篇

外连接: 左外连接: 左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。全外连接:连接的表中不匹配的数据全部会显示出来。因此,在不再需要一张表的时候,用Drop;NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。,TRUNCATE比delete更快,占用的空间更小。交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。删除,会触发这个表上所有的delete触发器。除,所有的DML触发器也不会被触发,

2023-07-23 15:25:59 46

原创 MySQL浓缩笔记(4)-锁篇

悲观锁,先获取锁,再进行业务操作,一般就是利用类似 SELECT …FOR UPDATE时会获取被select中的数据行的行锁,select for update获取的行锁会在当前事务结束时自动释放,因此必须在事务中使用。乐观锁,先修改完共享资源,再验证这段时间内有没有发生冲突,如果没有其他线程在修改资源,那么操作完成,如果发现有其他线程已经修改过这个资源,就放弃本次操作。,那么在加「独占表锁」时,直接查该表是否有意向独占锁,如果有就意味着表里。那么有了「意向锁」,由于在对记录加独占锁前,先会加上。

2023-07-23 15:25:55 50

原创 MySQL浓缩笔记(3)-事务篇

在min_trx_id 和 max_trx_id 之间,则需要判断 trx_id 值是否在 m_ids 范围内,判断的结果是在的,那么说明这条记录是被还未提交的事务修改的,这时事务 并不会读取这个版本的记录。,因为当执行 select ... for update 语句的时候,会加上 next-key lock,如果有其他事务在 next-key lock 锁范围内插入了一条记录,那么这个插入语句就会被阻塞,无法成功插入,所以就很好了避免幻读问题。,指一个事务还没提交时,它做的变更就能被其他事务看到;

2023-07-23 15:25:51 61

原创 MySQL浓缩笔记(2)-索引篇

其表数据文件本身就是按B+Tree组织的一个索引结构,树的叶子节点data域保存了索引文件和数据文件是分离的,这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引,这被称为“聚簇索引”或者聚集索引,而其余的索引都作为辅助索引,,在索引检索的时候,首先按照B+Tree搜索算法搜索索引,如果指定的key存在,则取出其data域的值,然后以data域的值为地址读取相应的数据记录,这被称为“MyISAM,索引文件和数据文件是分离的,B+Tree叶节点的data域存放的是。

2023-07-22 19:25:20 73

原创 MySQL浓缩笔记(1)-基础篇

非关系型数据库也叫NOSQL,采用键值对的形式进行存储。它的读写性能很高,易于扩展,可分为内存性数据库以及文档型数据库,比如 Redis,Mongodb,HBase等等。日志系统地理位置存储数据量巨大高可用。

2023-07-22 19:25:14 79

原创 操作系统浓缩笔记(7)-网络系统结构

将静态资源(图片,视频,js,css等)单独保存到专门的静态资源服务器中,在客户端访问的时候从静态资源服务器中返回静态资源,从主服务器中返回应用数据。因为对同一个关键字进行哈希计算,每次计算都是相同的值,这样就可以达到映射效果。也用了取模运算,但与哈希算法不同的是,哈希算法是对节点的数量进行取模运算,而。(集群是所有的服务器都有相同的功能,请求哪台都可以,主要起分流作用)上,让硬件配置更好的节点承担更多的请求,这种算法叫做。(分布式是将不同的业务放到不同的服务器中,,最简单的方式,引入一个中间的。

2023-07-22 15:54:05 62

原创 操作系统浓缩笔记(4)-进程管理

多个读者可以同时进行读写者必须互斥(只允许一个写者写,也不能读者写者同时进行)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)

2023-07-22 11:05:12 305

原创 操作系统浓缩笔记(6)-调度算法

非抢占式的调度算法,按照请求的顺序进行调度。有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。非抢占式的调度算法,按估计运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。最短作业优先的抢占式版本,按剩余运行时间的顺序进行调度。 当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新

2023-07-22 11:02:02 92

原创 操作系统浓缩笔记(3)-内存管理

首次适应不仅最简单,通常也是最好最快,不过首次适应算法会使得内存低地址部分出现很多小的空闲分区,而每次查找都要经过这些分区,因此也增加了查找的开销。邻近算法试图解决这个问题,但实际上,它常常会导致在内存的末尾分配空间分裂成小的碎片,它通常比首次适应算法结果要差。最佳导致大量碎片,最坏导致没有大的空间。进过实验,首次适应比最佳适应要好,他们都比最坏好。算法算法思想分区排列顺序优点缺点首次适应从头到尾找适合的分区空闲分区以地址递增次序排列综合看性能最好。算法开销小。

2023-07-22 11:01:52 138

原创 操作系统浓缩笔记(2)-操作系统结构

说一下你理解中的内存?他有什么作用呢?

2023-07-22 11:01:48 54

原创 操作系统浓缩笔记(1)-综合基础

由于每个国家的语言都有属于自己的编码格式,在多语言编辑文本中会出现乱码,这样Unicode应运而生,Unicode就是将这些语言统一到一套编码格式中,通常两个字节表示一个字符,而ASCII是一个字节表示一个字符,这样如果你编译的文本是全英文的,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。如下图(截取他人图片)

2023-07-22 11:01:33 50

原创 计算机网络浓缩笔记(4)----IP

ARP 协议是已知 IP 地址求 MAC 地址,那 RARP (反向地址转换协议)协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到。通常这需要架设一台RARP服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。该设备会发送一条「我的 MAC 地址是XXXX,请告诉我,我的IP地址应该是什么」的请求信息。RARP 服务器接到这个消息后返回「MAC地址为 XXXX 的设备,IP地址为 XXXX」的信息给这个设备。

2023-07-21 22:04:45 127 1

原创 计算机网络浓缩笔记(3)---TCP

一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。粘包的问题出现是因为不知道一个用户消息的边界在哪,如果知道了边界在哪,接收方就可以通过边界来划分出有效的用户消息。主要原因就是进行了消息的分片。1、应用程序写入数据的字节大小大于套接字发送缓冲区的大小.2、进行MSS大小的TCP分段。( MSS=TCP报文段长度-TCP首部长度)3、以太网的payload大于MTU进行IP分片。

2023-07-20 20:45:53 176

原创 计算机网络浓缩笔记(2)--HTTP

SSL代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和Web服务器之间发送的数据的协议。HTTPS 采用的是对称加密和非对称加密结合的「混合加密」方式:在通信建立前采用非对称加密的方式交换「会话秘钥」,后续就不再使用非对称加密。在通信过程中全部使用对称加密的「会话秘钥」的方式加密明文数据。

2023-07-20 20:45:48 80

原创 计算机网络浓缩笔记(1)-基础

万一同步的数据大于512字节,你怎么办?8、如果不是http协议,服务器会返回一个5开头的的重定向消息,告诉我们用的是https,那就是说IP没变,但是端口号从80变成443了,好了,再四次挥手,完事,11、确认无误后,开始通信,然后服务器就会返回你所要访问的网址的一些数据,在此过程中会将界面进行渲染,牵涉到ajax技术之类的,直到最后我们看到色彩斑斓的网页。9、再来一遍,这次除了上述的端口号从80变成443之外,还会采用SSL的加密技术来保证传输数据的安全性,保证数据传输过程中不被修改或者替换之类的,

2023-07-20 20:45:41 87

原创 【三维重建】特征检测与匹配

在进行相机的参数标定后,使用无人机对数据进行采集,使用采集的无人机图像序列进行三维重建,首先要进行图像序列之间的特征检测与匹配,本文主要记录的是特征检测与匹配相关知识的学习笔记。

2023-03-27 22:04:41 524

原创 三维重建数据集

数据集汇总(ing)

2023-02-25 18:31:29 682 2

原创 【三维重建】相机标定:张正友标定法

上文介绍了相机成像原理和各个坐标系之间的转换关系,并建立了三维到二维的理想化模型,表示出了相机的内、外参数矩阵。并且对于现实情况,介绍了相机透镜可能会存在畸变相机的畸变参数。本文主要就是解决相机标定的问题,用到的方法为:张友正标定法。下面是文章原文与翻译文献。张氏标定法使用二维方格组成的标定板进行标定,采集标定板不同位姿图片,提取图片中角点像素坐标,通过单应矩阵计算出相机的内外参数初始值,利用非线性最小二乘法估计畸变系数,最后使用极大似然估计法优化参数。该方法操作简单,而且精度较高,可以满足大部分场合。

2023-01-06 21:39:09 6428 3

原创 【三维重建】相机成像及坐标系之间的转换

本文内容为三维重建中相机成像原理和坐标系之间转换的相关知识

2022-12-26 16:24:32 3489 1

原创 【数字图像处理】霍夫(Hough)变换

本节进行的是霍夫变换学习笔记。本系列主要是在阅读论文时的学习笔记,在遇到较为经典的数字图像处理的算法和知识点,对其进行整理和总结,主要包括原理,方法,算法等。(希望可以坚持下来)系列文章目录如下暂时还没(持续更新)...

2022-07-16 10:33:38 2096

原创 anaconda虚拟环境创建与pycharm配置经验贴

目录anaconda1、下载与安装2、创建虚拟环境(通过命令行窗口)anaconda1、下载与安装 进入官网https://www.anaconda.com/; 点击Products -> individual edition -> Download 安装的时候找好安装位置,有空全部勾选即可。2、创建虚拟环境(通过命令行窗口)win+R打开运行窗口,输入不同指令进行不同操作: ...

2021-11-21 21:04:48 627

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除