我正在编写一个视觉识别应用程序,它使用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/