【问题标题】:Firebase Barcode Scanner for IOS适用于 IOS 的 Firebase 条码扫描器
【发布时间】:2020-12-31 17:50:31
【问题描述】:

所以我正在尝试将 Firebase 的条形码扫描 API 用于我的 IOS 应用程序。一切都运行无错误(目前),但我不知道一旦图片被发送到 .detect 函数后如何访问条形码信息。

在 firebase 网站上的文档中说:“如果条形码识别操作成功,检测器会返回一个 VisionBarcode 对象数组。每个 VisionBarcode 对象代表在图像中检测到的条形码。”

有人可以帮助我了解如何访问条形码数组吗?下面我提供了一个文档链接(我从中获取代码)和我的代码图片。

Code

https://firebase.google.com/docs/ml-kit/ios/read-barcodes#swift_7

    func scanBarcode(userImage: UIImage){
    print("SCAN")
    let format = VisionBarcodeFormat.all
    let barcodeOptions = VisionBarcodeDetectorOptions(formats: format)
    var vision = Vision.vision()
    let barcodeDetector = vision.barcodeDetector(options: barcodeOptions)
    let visionImage = VisionImage(image: userImage)
    barcodeDetector.detect(in: visionImage) { features, error in
      guard error == nil, let features = features, !features.isEmpty else {
      //  print(barcodes)
        return
      }
        print("unsuccesful scan")
      // ...
    }
    
}

【问题讨论】:

    标签: swift xcode firebase barcode


    【解决方案1】:

    你成功扫描的逻辑有点不对劲:你需要在你的后卫之后打印特征

    func scanBarcode(userImage: UIImage){
        print("SCAN")
        let format = VisionBarcodeFormat.all
        let barcodeOptions = VisionBarcodeDetectorOptions(formats: format)
        var vision = Vision.vision()
        let barcodeDetector = vision.barcodeDetector(options: barcodeOptions)
        let visionImage = VisionImage(image: userImage)
        barcodeDetector.detect(in: visionImage) { features, error in
            guard error == nil, let features = features, !features.isEmpty else {
                print("unsuccessful scan, either there is an error, or features is empty")
                return
            }
            print("successful scan")
            print(features)
            // ...
         }
    }
    

    【讨论】:

      最近更新 更多