主页

Three.js 实现简单的PCD加载器

1 功能实现

实现效果:

brief

  • 初始会显示我们之前 SfM 做出的点云,包括相机位置

  • 可以点击右上角加载你本地的PCD文件

  • 可以通过选择多个文件加载多个点云并显示在同一场景中

阅读更多

递归下降语法分析实验实现

现在前面:

由于本人对编译技术并无兴趣(我觉得我这种数字动漫方向的根本没必要做实验😅),所以只完成最基本的 Icoding 上的内容,而全部非终结符对应函数的实现,我实在无心也无力,==完整代码在最后==

阅读更多

OpenCV实现多目三维重建(多张图片增量式生成稀疏点云)

1 大致流程

从多张图片逐步生成稀疏点云,这个过程通常包括以下步骤:

  1. 初始重建:

    初始两张图片的选择十分重要,这是整个流程的基础,后续的增图都是在这两张图片的基础上进行的

    • 对于输入图像,首先需要提取特征点(例如,SIFT、SURF或ORB特征点)。然后,通过匹配不同图像中的特征点,建立它们之间的对应关系
    • 通过两张图像之间的本质矩阵 E 估计相机的外参矩阵(旋转矩阵 R 和平移向量 T ),然后使用三角测量法计算出一些初始的三维点

阅读更多

Flex词法分析实验实现

根据词法分析实验中给定的文法,利用 flex 设计一词法分析器,该分析器从标准输入读入源代码后,输出单词的类别编号及附加信息。 附加信息规定如下: 当类别为 Y_IDnum_INTnum_FLOAT 时,附加信息为该类别对应的属性,如 main, 100, 29.3等; 当类别为 关键字 时,附件信息为 KEYWORD; 当类别为 运算符 时,附件信息为 OPERATOR; 当类别为 其它符号时,附件信息为 SYMBOL

阅读更多

9 STL周围

9 STL周围

9.1 万用Hash Function

Hash Function的常规写法:其中 hash_val 就是万用Hash Function

class CustumerHash
{ 
public:
	size_t operator()(const Customer& c) const
	{ return hash_val(c.fname(), c.lname(), c.no()); }
};

阅读更多

8 适配器

8 适配器

  • 适配器 Adapter 只是一个小变化,比如改个接口,函数名称等等
  • 其出现在三个地方:仿函数适配器,迭代器适配器,容器适配器
  • 可以使用继承 / 复合的两种方式实现,STL中都用复合

其思想就是将该记的东西记起来,以便日后使用

阅读更多

6 算法 + 7 仿函数

6 算法

算法的标准样式:需要传进去两个指针

image-20230903084435290

6.1 算法源码

6.1.1 accumulate

两个版本:

  1. 元素累加init

    template <class InputIterator, class T>
    T accumulate(InputIterator first, InputIterator last, T init)
    {
    	for (; first != last; ++first)
    		init = init + *first; // 累加到init
    	return init;
    }
    

阅读更多

5 迭代器

5.1 迭代器的设计准则

==Iterator 必须提供5种 associated type==(说明自己的特性的)来供算法来识别,以便算法正确地使用 Iterator

阅读更多