我想使用IronOCR从屏幕截图中识别出个位数。
问题是,我的.Read()结果总是以空"“结束。
这是我的密码
var bmpScreenshot = new Bitmap(105,
25,
PixelFormat.Format32bppRgb);
var gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen(992,
400,
0,
0,
new Size(105, 25),
CopyPixelOperation.SourceCopy);
var ocrInput = new IronOcr.OcrInput(bmpScreenshot);
ocrInput.EnhanceResolution();
ocrInput.Contrast();
ocrInput.Invert();
var Ocr = new IronOcr.IronTesseract();
Ocr.Configuration.WhiteListCharacters = "0123456789";
var Result = Ocr.Read(ocrInput).Text;用于识别的示例屏幕截图

如果我想识别两个或更多的数字,它可以正常工作(大多数情况下)。
知道该怎么做吗?
发布于 2022-03-14 07:32:11
免责声明:我为铁软件工作。
如果您总是期望单个字符,请尝试将TesseractPageSegmentationMode设置为SingleChar,它将图像视为单个字符。
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleChar;否则,我们的工程师将测试您的示例,并在下面的图像滤波器中看到了一个成功的结果。
代码示例:
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Financial;
using (var Input = new OcrInput(@"F:\input.png"))
{
Input.DeNoise();
Input.Invert();
//Input.DeepCleanBackgroundNoise();
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}请注意,DeepCleanBackgroundNoise()是非常CPU密集的,因为它执行沉重的背景噪声去除。只用于极端的文档背景噪音。
https://stackoverflow.com/questions/71374905
复制相似问题