resize函数查表优化
接着OpenCV的resize函数优化写,对于输入输出图像大小已知,且通道数相同的resize操作,可以使用查表的方法来进行优化,先生成输出图像中每个点对应原图的位置,然后拷贝原图像素点到目标图像。
这里的拷贝操作,也可以换成最邻近、插值等。
创建表
int createTable(int *table, int width_in, int height_in, int channels, int width_out, int height_out){float step_x = float(width_in)/float(width_out);float step_y = float(height_in)/float(height_out);int length = width_out * height_out;int loc_y = 0;int loc_x = 0;int bytes_per_line = width_in * channels;for (int i = 0; i < length; i++) {loc_y = i/width_out;loc_x = i%width_out;table[i] = int(step_y*loc_y) * bytes_per_line + int(loc_x*step_x)*channels;}return 0;
}
resize
void resizeByTable(uchar *input, int channels, int length, int *table, uchar *output){int mass = 4*(length/4);for (int i = 0; i < mass; i+=4) {memcpy(output+(i+0)*3, input+table[i+0], channels);memcpy(output+(i+1)*3, input+table[i+1], channels);memcpy(output+(i+2)*3, input+table[i+2], channels);memcpy(output+(i+3)*3, input+table[i+3], channels);}for (int j = mass; j < length; j++) {memcpy(output+j*3, input+table[j], channels);}return;
}
当然resize函数很多可以优化的方法,查表方法是比较暴力的一种方法,对于纹理细节丰富的图像进行resize,在我的mac(2.6 GHz Intel Core i5)上操作1080的图像相比OpenCV有接近4-5倍的速度提升,希望有更好的方法来完善resize操作。
resize函数查表优化相关推荐
- matlab怎么在表里查表,优化-如何在MATLAB中使用查找表
我需要对一组2D数组(如果需要,可以使用3D矩阵)执行两个参数(一组:t,另一组来自数组)的指数运算. ????f(t,x)= exp(t-x) 然后,我需要在第三维中添加每个值的结果.因为使用bsx ...
- 代码优化-之-Base64编码函数的极限优化挑战
代码优化-之-Base64编码函数的极限优化挑战 HouSisong@GMail.com 2007.07.27 tag:速度优化,Base64,CPU缓存优化, ...
- pandas常用函数说明及速查表
pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...
- tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
优化建议: 1.不要foreach里边再查询表,因为循环多次查表会很占资源的 2.没有办法就关联表查询join 例子: 原写法: $rsdo=Db::name('order')->field(' ...
- C语言正余弦函数定点查表算法原理及实现
如果用数学库中的sin和cos函数计算,可能涉及浮点.乘法.除法运算,运行速率较低.这里介绍一种正余弦查表算法. 参考代码:SMT32 FOC电机库的mc_math.c. 首先我们知道正弦和余弦的函数 ...
- 正切函数的查表法实现
在嵌入式领域,三角函数运算比较影响效率,可以使用查表法提高效率 //1, 正切函数值表,90度时取值1000,这个还是浮点运算的,还是不够 const double TAN[91] = { 0,0.0 ...
- 编程示例:以人名为输入判断性别的函数 以查表的方式实现
编程示例:以人名为输入判断性别的函数 以查表的方式实现 需求分析:功能是根据输入的人名,来判断人名的男女的可能性.限定条件是中国的汉族的人名. 格式如下: 输入是"孙 机 苏东海 ...
- python反三角函数arctan_arctan()函数的查表算法
目标:实现反正切函数的查表算法,精度0.5°. 分析: f(x) = arctan(x)函数单调但非线性,越接近原点处,斜率越大. 90°比较特殊,其值为正无穷大,只要得到的正切值tana大于114. ...
- Matlab/Simulink中查表函数的应用
1.1-D Lookup Table 模块 1-D Lookup Table 模块是最简单的查表模块 所谓查表,就是说目标为一个填满数据的表格或向量(1维)或矩阵(多维),根据对应维数的输人能够在表中 ...
最新文章
- javaweb学习总结(二十三)——jsp自定义标签开发入门
- 近期要推出的ISA2006系列文章
- linux文件夹前的描述,Linux对内存结构的描述
- 2017.9.2 校内模拟赛
- c语言中time相关函数
- android 绑定类名,Android Studio为Class跟Activity等添加注解
- 微型计算机系统的主存储器,微型计算机系统中 ,操作系统保存在硬盘上,其主存储器应该采用 ( )...
- 电大c 语言程序设计程序,中央电大 C语言程序设计A
- Python与Go插入排序
- 几种常见的 Kafka 集群监控工具
- 配置文件或模板中的占位符替换工具类.
- vue项目加载OCX控件以及控件的主动事件和回调事件的处理
- 他们说我根本不了解企业运作
- u-boot2020.04移植(1、u-boot的编译)
- meta标签中的http-equiv属性
- 翟佳:高可用、强一致、低延迟——BookKeeper的存储实现
- H3C交换机如何进行批量端口配置
- 112-RTKLIB中关于dcb文件读取的问题
- CNN 入门讲解:什么是全连接层
- 前端体系必备的软技能和知识点
热门文章
- USB WIFI 腾达811M无线网卡 -RT5370移植
- java画八卦_canvas画布——画八卦图
- 主板上集成显卡的计算机在进行显示,怎么查看自己电脑主板是否集成显卡
- 史上最大!亚马逊中国“真黑五”全球狂欢劲爆来袭
- 古筝d调变降e调怎么办_古筝转调方法_古筝怎么转调(2)
- #金专奖获奖方案展播# | 移动端云机魔测平台
- 1.魔金商城-会员登录注册相关
- R9 6980HX参数 r96980hx怎么样
- MySQL命令行下载安装配置——详细教程
- 软件测试-白盒测试:域测试