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)
不,这不对。通过简单的指针算术来替换尽可能多的[]用法,以迭代有问题的数组。将不变表达式抽象为局部变量。
但是,第一个问题是,您的分析器是否显示此代码是整个应用程序上下文中的瓶颈。如果不是,为什么还要进行微优化呢?
编辑:循环微优化 - 更喜欢第二个,因为不需要数组索引(乘与加)
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)