2014-07-01 80 views
0

根据对它们执行各种不同卷积所花费的时间,将Mats声明为全局变量还是局部变量有区别吗?例如,我对图像执行了平均移位滤波,一次使用全局Mat,并且一次使用main中的局部Mat,然后将其作为指针传递给平均移位滤波函数。我给他们两人定时,他们几乎相同,但不完全相同。OpenCV中的全局变量

这让我想到将Mat作为全局变量与局部/指针声明的区别。任何帮助?

谢谢!

回答

2

我会说如果你正在计算实际卷积,那么我认为这不重要。

总的来说,我认为速度更多取决于实施,而不是全球与本地。如果你必须经常创建/删除Mat对象或者需要中间Mats,那么如果可能的话,预分配和使用指针等。

避免全局性使代码更模块化等等,但这完全是另一个讨论。全球有时是“适合工作的正确工具”,但通常有更好的解决方案。

他们是如何分配的堆VS栈, 我会读这样的:

Global memory management in C++ in stack or heap?