【发布时间】:2015-06-30 17:55:28
【问题描述】:
我正在编写一个使用 OpenCV 在图像上应用高斯模糊的 Android 应用程序,但是速度很慢。
// Gaussian blur sample code
cv::Mat output;
chrono::steady_clock::time_point t1 = chrono::steady_clock::now();
chrono::duration<int, std::milli> duration;
cv::GaussianBlur(<input>, output, cv::Size(25, 25), 0, 0);
duration = chrono::duration<int, std::milli>(std::chrono::duration_cast<std::chrono::duration<int, std::milli>>(std::chrono::steady_clock::now() - t1);
printf("%d", duration.count()); // Displays ~10-15 ms
当我测量这个 API 所用的时间时,它总是大约 10-15 毫秒。有谁知道为什么它在 android 上这么慢?
【问题讨论】:
-
这是什么意思:
API, it always comes ~10-15 ms.?正在启动? -
我的意思是这个 GaussianBlur() 调用所花费的时间。添加了更多代码以进行澄清。现在有意义吗?
-
是的。我不知道你为什么要测量,而不是为了显示它是如何播种的。你是如何加载 OpenCV 的?早在你运行任何 JNI 代码之前,我就会从头开始。
-
你把它比作什么?
-
我将它与其他手机进行比较,例如苹果手机。相同的 API 应用高斯模糊所需的时间非常少。
标签: android opencv android-ndk