我正在编写一个视觉识别应用程序,它使用visual recognition.classify对图像进行分类。我已经配置了Swift环境,并且在包含来自internet的URL时无法对图像进行分类:
我现在已经创建了一个应用程序,它使用相机和照片库允许用户拍摄照片并对其进行分类。不过,当从设备向VisualRecognition服务传递文件URL时,我遇到了一些问题。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {

        imageView.image = image
        imagePicker.dismiss(animated: true, completion: nil)

        let visualRecongnition = VisualRecognition(version: version, apiKey: apiKey)

        let imageData = image.jpegData(compressionQuality: 0.01)

        let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

        let fileURL = documentURL.appendingPathComponent("tempImage.jpg")

        try? imageData?.write(to: fileURL, options: [])


        visualRecongnition.classify(imageFile: fileURL, success: { (classifiedImages) in
            print(classifiedImages)
        }) // getting error here " Missing argument for parameter 'completionHandler' in call"

    }else {

        print("There was an error picking Image")
    }
}

我甚至尝试将NSURL直接包含到classify调用中,就像处理外部URL一样,但仍然遇到相同的错误。很想知道如何使用设备中的本地图像来成功地对其进行分类

最佳答案

问题是您对classify的调用与classify方法的签名不对应。在这一行中:

visualRecongnition.classify(imageFile: fileURL, success: { (classifiedImages) in

success更改为completionHandler,并在闭包中添加第二个参数(即使忽略它),如下所示:
visualRecongnition.classify(imageFile: fileURL, completionHandler: { classifiedImages,_ in

关于swift - 使用设备中的本地镜像以成功对其进行分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53991737/

10-12 03:07