一般說明
除錯
- 使用
Mat.toString()和Mat.dump()方法進行除錯。 - 如果您使用C++開發,請在主機上除錯您的程式碼。但請注意效能差異。我們建議在主機上開發/除錯/最佳化C++程式碼,但請檢查應用程式在裝置上的實際速度。
效能
記憶體
記憶體效率應該是您首先要考慮的問題。眾所周知,記憶體重新分配對裝置累加器來說是致命的,因此請儘量避免它們。
- 避免過多的記憶體分配和複製。
- 在應用程式啟動時初始化所有矩陣,並在以後重用它們。請注意,如果矩陣沒有所需的尺寸和深度,OpenCV將在使用前重新分配它。只需預先為每個目的建立所有具有適當尺寸和深度的矩陣,並在任何地方使用它們。
JNI呼叫
- 不要過多地呼叫OpenCV Java API,因為JNI呼叫非常昂貴。例如,如果您想用零填充影像,請不要使用
put方法,而是呼叫Mat.setTo()。 - 在迴圈中使用OpenCV呼叫時要小心。最好在迴圈之外準備好所有內容,並避免重複的JNI呼叫。
