【问题标题】:Android OpenCV optimization - line detection is slow Hough LinesAndroid OpenCV 优化 - 线检测很慢 Hough Lines
【发布时间】: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


【解决方案1】:

你能数一下从 HoughLines 返回的行数吗?如果有 1000 行,那么它可能需要这样的时间来生成。

如果可能,我建议更改您的 Canny 设置以减少 HoughLines 需要处理的边数。

此外,您可以为 HoughLines 尝试不同的参数。调用 HoughLines 时,我的值分别为 80、30 和 10,似乎可以得到可管理的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 2021-10-12
    • 2018-07-18
    • 2013-10-23
    • 2012-10-03
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多