【发布时间】:2013-12-12 20:19:56
【问题描述】:
在我的项目中,我需要检测图像中的线条。我实际上必须检测矩形内的行和列。我使用 OpenCV 来实现这一点。我已经成功地完成了它,但它有点慢。我使用许多功能来预处理图像 - 例如阈值化、canny、膨胀、高斯模糊等。
我像这样使用 HoughLines
Imgproc.HoughLines(image, lines, 1, Math.PI/90 , threshold, minLineSize, maxGap);
完成我的程序大约需要 2.5 秒,它有大约 600 行。但在这一行上需要 2.2 秒。如您所见,我使用 Java 接口进行 OpenCV。是否有可能以某种方式对其进行优化?将我的程序重写为 NDK 会使其更快吗?如果我了解 OpenCV4Android,那么它只是用 NDK 编写的函数的包装器,所以我认为它不会更快。还是有更好更快的方法来检测图像中的线条?感谢您的任何建议。
【问题讨论】:
-
分析您的代码(如果您还没有),并在调用 HoughLines 之前提供有关您所做工作的更多详细信息。如果需要 2.5 秒,则说明您做错了什么,您应该在尝试使用 NDK 路径之前修复它。例如,也许您应该在进行任何处理之前先缩小图像,以确保您不需要 8Megapixels 的图像来检测线条。
标签: android opencv android-ndk hough-transform