2

我正在使用 OpenCV 2.4 (C++) 在灰度图像上进行线查找。这涉及一些基本的图像处理步骤,如模糊、阈值、Canny 边缘检测器、梯度滤波器或霍夫变换。我必须在数千张图像上应用寻线算法。

考虑到大量图像,有没有办法加快计算速度?

以下其中一项是否提供帮助?英特尔 TBB、IPP 还是 OpenCV GPU?我听说 OpenCV GPU 可以加快计算速度,但数据传输速度很慢。所以在这里使用 GPU 可能不是正确的选择?

谢谢你!

编辑:

使用 TBB 的 parallel_for 来加速图像处理有什么意义吗?如果我使用这样的 for 循环:

for(int i=0; i<image_location.size();++i)
{
Mat img=imread(image_location[i]);
blur(img...);
threshold(img...);
...
}

我可以改用 parallel_for 来提高性能吗?谁能提供示例如何使用 parallel_for 包括一些 opencv 操作?

4

1 回答 1

2

您的问题范围几乎是无限的。

首先,您是否测量了应用程序的性能以检测实际瓶颈?我的猜测是霍夫变换,但谁知道你的代码还在做什么。现在,如果霍夫变换是缓慢的部分,并且假设 OpenCV 有一个快速的实现,那么这就是我告诉你这个问题有问题的原因。当您决定增加已经大量的图像时,更改为更好的实现并没有多大帮助,问题在于方法本身。

你真的需要使用霍夫吗?也许您可以使用形态运算符实现类似/更好的效果?图像是否来自某个共同领域?你能包括他们的例子吗?等等等等。

于 2012-11-29T01:23:21.310 回答