C# 如何检测图表中的单个字符
我有一个包含线条和标签的图表。我想使用Tesseract OCR来检测标签A、B、C、D、E的位置 (我是S.O.的新手,因此无法发布图像) 这是我的密码:C# 如何检测图表中的单个字符,c#,tesseract,C#,Tesseract,我有一个包含线条和标签的图表。我想使用Tesseract OCR来检测标签A、B、C、D、E的位置 (我是S.O.的新手,因此无法发布图像) 这是我的密码: var testImagePath = @"test.png"; using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.TesseractAndCube)) { engine.SetVariable("tessedit_char_white
var testImagePath = @"test.png";
using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.TesseractAndCube))
{
engine.SetVariable("tessedit_char_whitelist", "ABCDE");
engine.DefaultPageSegMode = PageSegMode.SingleBlock;
using (var img = Pix.LoadFromFile(testImagePath))
{
using (var page = engine.Process(img))
{
var text = page.GetHOCRText(0);
}
}
}
这行不通,Tesseract被这条线弄糊涂了。有没有办法忽略该行,只提取字母?字母的位置是否固定?也就是说,如果我将图像裁剪到示例图像中每个字母的位置,相同的位置是否适用于您打算处理的所有图像?不,该项目的目的是检测所有标签并找到它们的位置。后来,ABCDE。。。将替换为维度整数。我不确定是否有简单的修复方法。对Tesseract来说,评估它所看到的一切都是有意义的,包括线条。如果无法确定行或字母的位置,您如何期望Tesseract忽略行并关注字母?如果有办法将线条与字母区分开来(例如,不同的颜色),则可以对图像进行预处理(将线条颜色的像素变为白色);但我认为这不是一个可行的解决方案?谢谢你的帮助。我将尝试类似的方法,过滤掉线条,以便Tesseract只关注标签。