所以我想拍一些文字的照片,但是当使用tesseract时它会给我以下错误:
actual_tessdata_num_entries_< = TESSDATA_NUM_ENTRIES:错误:断言 失败:在文件tessdatamanager.cpp中,第53行
所以当ViewController1
抓取图片时,会将其发送到TextViewController
,如下所示:
从ViewController1
发送:
extension CameraViewController: AVCapturePhotoCaptureDelegate {
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
if let imageData = photo.fileDataRepresentation() {
self.image = UIImage(data: imageData)
let text = TextViewController()
text.image = self.image
self.present(text, animated: true, completion: nil)
}
}
}
它应该在TextViewController()
中收到并显示在textView
上,但它只是崩溃了:
@IBOutlet weak var textView: UITextView!
var image: UIImage?
override func viewDidLoad() {
super.viewDidLoad()
if let tesseract = G8Tesseract(language: "eng") {
tesseract.delegate = self
tesseract.image = self.image
tesseract.recognize()
textView.text = tesseract.recognizedText
}
}
答案 0 :(得分:0)
实际上,该错误与您的代码无关。您在代码中链接的.traineddata无法使用当前版本的Tesseract-OCR-iOS。
因为pod 'TesseractOCRiOS', '4.0.0'
与tesseract引擎版本3.03-rc1一起运行。如果您使用来自源tessdata的最新训练数据文件,则它仅适用于Tesseract 4.0.0而不适用于3.03-rc1。
如果您只想使用eng.traineddata,可以查看解决方案here。另一种选择是自己训练[lang] .traineddata并且tesseract是完全可训练的。如果需要,可以查看tesseract training process。