【发布时间】:2015-07-23 13:07:26
【问题描述】:
我正在开发一个使用 Canny 边缘检测的应用程序。这里最耗时的步骤是高斯模糊的初始应用(例如,在 500k 图片上应用 11x11 内核)。为了加快速度,我想使用 renderscript 的 ScriptIntrinsicBlur 方法。我已经在 Eclipse 中设置了代码,包括最新的 BuildTools 22.0.1,如所述,例如在http://developer.android.com/guide/topics/renderscript/compute.html#ide-setup。 renderscrip-v8.jar 的导入工作,编译工作,但我没有设法让它运行,甚至在我的三星 S5 上也没有。该错误与缺少 libRSSupport.so 和 librsjni.so 的导入有关。我阅读了有关该主题的数十个主题,但没有找到解决方案。我正要放弃它...(并考虑使用更小的图片和内核 - 以降低质量为代价)任何帮助将不胜感激!
正如我的旁注:我用 Java 制作了一个原型,在那里使用 java.awt.image.ConvolveOp 进行高斯模糊。这个速度非常快 - 但不幸的是在 Android 中不可用。
【问题讨论】:
-
你不能使用 OpenCV 来做到这一点吗? Canny 和 GaussianBlur 都是几毫秒
-
你是对的,Miki,我现在会检查一下。无论如何,我非常同情纯 Java 的实现,因为从我读到的关于 Renderscript 的内容来看,它在某些设备上并不可靠,我不想冒任何问题的风险。从技术上讲,我想知道 openCV 是如何达到这样的速度的。我在 Android 中编写了一个简单的模糊算法,其中包含通过图像像素和内核的嵌套 for 循环,这需要大约 50 mio (11x11x600x800) 的灰度图片乘法和加法,而在我的三星上则需要 1 秒。无论如何,谢谢你的提示
标签: android eclipse renderscript