2014-07-01 81 views
0

根據對它們執行各種不同卷積所花費的時間,將Mats聲明爲全局變量還是局部變量有區別嗎?例如,我對圖像執行了平均移位濾波,一次使用全局Mat,並且一次使用main中的局部Mat,然後將其作爲指針傳遞給平均移位濾波函數。我給他們兩人定時,他們幾乎相同,但不完全相同。OpenCV中的全局變量

這讓我想到將Mat作爲全局變量與局部/指針聲明的區別。任何幫助?

謝謝!

回答

2

我會說如果你正在計算實際卷積,那麼我認爲這不重要。

總的來說,我認爲速度更多取決於實施,而不是全球與本地。如果你必須經常創建/刪除Mat對象或者需要中間Mats,那麼如果可能的話,預分配和使用指針等。

避免全局性使代碼更模塊化等等,但這完全是另一個討論。全球有時是「適合工作的正確工具」,但通常有更好的解決方案。

他們是如何分配的堆VS棧, 我會讀這樣的:

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