PTAMM阅读笔记之查找表的使用(四)
来源:互联网 发布:微盘交易php源码 编辑:程序博客网 时间:2024/05/22 06:50
查找表的基础知识:
函数的计算开销很大,但是把计算结果缓存起来的开销比较小时,用查找表(简称LUTs)优化这种函数的计算是一种非常好的方法。通过预先把一些常见输入的对应结果计算出来,花费不多的查找操作就能代替开销较大的运行时计算。如果查找比从头开始计算结果(或者有不断重复的相同输入)要快,那么使用查找表就能提高程序性能。由于数据请求会落在表的样本区间中,插值算法能够通过对数值附近样本取平均值产生可以接受的近似值。
一维查找表:
查找表是以其维数来定义,即把一个输出值编入索引时所必要的索引数目。最简单的查找表是以一个变量来编制和访问的,也就是1D查找表。
考虑一种对颜色的操作f(x),作用于8位的灰度图像。一种做法就是遍历图像的所有像素,为每一个像素都计算一次f(x)的值。然而,无论这个函数有多复杂,它的计算记过都只会是255种中的一种(相应于每一种不同的输入)。因此,一种替代的方法就是列出这个运算对应于每一种输入的结果,在运行时通过查找这几个表来对像素进行变换计算。假设查找整数表是高效的,同时光栅图像的像素数目多余255个,那么使用查找表会加快速度。
PTAMM之查找表:
unsigned int v=0; lev.vCornerRowLUT.clear(); for(int y=0; y<lev.im.size().y; y++){ while( (v < lev.vCorners.size()) && (y > lev.vCorners[v].y) ) v++; lev.vCornerRowLUT.push_back(v);}
上述代码实现了将角点坐标存入1D按列查找表中。首先,角点的个数是不确定的,但是im.size是有限的,因此将角点按列存储,方便后续计算中进行查询,即每一个纵坐标对应一个角点。这里查找表中存入的是角点的索引值。- PTAMM阅读笔记之查找表的使用(四)
- PTAMM阅读笔记之EMGU CV的使用、 VC运行库版本冲突分析处理
- PTAMM阅读笔记之基本流程(一)
- PTAMM阅读笔记之ID3决策树(二)
- PTAMM阅读笔记之SLAM概述(五)
- PTAMM阅读笔记之阶段性总结(六)
- PTAMM阅读笔记之FAST角点检测(三)
- PTAMM阅读笔记之Unity版本实现总结
- 阅读笔记常见的设计模式之四:工厂模式
- Robot Framework 源代码阅读笔记 之四
- mysql阅读笔记四
- 阅读笔记(四)
- soft raid5阅读笔记之四--读成员磁盘错误的处理
- AMD OpenCL例子阅读笔记系列之Radix_Sort(四)
- 深度学习阅读笔记(四)之卷积网络CNN
- 【计算机网络 第五版】阅读笔记之四:网络层
- Solr入门之官方文档6.0阅读笔记系列(四)
- Head First Design Patterns 阅读笔记之四: Factory Pattern
- C# 基于SharpZipLib 实现 文件压缩,以及解压
- Linux下获取本地IP地址--------getaddrinfo
- 根据大端模式或小端模式取得数据方法
- android service生命周期
- 设计模式(三)抽象工厂模式(Abstract Factory Pattern)
- PTAMM阅读笔记之查找表的使用(四)
- 配置JDK和Tomcat环境变量
- JavaBean的保存范围
- openJTag烧写u-boot.bin 到NorFlash、NandFlash 杂记 mini2440
- linux分区知识与大磁盘的分区注意事项
- hdu1728
- 关于CSAPP读到的一些(1)——Alignment(出自Machine-Level Representation of Program)
- chmod的四位数的第一位代表什么
- Templates