【问题标题】:Number and text detection possible with opencv android while video capture?视频捕获时可以使用opencv android进行数字和文本检测吗?
【发布时间】:2014-04-16 08:42:55
【问题描述】:

是否可以在使用 opencv 或任何其他最佳图像和视频处理 api 在 android 中捕获视频时检测数字或文本

【问题讨论】:

    标签: android opencv image-processing video-processing


    【解决方案1】:

    是的,你可以。 OpenCV 3.0.0 包含一个基于极值区域检测和分类的text detection 工具。您可以在视频流中使用它。请注意,这是检测,结果可以用作任何 OCR(如 Tesseract)的输入。但请记住:

    图像 -> 文本检测 -> 预处理(二值化等) -> OCR -> 识别文本

    希望对你有帮助!

    【讨论】:

    • erfilter for android 的文档在哪里?它甚至可以在 AndroidCV 中使用吗?
    【解决方案2】:

    您将需要一个功能强大的 OCR 引擎,该引擎将尝试通过多种方式检测字符。 Tesseract 是一个很好的开源引擎,它将尝试通过掩码来“解析”您的图像中的字符。

    但是,在为 OCR 引擎 (Tesseract) 提供图像之前,您需要采取几个步骤或方法。为了确保更准确的结果,您需要使用二值化以及许多其他常规方法(例如“canny”边缘检测)来“清理”图像。这就是“OpenCV”可以提供帮助的地方。

    此外,您应该隔离/检测图像中的字符。这可以通过强大的算法来完成,例如Stroke Width Transform

    关于在 android 中检测视频流,您可以通过清理和 OCR 引擎运行捕获的帧,因为它们是通过接收的:

    onPreviewFrame(byte[] data, Camera camera)
    

    另外,请查看此app,它允许 OCR 处于“连续预览”模式。

    希望对你有帮助

    【讨论】:

    • 在运行 OCR 之前需要文本 检测。如果你不给它一个感兴趣的起始区域,Tesseract 在野外条件下将不会返回好的结果。
    • @KeillRandor,这就是为什么我在回答中提到您需要在执行 OCR 之前采取几个步骤。第一个是清理(可以使用 OpenCV 完成),第二个是使用 Stroke Width Transform 等算法隔离或“检测”字符。
    猜你喜欢
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多