<2012 12 24> 小技巧:关键计算代码建立内存索引表来增加算法速度

博主在运行Hough直线特征算法时,下面的代码含有三角函数和浮点运算,直接计算时对算法实时性影响很大。

iDist = (int)(i*cos(Angelp*step*PI/180.0) + (height-j)*sin(Angelp*step*PI/180.0)) + RadiaNum_half

如果把可能的有限计算值建立查询表,在程序开始时进行初始化,之后的运算都查表,能大大提高运算速度:

         int LutSin[321][181];

         int LutCos[321][181];

         for (i=0; i<321; i++){

                   for(j=0; j<181; j++){

                            LutSin[i][j] = (int)(i*sin(j * Pi /180));

                            LutCos[i][j] = (int)(i*cos(j * Pi /180));

                   }

         }

下面的数据显示效率的确增加很多:

 

<2012 12 24> 小技巧:关键计算代码建立内存索引表来增加算法速度_第1张图片

 

你可能感兴趣的:(2012)