【发布时间】:2020-10-19 22:05:05
【问题描述】:
好吧,我是 OCR 和 Emgucv 的新手,就这样吧。我有彩色身份证,我想通过 tesseract ocr 处理以获取详细信息。我已将彩色图像转换为灰度,并成功转换为二进制图像并将其传递给 tesseract 并正常工作,尽管我必须从收到的文本中过滤垃圾数据。
现在我的问题是我期待用户提供不同类型的图像,例如对比度、照明条件。我想知道是否有可用的东西来获得全局阈值以获取二进制图像。我已经玩过adaptivethreshold,Otsu,但对我没有用。
我假设图像是像素矩阵,所以他们无论如何都要编写一些适用于任何图像的函数?我不知道应该从哪里开始。
我正在研究 csharp 并将 tesseract 用于 ocr。我使用了以下代码。
double th = CvInvoke.Threshold(source, source2, 0, 255, ThresholdType.Otsu);
CvInvoke.Threshold(source, source, th/2, 255, ThresholdType.Binary);
示例图片: [1]:https://i.stack.imgur.com/JleRx.jpg
请在 csharp 中提出示例以查找全局阈值。
我正在为 OCR 执行以下步骤。
- 灰度
- 阈值
- Tesseract
另外,请让我知道我是在为 OCR 做预期的算法还是我遗漏了什么?另外请建议我应该怎么做才能提高ocr的准确性?任何帮助将不胜感激。
【问题讨论】:
-
+1 你的问题进步了很多,干得好!在您的应用程序中,您有幸知道要搜索的文本的颜色。我建议将图像转换为 HSV,然后对 Hue 进行过滤以仅提取文本。您还知道文本的位置。当我有时间的时候,我会为你做一个例子。
-
谢谢!我会检查的。
标签: c# opencv ocr tesseract emgucv