6.13-6.18

6.13

  1. 昨天和今天都在改计图作业&期末展示
  2. 测试了一下GMS的效果和直接用ORB+筛选对比,如下
    GMS(1000个ORB点用时0.04s,10000个ORB点用时0.10s,下图是1000个的效果):
    这里写图片描述
    ORB+最小距离筛选(500个ORB用时0.05s)
    这里写图片描述
    其实本身ORB描述子匹配误匹配数目很多,如下
    这里写图片描述
    利用描述子的最小距离*2来筛选,即可得到上面那个效果较好的,看起来在相同时间内,GMS得到的匹配点多一些,应该效果会好,打算粗略阅读以下论文

6.14

  1. 做了两道LeetCode
  2. 看了GMS的论文,大概思路是现有的特征匹配算法无法区分哪些是正确的匹配哪些是错误的,RANSAC可以缓解这个问题,GMS同样也是为了解决这个问题.主要的思路是认为在正确的匹配点附近应该有较多的匹配点.而错误的匹配点则相反.结合图来理解
    这里写图片描述
    左图有一个黄色圈圈a,右图有一个黄色圈圈b,绿色的线表示一组特征匹配,在圈圈内还有两根蓝色的线表示有两组特征匹配,所以这是一个正确的匹配,而红色圈圈则相反,因为是误匹配,所以在红色圈圈内没有匹配的特征.大概就是这个意思
  3. OpenCV中有提供三角化的函数triangulatePoints,输入是两个相机的位姿SE3和特征点在归一化平面的位置(Point2d类型,二维,第三维为1省略),返回一个齐次的3维的世界坐标(即4维的点)
根据提供的引用内容,可以看出6.12和6.13是关于赫夫曼编码的编码和解码算法。下面是对这两个算法的简要介绍: 6.12 赫夫曼编码算法 赫夫曼编码是一种可变长度编码,用于将字符编码为比特串。它是一种前缀编码,即没有任何一个字符的编码是另一个字符编码的前缀。这种编码方式可以有效地压缩数据,因为出现频率高的字符可以用较短的编码表示,而出现频率低的字符可以用较长的编码表示。 赫夫曼编码算法的基本思想是:根据字符出现的频率构建一棵赫夫曼树,然后对每个字符进行编码。具体步骤如下: 1. 统计每个字符出现的频率,并将它们存储在一个频率表中。 2. 将频率表中的每个字符作为一个叶子节点,构建一棵赫夫曼树。构建赫夫曼树的方法是:将频率最小的两个节点合并成一个新节点,新节点的权值为两个节点的权值之和。重复这个过程,直到所有节点都被合并成一个根节点。 3. 对赫夫曼树进行遍历,对每个字符生成一个编码。从根节点开始,如果向左走就在编码的末尾添加一个0,如果向右走就在编码的末尾添加一个1。当遍历到一个叶子节点时,就得到了该字符的编码。 4. 将每个字符的编码存储在一个编码表中。 6.13 赫夫曼解码算法 赫夫曼解码算法的基本思想是:根据赫夫曼编码表和赫夫曼树,将比特串解码为字符。具体步骤如下: 1. 从比特串的开头开始,沿着赫夫曼树向下走,直到遇到一个叶子节点。 2. 如果遇到的是一个叶子节点,就将该节点对应的字符输出,并返回到根节点。 3. 如果遇到的是一个内部节点,就根据比特串的下一位向左或向右走,重复步骤1和步骤2,直到遇到一个叶子节点。 --相关问题--: 1. 赫夫曼编码有哪些应用场景? 2. 如何实现赫夫曼编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值