1. 产品
  2.   OCR
  3.   Swift
  4.   SwiftyTesseract
 
  

Free Swift OCR Library to Perform OCR on Scanned Images & PDFs

Open Source Swift Optical Character Recognition (OCR) Library allows to Scan, Recognize, and Extract Text from Camera Photos Scanned Images & PDFs for free inside iOS and macOS

SwiftyTesseract 是什么?

SwiftyTesseract 是一款专为 Swift 生态系统设计的顶级开源 OCR 库,帮助软件开发者在 iOS 和 macOS 应用中无缝集成先进的光学字符识别功能。它基于强大且业界验证的 Tesseract OCR 引擎,提供直观且流畅的 Swift 接口,能够准确地从图像、扫描文档以及各种数字媒体中提取文本。这使其成为开发者构建从简单文本读取工具到需要可靠文本扫描与识别能力的复杂数据处理工具的理想基础,全部运行在 Apple 环境中。

该库通过将 Tesseract 的功能封装为简洁、友好的 API,简化了 OCR 的集成。开箱即用即可获得广泛的多语言支持——这是构建国际化应用的关键特性。为确保高精度,SwiftyTesseract 还内置了必要的图像预处理功能,以在识别前提升文本清晰度。此外,开发者可以通过自定义关键的 Tesseract 配置选项(如 OCR 引擎模式和页面分割模式)来实现细粒度控制。易用性、多语言支持以及深度可定制性的组合,使 SwiftyTesseract 成为软件开发者在各种文本识别项目中不可或缺的多功能强大工具。

Previous Next

SwiftyTesseract 入门指南

推荐使用 CocoaPods 安装 SwiftyTesseract。请使用以下命令完成平滑安装。

通过 CocoaPods 安装 SwiftyTesseract

 pod 'SwiftyTesseract' 

您也可以手动安装;直接从 GitHub 仓库下载最新发布文件。

在 Swift 库中对图像执行 OCR

开源的 SwiftyTesseract 库让软件开发者能够轻松加载各种图像并根据需求在 Swift 应用中执行 OCR 操作。您可以使用应用资源中的图像或任何其他来源的图像。库能够识别多种字体的文本,包括衬线体、Arial、无衬线体以及手写体。下面的示例代码展示了开发者如何在 Swift 应用中识别图像中的文本。

如何在 Swift 应用中识别图像文本?

import SwiftyTesseract

// Load the image
let image = UIImage(named: "image.jpg")!

// Create a Tesseract instance
let tesseract = Tesseract()

// Set the language to English
tesseract.language = "eng"

// Set the image
tesseract.image = image

// Recognize the text
tesseract.recognize() { result in
    if let text = result.text {
        print("Recognized text: \(text)")
    } else {
        print("Error recognizing text")
    }
}

图像预处理支持

SwiftyTesseract 库为在 Swift 应用中执行 OCR 前的图像预处理提供了完整支持。例如,您可以将图像转换为灰度、调整大小、改变对比度、去倾斜、二值化等。下面的示例展示了开发者如何在执行 OCR 前对图像进行缩放。此代码示例中,resizeImage 在图像被处理前先对其进行尺寸调整,这在处理高分辨率图像时非常有用。

如何在 Swift 应用中对图像进行预处理后再执行 OCR?

func resizeImage(_ image: UIImage, newSize: CGSize) -> UIImage? {
    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
    image.draw(in: CGRect(origin: .zero, size: newSize))
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return newImage
}

if let resizedImage = resizeImage(image, newSize: CGSize(width: 300, height: 300)) {
    tesseract.performOCR(on: resizedImage) { recognizedText in
        print("Resized Image OCR result: \(recognizedText ?? "No text found")")
    }
}

Swift 库中的多语言 OCR 操作

开源的 SwiftyTesseract 库支持超过 100 种语言的文本识别,包括英语、西班牙语、法语、德语、中文等。您可以在初始化库时设置所需语言。此功能扩展了其在国际用户和多语言处理需求中的应用范围。此外,开发者还能创建自定义词典以提升 OCR 的准确性。下面的示例演示了如何为英语和西班牙语配置库。该代码在处理混合语言文档时非常有用。

如何在 Swift 应用中选择多语言进行 OCR 操作?

let tesseract = SwiftyTesseract(language: [.english, .spanish])

可自定义的 OCR 参数

使用开源 SwiftyTesseract 库,软件开发者可以自定义 OCR 设置,以提升特定文档或语言的识别准确性。它允许开发者微调 OCR 处理,使库能够适应独特或复杂的 OCR 场景。这包括根据文档需求指定语言和 OCR 变量。下面的示例展示了如何自定义 OCR 引擎模式和页面分割模式。

如何通过 Swift API 自定义 OCR 引擎模式和页面分割模式?

let tesseract = SwiftyTesseract(language: .english, engineMode: .lstmOnly)
tesseract.performOCR(on: image, configuration: [.psm(.auto)]) { recognizedString in
    if let recognizedString = recognizedString {
        print("Recognized text with custom PSM: \(recognizedString)")
    }
}

 中国人