构建CameraX,调用analyze() 方法并传递图像,然后使用close() 方法关闭(删除)。从此图像 FirebaseVisionImage 被创建并传递以进行处理(文本识别)。代码示例和代码实验室不同,不使用 CameraX 或使用旧 API 版本实现 TextRecognition。
override fun analyze(imageProxy: ImageProxy) {
if (isValidText) {
imageProxy.close()
return
}
val mediaImage = imageProxy.image // requires annotation
val degrees = imageProxy.imageInfo.rotationDegrees
val rotation = rotationDegreesToFirebaseRotation(degrees)
if (mediaImage != null) {
runTextRecognition(mediaImage, rotation) // line 44
}
imageProxy.close()
}
private fun runTextRecognition(mediaImage: Image, rotation: Int) {
// Create FirebaseVisionImage from frame
val visionImage = FirebaseVisionImage.fromMediaImage(mediaImage, rotation) // line 64
val recognizer = FirebaseVision.getInstance()
.onDeviceTextRecognizer
recognizer.processImage(visionImage)
.addOnSuccessListener { texts ->
processTextRecognitionResult(texts!!, …Run Code Online (Sandbox Code Playgroud) ocr out-of-memory text-recognition firebase-mlkit android-camerax