Hough变换的累加器填充

Den*_*nis 5 c++ opencv hough-transform

我写了一段需要优化的代码.只是想与社区核实,看看该代码是否确实是最佳的.它填充了Hough变换的累加器.我实际上只是复制粘贴了OpenCV库中的大部分代码.谢谢!


int i,j,n,index;
for (i = 0;i<numrows;i++)
{
    for (j = 0;j<numcols;j++)
    {
            if (img[i*numcols + j] == 100)
        {
            for (n = 300;n<600;n++)
            {   
                index = cvRound(j*tabCos[n] + i * tabSin[n]) + (numrho-1)/2;
                accum[(n+1) * (numrho+2) + index+1]++;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*end 1

不,这不对。通过简单的指针算术来替换尽可能多的[]用法,以迭代有问题的数组。将不变表达式抽象为局部变量。

但是,第一个问题是,您的分析器是否显示此代码是整个应用程序上下文中的瓶颈。如果不是,为什么还要进行微优化呢?

编辑:循环微优化 - 更喜欢第二个,因为不需要数组索引(乘与加)

int ints[100];
int i;
int *pi;

for (i = 0; i < 100; ++i)
{
  printf("%d", ints[i]);
}

for (pi = ints; pi < ints + 100; ++pi)
{
  printf("%d", *pi);
}
Run Code Online (Sandbox Code Playgroud)