2

大家好,我OCR Tesseract对 C# (tessnet2) 有问题,它找到了字符 IVI 而不是“M”,你能帮我吗?

tessnet2.Tesseract ocr = new tessnet2.Tesseract();
         ocr.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); // If digit only
         ocr.Init(@"C:\tresnet", "fra", false); // To use correct tessdata
         List<tessnet2.Word> result = ocr.DoOCR(imgSortie, Rectangle.Empty);
         String ListeLettres= "";
        
         foreach (tessnet2.Word word in result)
           ListeLettres= ListeLettres + word.Text;

4

2 回答 2

0

@user2094482 嗨,

我使用 Tesseract 和 c++ 进行字符识别。一旦我遇到同样的问题。我的系统识别了 |v| 而不是 M,甚至图像对我的肉眼来说都是清晰的。我尝试了几种图像预处理概念,例如图像二值化、图像模糊等,以获得准确的结果。但这些方法都没有给我 100% 准确的结果。因此,我尝试了白名单,并取得了成功。

text  = readLettersFromTesseractOCR(img_bw,&error,CharacterSequence);

CharacterSequence 初始化如下。

 CharacterSequence = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&lt

希望这也适用于您的系统。

于 2017-02-13T11:18:22.303 回答
0

我只会对字符串使用 Replace 函数并将“IVI”替换为“M”,因为实际上写“IVI”的情况并不多。

于 2021-05-28T17:07:13.543 回答