当前位置: 首页 > 知识库问答 >
问题:

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

东郭昌胤
2023-03-14

我试图使用OpenCV(Android)处理使用相机拍摄的图像,然后将其传递给Tesseract进行文本(数字)识别,但在图像非常(几乎没有噪声)罚款之前,我没有得到很好的结果。目前我正在对拍摄的图像执行以下处理:1。应用高斯模糊。2.自适应阈值:对图像进行二值化。3.倒置颜色使背景变黑。然后将处理后的图像传递给Tesseract。

但我没有得到好的结果。

共有1个答案

靳金鹏
2023-03-14

您可以隔离/检测图像中的字符。这可以通过强大的算法来实现,如笔划宽度变换。

以下步骤对我很有效:

  1. 获取图像灰度。
  2. 对灰度图像执行canny边缘检测。
  3. 对灰度图像应用高斯模糊(存储在分离矩阵中)
  4. 将步骤2和3中的矩阵输入到SWT算法中
  5. 对生成的图像进行二值化(阈值化)。
  6. 向Tesseract提供图像。

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

 类似资料:
  • 问题内容: 我使用Google的Tesseract API创建了一个用于识别文本的基本应用程序,并将其与我的相机应用程序集成在一起。它可以正常工作,但唯一的问题是准确性,因为有时文本会被识别为随机字符集,我想准确性约为50%。 此外,当它尝试扫描图像中的四个以上单词时,应用程序崩溃。 Tesseract API类的对象在哪里。 我是否需要使用其他数据结构来保存识别的文本,还是有其他原因导致四个以上

  • 我已经成功地将镶嵌到我的Android应用程序中,它可以读取我捕获的任何图像,但准确性非常低。但大多数时候,我在捕获后没有得到正确的文本,因为感兴趣区域周围的一些文本也会被捕获。 我想阅读的只是来自矩形区域的所有文本,准确,没有捕捉矩形的边缘。我已经做了一些研究,并在stackoverflow上发布了两次,但仍然没有得到满意的结果! 以下是我发的2个帖子: https://stackoverflo

  • 我目前使用的示例代码如下: https://github.com/opencv/opencv_contrib/blob/master/modules/text/samples/textdetection.cpp 我已经确认它不是由erFilter部件引起的。从erFilter得到的结果是完全相同的。这种差异似乎发生在OpenCV中的tesseract或tesseract包装器内部。 这种差异也可以

  • 本文向大家介绍python使用opencv进行人脸识别,包括了python使用opencv进行人脸识别的使用技巧和注意事项,需要的朋友参考一下 环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 示例代码 转换效果 原图: 转换后 使用感受 对于大部分图像来说,只要是头像是正面的,没有被阻挡,识别基本没问题,准确性还是很高的。 识别效率有点低,

  • 我正在构建/训练Tesseract从捕获的照片中识别护照MRZ代码。在将照片/图像发送到Tesseract引擎之前,我将应用以下图像预处理技术: 二值化 正常化 取样 去噪 细化(可选) 此外,我已经用正确的字体(OCR-B)训练了Tesseract引擎,方法是创建大量的框文件(来自大约35个示例,其中包含从OCR-B字体的文本示例中获取的照片),修复框文件中的任何错误,创建训练文件,最后用我的所

  • 错误信息 我对tesseract、matlab和OpenCV都很陌生。我试图集成tesseract-ocr与我的C++程序来检测我定位的车牌。但是C++给我带来了错误。我需要帮助加载我的垫子图像到tesseract以识别其中的字符。 这是车牌图像,它是MAT变量