入站传真的OCR

时间:2018-11-07 02:49:00

标签: ocr tesseract

大家好,感谢您的提前帮助。我正在尝试开发一个使用OCR读取入站传真的应用程序。我正在使用在Windows Server 2012平台上运行的Microsoft传真服务。首先,我正在尝试使用Tesseract 4.0执行OCR功能。视传真而定,结果令人沮丧,这在给定可变质量的情况下是可以理解的。我试图使用以下代码更改每个tiff帧的分辨率并将图像另存为png:

            foreach (Guid guid in tiffImage.FrameDimensionsList)
        {
            for (int index = 0; index < noOfPages; index++)
            {
                FrameDimension currentFrame = new FrameDimension(guid);
                tiffImage.SelectActiveFrame(currentFrame, index);
                //tiffImage.VerticalResolution = 300;                    
                tiffImage.Save(string.Concat(pstrOutputPath, @"\", index, ".TIF"), encodeInfo, null);

                float xDpi = 500.00F;
                float yDpi = 500.00F;


                Bitmap bmp = new Bitmap(tiffImage);
                bmp.SetResolution(xDpi, yDpi);

                //PngBitmapEncoder encoder = new PngBitmapEncoder();
                FileInfo info = new FileInfo(pstrInputFilePath);

                bmp.Save(string.Concat(pstrOutputPath, @"\", Path.GetFileNameWithoutExtension(pstrInputFilePath) + "_" + index, "_PNG.png"), System.Drawing.Imaging.ImageFormat.Png);
                string NewFile = string.Concat(pstrOutputPath, @"\", Path.GetFileNameWithoutExtension(pstrInputFilePath) + "_" + index, "_PNG.png");
                GetExtractedText(DataPath, NewFile);

            }

我还没有真正尝试过任何其他类型的预处理。由于入站输入的可变性,我意识到传真是困难的,但是我必须相信商业产品的结果率比我实现的要高。我想知道我还可以进行其他什么预处理,例如OpenCV或类似的东西。任何帮助将不胜感激。

更新:

我必须清理一些示例,但为了简洁起见,我将发布一些示例,并附上更多示例:

Sample1

当Tesseract碰到这一部分时,我要么变得完全乱码,要么最好是将日期中的斜杠返回为数字1。

Samples2

样本2返回乱码。示例3还仅返回乱码,可能是由于未按比例调整图像大小,但是,令我惊讶的是,此操作失败。我意识到图像的背景和粒度导致了问题,但我认为(可能是错误地)可以解决此问题。我对图像处理的经验不是很丰富,因此您提到的一些想法是我过去从未处理过的。

Sample 3

0 个答案:

没有答案