Matlab blockproc vs for loop Speed

时间:2013-01-23 12:38:00

标签: performance matlab image-processing

我需要为图像中的每个像素执行计算。我目前的代码有双for循环,需要很长时间。将此转换为“blockproc(I,[1 1],fun)”可以加快速度吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您可以访问Parallel Computing Toolbox和R2012a或更高版本,则可以use blockproc with the 'parallel'-option。或者,您可以parfor外部循环。虽然blockproc可能仍然更快,但您肯定应该并排分析这两个选项。

或者,您可以通过更改算法来实现重要的速度增益 - 例如,将2D滤波器分解为2个1D滤波器等。


/ aside:blockproc对嵌套循环解决方案的巨大优势在于它可以处理太大而无法容纳在RAM中的图像,即它负责为您加载子图像。< / p>