算法和优化
tofro
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ICA(独立成分分析)
独立成分分析(ICA,Independent Component Correlation Algorithm)简介X=ASX为n维观测信号矢量,S为独立的m(mICA的目的就是寻找解混矩阵W(A的逆矩阵),然后对X进行线性变换,得到输出向量U。U=WX=WAS过程:(1)对输入数据进行中心化和白化预处理X*=X-u经过白化变换后的样本数据为Z=Wz X*(2原创 2011-12-31 21:36:48 · 1232 阅读 · 0 评论 -
对Map按value进行排序
Map内部是按key进行排序的,而不是value。如果希望根据value对Map里面的元素对排序,可以通过把Map里面的元素拷贝到一个list中,然后定义自己的比较函数,并对该list进行排序。(1)首先,需要定义一个结构体,以用于封装Map中的元素对(key, value)。struct strTest{ char key[32]; //key示例 unsig原创 2012-01-01 00:48:26 · 625 阅读 · 0 评论 -
特征选择
特征选择是指从一组给定的特征集中,按照某一准则选择出一组具有良好区分特性的特征子集。特征选择又称独立评估法,在进行特征选择时一般都是利用某种评价函数独立地对每个原始特征项进行评分,然后将它们按分值的高低排序,从中选取若干个分值最高的特征项。特征选择实际包含两个方面:特征提取和特征选择。特征提取是一种将数据从高维空间到低维空间的变换,达到降维的目的;特征选择是指从一组特征中去除冗余或不相关的特征原创 2011-12-31 21:40:12 · 706 阅读 · 0 评论 -
贝叶斯网络基础
只知道朴素贝叶斯分类算法,贝叶斯网络倒是不熟悉,应该也可以应用到逻辑推理和语义网络中去吧。转自 http://www.cnblogs.com/guystar/articles/126688.html一:定义 贝叶斯网络用来表示变量间连接概率关系的DAG图。结点表示:领域变量;有向边:结点间的依赖关系;对每一个结点都对应着一个条件概率分布表,该分布表指明了该变量与父结点之间的依赖转载 2011-12-31 21:39:33 · 929 阅读 · 0 评论 -
代码优化-有效使用内存
“代码优化-有效使用内存”这本书某些思想和方法可以借鉴,但具体的方法跟处理器架构有关系,不可同一而论,书中(原书及翻译版)也存在一些bug。一、内存优化1.展开循环展开循环可以减小分支(循环次数),一般通过重复循环内的指令来实现exp:for(a = 0; a x+=p[a];for(a = 0; a {// This shows the appr原创 2012-01-01 00:28:37 · 1092 阅读 · 0 评论 -
write back和write through
为了保证cache和memory的数据一致性,通常有三种方法:1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新。这样可以转载 2012-01-01 00:42:51 · 1994 阅读 · 0 评论 -
定点数转换
对浮点与定点的转换并不熟悉,只是用到一点点而已。1.浮点数转定点数在嵌入式程序中,浮点计算会占据大量的处理器资源,在满足一定的精度又不溢出的情况下,转换成定点数进行计算,将具有较大的性能提升。不管浮点数在机器内是如何表示的,基本上可以看成是由整数部分加小数部分组成的。假设需要b位的小数精度,转成定点数时乘以2^b即可,也即左移b位。示例:float x,y,z;x=12.5原创 2012-01-01 00:35:23 · 1589 阅读 · 1 评论 -
位图缩放的快速方法
在嵌入式系统中快速地进行屏幕拉伸,不能采用线性插值之类的算法,那样太慢。只能采用复制或抽取像素行的方式实现。网上有介绍位图快速拉伸的算法,如下:http://www.abcdown.net/InfoView/Article_212765.html 假设欲将长度为N1的像素列变成长度为N2的像素列,首先,设立两个指针,一个作为源指针,指向原来的像素列,读取源像素,另一个作为目的指针,指向变原创 2011-12-31 21:42:21 · 522 阅读 · 0 评论 -
矩形滤波
在图像处理中,经常要做矩形平滑滤波或其它操作,要用到模板运算。其中可能会遇到窗口的求和问题。 对每个窗口都要求和,然后求均值,而且是对每个像素点进行遍历,当然是个费时的过程。一般的操作可能是这样的:sum=0; for(i=0;i<w;i++) { for(j=0;j<w;j++) { sum+=Array[m+i][n原创 2011-12-31 21:35:29 · 1609 阅读 · 0 评论 -
LMS算法
%LMS算法演示(matlab)%设置参数,N为采样个数,u为步长clear,clc;N=16;u=0.1;%设置迭代次数kk=250;%pha为随机噪声的平均功率rk=randn(1,k)/2;pha=mean(rk);%设置起始权值wk(1,:)=[0 0];%用LMS算法迭代求最佳权值for i=1:kxk(i,:)=[sin(2*pi*i原创 2011-12-31 21:32:32 · 1458 阅读 · 1 评论 -
纹理映射与仿射变换
OpenVG中可以使用投影变换(本例中为仿射变换)来实现图像的变形效果,进而可以用于纹理映射。为简单起见只考虑三角形到三角形的映射。变换矩阵T为:|sx shx tx||shy sy ty||0 0 1 |其中sx,sy表示伸缩,shx,shy表示变形,tx,ty表示位移。设纹理图像中的坐标为(u,v),目标区域中的坐标表示为(x,y),则纹理映射即是从纹理图原创 2011-12-31 21:44:19 · 665 阅读 · 0 评论 -
使用NEON指令加速浮点数转整数
使用NEON指令的好处就是一次可以转4个float到int,但是有个不好处理的事情就是四舍五入。使用vcvtq_s32_f32是可以转f32到s32,但它是截断的,不会做四舍五入处理。这时候有个小窍门就是对正的浮点数加上0.5f,对负的浮点数减去0.5f,再调用vcvtq_s32_f32就相当于是四舍五入了。float ftmp[] = {0.5f, -1.0f, 0.49999997f...原创 2019-08-25 23:26:10 · 4076 阅读 · 1 评论
分享