小编Sor*_*rel的帖子

为什么 FirebaseVisionImage.fromMediaImage() 会产生 OutOfMemoryError

构建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

7
推荐指数
1
解决办法
753
查看次数