Ocr tesseract没有';我拿不到小标签

Ocr tesseract没有';我拿不到小标签,ocr,tesseract,Ocr,Tesseract,我已经在linux环境中安装了tesseract 当我执行类似于 # tesseract myPic.jpg /output 但是我的照片有一些小标签,tesseract没有看到 是否有一个选项可用于设置音高或类似的内容 文本标签示例: 在这张照片中,tesseract无法识别任何值 但这张照片: 我有以下输出: J8 J7A-J7B P7 \ 2 40 50 0 180 190 200 P1 P2 7 110 110 \ l 例如,在本例中,tesseract看不到90(左上

我已经在linux环境中安装了tesseract

当我执行类似于

# tesseract myPic.jpg /output
但是我的照片有一些小标签,tesseract没有看到

是否有一个选项可用于设置音高或类似的内容

文本标签示例:

在这张照片中,tesseract无法识别任何值

但这张照片:

我有以下输出:

J8

J7A-J7B P7 \

2
40 50 0 180 190

200

P1 P2 7

110 110
\ l
例如,在本例中,tesseract看不到90(左上角)

我认为这只是一个定义的选择或者类似的想法,不是吗


Thx

为了从Tesseract(以及任何OCR引擎)获得准确的结果,您需要遵循一些指导原则,如我在本文中的回答所示:

其要点如下:

  • 使用高分辨率图像(如果需要),最小分辨率为300 DPI

  • 确保图像中没有阴影或弯曲

  • 如果有任何歪斜,您需要在ocr之前在代码中修复图像

  • 使用字典有助于获得好的结果

  • 调整文本大小(12磅字体为理想字体)

  • 对图像进行二值化,并使用图像处理算法去除噪声

还建议花一些时间培训OCR引擎,以获得更好的结果,如本链接所示:

我拍摄了您共享的两张图像,并使用(免责声明:我是这家公司的员工)对它们进行了一些图像处理,能够获得比处理后的图像更好的结果,但由于原始图像不是最好的,所以仍然不是100%。以下是我用来尝试修复图像的代码:

//初始化编解码器类
使用(RasterCodecs codecs=新RasterCodecs())
{
//加载文件
使用(光栅图像img=codecs.Load(文件名))
{
//从调整图像大小开始运行图像处理序列
双新宽度=(img.Width/(双)img.x分辨率)*300;
双新高度=(img.Height/(double)img.YResolution)*300;
SizeCommand SizeCommand=new SizeCommand((int)newWidth,(int)newHeight,RasterSizeFlags.Resample);
sizeCommand.Run(img);
//对图像进行二值化
AutoBinarizeCommand和autoBinarize=新的AutoBinarizeCommand();
自动二进制运行(img);
//将其更改为1BPP
ColorResolutionCommand colorResolution=新的ColorResolutionCommand();
colorResolution.BitsPerPixel=1;
颜色分辨率。运行(img);
//将图像另存为PNG
保存(img,outputFile,RasterImageFormat.Png,0);
}
}
以下是此过程的输出图像:


Thx回复,但为什么它不能识别所有标签,例如第二张图片左上角的90,这似乎很容易理解。您可能需要训练引擎以获得更好的结果或使用更好的起始图像,这样您就不必插值像素并调整其大小。对于我的情况,最好的分割方法是什么?我认为默认方法在您的场景中是最好的: