C# TeserAct不读取单个值和某些值
我试图从位图中检索值。但是Tesseract不返回单个数字值和其他一些数字,如“13”。我使用的是Tesseract 3.3.0 Nuget软件包。如何解决此问题?OCR并不总是完美的。一般规则是,如果你想要最准确的结果,你应该看看付费图书馆。也就是说,尝试识别文本,使其在位图中弹出。您可以通过转换为灰度、将每个非文本像素转换为黑色和将每个文本像素转换为白色来实现这一点。即使这样做也不会让你获得100%的准确度,但会让你更接近。请参阅此处的ColorMatrix用法:将图像转换为黑白,并使用阈值微调(在一定程度上)文本的亮度。OCR需要培训。灰度转换(仅识别文本时B&W可能是更好的选择)@Jimi我尝试将图像转换为B&W,但引擎仍无法识别单个值。是否有任何高级配置可执行?C# TeserAct不读取单个值和某些值,c#,winforms,tesseract,C#,Winforms,Tesseract,我试图从位图中检索值。但是Tesseract不返回单个数字值和其他一些数字,如“13”。我使用的是Tesseract 3.3.0 Nuget软件包。如何解决此问题?OCR并不总是完美的。一般规则是,如果你想要最准确的结果,你应该看看付费图书馆。也就是说,尝试识别文本,使其在位图中弹出。您可以通过转换为灰度、将每个非文本像素转换为黑色和将每个文本像素转换为白色来实现这一点。即使这样做也不会让你获得100%的准确度,但会让你更接近。请参阅此处的ColorMatrix用法:将图像转换为黑白,并使用阈值
private void GetOCRValue(Bitmap image)
{
string ocrValue = "";
try
{
using (var engine = new TesseractEngine(Application.StartupPath + "\\tessdata", "eng", EngineMode.Default))
{
using (var imager = new System.Drawing.Bitmap(image))
{
using (var pix = PixConverter.ToPix(imager))
{
using (var page = engine.Process(pix))
{
ocrValue = page.GetText();
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}