SwiftyTesseractRTE 2.0.0

SwiftyTesseractRTE 2.0.0

Steven Sherry维护。



SwiftyTesseractRTE

pod-version platforms swift-version Build Status

SwiftyTesseractRTE 目前只能用于竖屏模式。

SwiftyTesseractRTE-example

关于 SwiftyTesseractRTE

SwiftyTesseractRTE (SwiftyTesseract 实时引擎) 是基于 SwiftyTesseract 开发的实时光学字符识别库。

Swift 版本 SwiftyTesseractRTE 版本
4.0 1.x.x
4.1 1.x.x
4.2 2.x.x

在项目中使用 SwiftyTesseractRTE

导入必要的模块

import SwiftyTesseract
import SwiftyTesseractRTE

创建一个RealTimeEngine实例并分配它的regionOfInterest属性。

var realTimeEngine: RealTimeEngine!

@IBOutlet weak var previewView: UIView!
@IBOutlet weak var regionOfInterest: UIView! // A subview of previewView

override func viewDidLoad() {
  let swiftyTesseract = SwiftyTesseract(language: .english)
  realTimeEngine = RealTimeEngine(swiftyTesseract: swiftyTesseract, desiredReliability: .verifiable) { recognizedString in
    // Do something with the recognized string
  }
}

override func viewDidLayoutSubviews() {
  // Must occur during viewDidLayoutSubviews() - Autolayout constraints are not set in viewDidLoad()
  realTimeEngine.bindPreviewLayer(to: previewView)
  realTimeEngine.regionOfInterest = regionOfInterest.frame

  // Only neccessary if providing a visual cue where the regionOfInterest is to your end user
  previewView.addSublayer(regionOfInterest.layer)
}

光学字符识别和相机预览

SwiftyTesseractRTE允许在不不断尝试识别文本的情况下显示相机预览。这允许您在开始扫描之前让最终用户对齐要扫描的文本。默认情况下,recognitionIsActive属性设置为true,因此为了防止立即开始扫描,在实例化RealTimeEngine并在调用startPreview()之前将recognitionIsActive设置为false。调用stopPreview()也会防止尝试识别,因为没有可扫描的输入相机帧。

开始和停止识别

// Starts optical character recognition
realTimeEngine.recognitionIsActive = true

// Stops optical character recognition
realTimeEngine.recognitionIsActive = false

开始和停止相机预览

// Starts camera preview
realTimeEngine.startPreview()

// Stops camera preview
realTimeEngine.stopPreview()

相机权限

对于相机权限,您需要在您的 Info.plist 文件中添加 Privacy - Camera Usage Description 权限。如果您正在使用默认的 SwiftyTesseractRTE AVManager 实现,则在生成相机预览时将请求权限。如果提供了自定义的 AVManager 实现,则开发者需要自行实现权限请求。对于大多数用例,默认的 AVManager 实现是首选的,只有当需要同时从相机访问 CMSampleBuffer 以运行 OCR 时,才应提供自定义实现。

RealTimeEngine 的 onRecognitionComplete 闭包属性

从 SwiftyTesseractRTE 2.0 开始,SwiftyTesseractRTEDelegate 协议已被名为 onRecognitionComplete 的闭包属性取代,该属性的类型是 ((String) -> ())?。这可以通过几种方式分配

实例化时的尾随闭包

RealTimeEngine(swiftyTesseract: swiftyTesseract, desiredReliability: .verifiable) { recognizedString in
    // Do something with the recognized string
}

传递函数参数

RealTimeEngine(swiftyTesseract: swiftyTesseract, desiredReliability: .verifiable, onRecognitionComplete: aFunction)

属性注入

let realTimeEngine = RealTimeEngine(swiftyTesseract: swiftyTesseract, desiredReliability: .verifiable)
// Anonymous closure
realTimeEngine.onRecognitionComplete = { recognizedString in 
  // Do something with the recognized string
}
// Named closure
realTimeEngine.onRecognitionComplete = aFunction

关于仅按肖像的照片的注意事项

SwiftyTesseractRTE目前只能用于纵向模式,但这并不意味着您的整个应用程序也必须仅限于纵向模式。请参考示例项目的AppDelegate(特别是添加shouldRotate布尔型成员变量和实现application(_:supportedInterfaceOrientationsFor:))以及ViewController文件(特别是viewWillAppear()viewWillDisappear()方法)以了解如何使单个视图控制器仅限于纵向模式。

安装

CocoaPods

使用pod --version测试:1.3.1

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'SwiftyTesseractRTE',    '~> 2.0'
end

替换YOUR_TARGET_NAME,然后在每个Podfile目录下输入

$ pod install

将SwiftyTesseract设置为SwiftyTesseractRTE的使用

请参阅SwiftyTesseract的附加配置部分,以了解如何正确设置SwiftyTesseract以便在您的项目中使用。

文档

SwiftyTesseractRTE的官方文档可以在这里找到

欢迎贡献

贡献总是欢迎的!请参阅SwiftyTesseractRTE的贡献以获取有关创建问题和张开pull请求的完整指南。