1. 产品
  2.   OCR
  3.   Ruby
  4.   RTesseract
 
  

免费 Ruby 库,将图像转换为文本和可搜索的 PDF

开源 Ruby OCR 库,使软件开发者能够执行光学字符识别,从扫描文档、图像甚至截图中提取文本

RTesseract 是什么?

光学字符识别(OCR)充当视觉媒体与数字数据之间的变革桥梁,使机器能够精确地从图像和扫描文档中提取文本。对于 Ruby 生态系统中的开发者来说,开源的 RTesseract 库提供了通往 Tesseract OCR 引擎强大功能的高效入口。Tesseract 最初由惠普开创,随后由谷歌进一步完善,已被广泛认可为图像转文本的首选解决方案。作为一个精细的接口,RTesseract 使得在任何 Ruby 项目中无缝集成 Tesseract OCR 成为可能,省去手动管理复杂命令行交互的需求,同时保持专业级文档数字化所需的准确性。

除了易用性之外,RTesseract 是一个多功能的 Ruby 库,旨在支持包括 PNG、JPEG、BMP 和 TIFF 在内的广泛图像格式。这种灵活性确保几乎可以兼容任何视觉来源,而它利用 Tesseract 的全局数据文件的能力,使得多语言文本识别具有高度可靠性。为了进一步提升数据完整性,该库为每个识别的单词提供置信度分数,允许开发者以编程方式评估 OCR 输出的质量。作为一个开源项目,RTesseract 为希望自动化数据提取工作流并构建更智能、具备文本感知能力的 Ruby 应用的团队提供了成本效益高、可定制且强大的解决方案。

Previous Next

开始使用 RTesseract

推荐的 RTesseract 安装方式是使用 Rubygems。请使用以下命令进行顺利安装。

通过 Rubygems 安装 RTesseract

$ gem install rtesseract 

通过 GitHub 安装 RTesseract

 git clone https://github.com/dannnylo/rtesseract.git  

您可以从 GitHub 仓库下载已编译的共享库。

通过 Ruby API 将图像转换为文本

RTesseract 库让开发者能够轻松在 Ruby 应用中加载并将图像转换为文本。最直接的用例是将图像转换为文本字符串。只需几行代码,就可以从图像文件中提取文本。下面的代码示例加载图像并使用 Tesseract 进行处理,返回识别后的文本,作为 Ruby 字符串使用 Ruby 命令。

如何通过 Ruby API 加载图像并将其转换为文本?

require 'rtesseract'
image = RTesseract.new("path/to/your_image.jpg")
text = image.to_s
puts "Extracted Text: #{text}"

通过 Ruby 将图像转换为可搜索的 PDF

开源的 RTesseract 库已完整支持将图像转换为可搜索的 PDF,保留图像在 Ruby 应用中的布局和颜色。下面的示例演示了软件开发者如何使用 Ruby 命令加载并生成来自图像的可搜索 PDF 文档。

如何通过 Ruby 库将 JPEG 图像转换为可搜索的 PDF 文件?

require 'rtesseract'
image = RTesseract.new("path/to/my_image.jpg")
pdf_file = image.to_pdf  # Returns an open file handle for the PDF
File.write("output.pdf", pdf_file.read)

Tesseract 的自定义配置

开源的 RTesseract 库允许软件专业人员配置 Tesseract 的设置,例如语言、页面分割模式、限制 OCR 为数字识别以及 OCR 引擎模式。这使您能够微调 OCR 过程以获得更高的准确性。您可以使用 config 选项自定义 Tesseract 的设置。在下面的示例中,psm(页面分割模式)设置为 6,oem(OCR 引擎模式)设置为 1。

如何在 Ruby 应用中自定义 Tesseract 的设置?

image = RTesseract.new('path/to/image.png', config: { psm: 6, oem: 1 })
text = image.to_s

puts text

多语言支持

如果您的图像包含特定语言的文本,您可以通过指定语言来提高准确性。该库支持的语言包括英语(默认)、德语、法语、意大利语、荷兰语、葡萄牙语、西班牙语、越南语等。请确保已使用 Tesseract 安装相应的语言包。以下示例中,lang 选项设置为 'fra'(法语)。您可以使用 Tesseract 支持的任何语言代码。

如何通过 Ruby 库将图像转换为其他语言的文本?

image = RTesseract.new('path/to/image.png', lang: 'fra') # French language
text = image.to_s

puts text
 中国人