首页 文章

如何在Android中使用OpenCV Tesseract进行准确的文本识别?

提问于
浏览
4

我正在尝试使用OpenCV(Android)来处理使用相机拍摄的图像,然后将其传递给Tesseract进行文本(数字)识别,但是直到图像非常(几乎没有噪音)才能获得良好的效果 . 目前我正在对拍摄的图像进行以下处理:1 . 应用高斯模糊 . 2.自适应阈值:对图像进行二值化 . 3.反转颜色使背景变黑 . 然后将处理后的图像传递给Tesseract .

但我没有取得好成绩 .

请建议我在进入Tesseract之前或在Tesseract处理阶段进一步处理图像时可采取的步骤/措施 .

另外,Android中还有其他更好的库吗?

1 回答

  • 10

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

    以下步骤适用于我:

    • 获取图像的灰度 .

    • 在灰度图像上执行canny edge detection .

    • 在灰度图像上应用高斯模糊(以单独矩阵存储)

    • 从步骤2和3输入矩阵到SWT algorithm

    • 二值化(阈值)结果图像 .

    • 将图像输入到tesseract .

    请注意,对于第4步,您需要在链接中构建c库,然后使用JNI包装器导入到您的android项目中 . 此外,您需要对所有步骤进行微调,以获得最佳效果 . 但是,这至少应该让你开始 .

相关问题