一般说明
调试
- 使用
Mat.toString()
和Mat.dump()
方法进行调试。 - 如果您使用C++开发,请在主机上调试您的代码。但请注意性能差异。我们建议在主机上开发/调试/优化C++代码,但请检查应用程序在设备上的实际速度。
性能
内存
内存效率应该是您首先要考虑的问题。众所周知,内存重新分配对设备累加器来说是致命的,因此请尽量避免它们。
- 避免过多的内存分配和复制。
- 在应用程序启动时初始化所有矩阵,并在以后重用它们。请注意,如果矩阵没有所需的尺寸和深度,OpenCV将在使用前重新分配它。只需预先为每个目的创建所有具有适当尺寸和深度的矩阵,并在任何地方使用它们。
JNI调用
- 不要过多地调用OpenCV Java API,因为JNI调用非常昂贵。例如,如果您想用零填充图像,请不要使用
put
方法,而是调用Mat.setTo()
。 - 在循环中使用OpenCV调用时要小心。最好在循环之外准备好所有内容,并避免重复的JNI调用。