OpenCV中的全局变量

Global Variables in OpenCV

本文关键字:全局变量 OpenCV      更新时间:2023-10-16

将Mats声明为全局变量或局部变量之间是否存在差异,就执行各种不同卷积所需的时间而言?例如,我在图像上执行了平均移位滤波,一次使用全局Mat,一次在main中使用本地Mat,然后将其作为指针传递给平均移位滤波函数。我对它们进行了计时,它们几乎相同,但不完全相同。

这让我想知道将Mat声明为全局变量与局部/指针之间的区别。任何帮助吗?

谢谢!

我想说,如果你正在计时实际的卷积,那么我认为这无关紧要。

一般来说,我认为速度更多地取决于实现,而不是全局或局部。如果你必须经常创建/删除Mat对象,或者需要中间Mat,那么如果可能的话,预先分配并使用指针等。

避免全局变量使代码更加模块化等等,但这是另一个讨论。全局变量有时是"适合工作的工具",但通常有更好的解决方案。

它们是如何分配的堆vs堆栈,我会读这个:

全局内存管理在c++中的堆栈或堆?