Ocr tesseract没有';我拿不到小标签
我已经在linux环境中安装了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(左上
# 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磅字体为理想字体)
- 对图像进行二值化,并使用图像处理算法去除噪声
//初始化编解码器类
使用(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,这似乎很容易理解。您可能需要训练引擎以获得更好的结果或使用更好的起始图像,这样您就不必插值像素并调整其大小。对于我的情况,最好的分割方法是什么?我认为默认方法在您的场景中是最好的: