Spire.OCR 2.1.6 现已发布!该版本新增对 Linux-ARM 平台的支持,可设置图像是否旋转及文本是否按图像位置输出,支持提取文本坐标,并升级了 SkiaSharp 依赖项。此外还修复了文本识别不准确及语言模型命名不规范的问题。详情如下:
新功能:
- 支持 Linux-ARM 平台。
- 升级依赖的 SkiaSharp 版本至 3.116.1(需要 Ubuntu 20.04、CentOS 9 及以上环境)。
- 支持设置图片是否旋转及文本是否按照图片位置输出。
- 支持获取文本坐标。
- 修复了文本识别内容不正确的问题。
- 修复了语言模型中“Japan”命名应为“Japanese”的问题。
// 初始化OCR扫描器对象
OcrScanner scanner = new OcrScanner();
// 创建配置选项对象
ConfigureOptions configureOptions = new ConfigureOptions();
// 设置模型路径为win-x64平台
configureOptions.ModelPath = "win-x64";
// 设置识别语言为中文
configureOptions.Language = "Chinese";
// 启用自动旋转功能
configureOptions.AutoRotate = true;
// 应用配置选项
scanner.ConfigureDependencies(configureOptions);
// 执行扫描操作,input是输入图像
scanner.Scan(input);
// 创建文本对齐器,处理扫描结果
VisualTextAligner visualText = new VisualTextAligner(scanner.Text);
// 获取对齐后的文本字符串
string scannnedText = visualText.ToString();
// 使用StringBuilder构建最终文本
StringBuilder builder = new StringBuilder();
builder.Append(scannnedText);
// 将识别结果写入输出文件
File.WriteAllText(outputfile, builder.ToString());
IOCRTextBlock[] blocks = scanner.Text.Blocks;
string scannnedText = PrintTextBlocks(blocks);
private static string PrintTextBlocks(IOCRTextBlock[] blocks, StringBuilder sb = null)
{
if (sb == null || sb.Length == 0) sb = new StringBuilder();
if (blocks != null && blocks.Count() > 0)
{
foreach (var block in blocks)
{
Rectangle rectangle = block.Box;
string t1 = string.Format("Rectangle : [{0}, {1}, {2}, {3}] , ",
rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
string t2 = string.Format("Level ({0}): {1}", block.Level.ToString(), block.Text);
string text = t1 + t2;
text = text + "\n";
sb.Append(text);
PrintTextBlocks(block.TextBlock, sb);
if (block.Level == TextBlockType.Line) sb.Append("\n");
}
}
return sb.ToString();
}
问题修复:
获取 Spire.OCR 2.1.6 请点击: