- XCode 8 +
- iOS 8.0 +
To run the example project, clone the repo, and run pod install
from the Example directory first.
DocumentOCR framework uses
- TesseractOCR text recognition of machine readable codes
- PodAsset easy way to use pod assets
- GPUImage helps to crop image from camera
DocumentsOCR is available through CocoaPods. To install it, simply add the following lines to your Podfile:
pod 'TesseractOCRiOS', :git => 'https://github.com/appintheair/Tesseract-OCR-iOS'
pod "DocumentsOCR"
import DocumentsOCR
Create your custom class, which implemets DocumentScannerDelegate
protocol
class ExampleViewController: UIViewController, DocumentScannerDelegate {
// required fucntions:
func documentScanner(_ scanner: DocumentScanner, didFinishScanningWithInfo info: DocumentInfo) {
// do something with DocumentInfo instance
}
func documentScanner(_ scanner: DocumentScanner, didFailWithError error: NSError) {
// handle error
}
//optional functions:
func documentScanner(_ scanner: DocumentScanner, willBeginScanningImages images: [UIImage]) {
// do something with images
}
func documentScanner(_ scanner: DocumentScanner, recognitionProgress progress: Double) {
// present current progress of recognition
}
// some other code here ...
}
Initialize DocumentScanner
instance with references to UIViewController
and DocumentScannerDelegate
var scanner = DocumentScanner(containerVC: self, withDelegate: self)
Optionally you can set how many photos to take and time interval between them:
scanner.photosCount = 10
scanner.takePhotoInterval = 1.0
Scanner instance can present view controller with camera and border (actually, container view controller will do this inside document scanner instance).
func someMethod() {
scanner.presentCameraViewController()
}
After take shoot button pressed, device take photosCount
photos with takePhotoInterval
time interval then these delegate methods call:
func documentScanner(_ scanner: DocumentScanner, willBeginScanningImages images: [UIImage])
When one of the images recognized
func documentScanner(_ scanner: DocumentScanner, recognitionProgress: Double)
Then if images were recognized successfull:
func documentScanner(_ scanner: DocumentScanner, didFinishScanningWithInfo info: DocumentInfo)
If some error happened
func documentScanner(_ scanner: DocumentScanner, didFailWithError error: NSError)
Michael Babaev, [email protected]
DocumentsOCR is available under the MIT license. See the LICENSE file for more info.
- documentation
- fix minor UI defects in example
- code refactoring
- pod string for all versions (without using ~> version")
- improve mr code recognition
- check visa document recognitions
- take many pictures when "take shoot" button pressed, then make best machine readable code
- enable bitcode for tesseract framework
- tests for camera shoots