目前,我正在使用SWIFT5.4构建一个小型CLI工具,并希望使用“视觉框架”来提取图像中的所有文本。我为完成这一任务而写的这篇文章是由苹果公司提供的,可以找到这里。如您所见,我的代码与Apple提供的示例相同,目前无法工作。
这是编译错误:
error: argument passed to call that takes no arguments
let request = VNRecognizeTextRequest(completion: recognizeTextRequestHandler)这是带有VNRecognizeTextRequest类的代码,在那里,recognizeTextRequestHandler函数被传递给构造函数来处理结果。
@available(macOS 10.13, *)
public func run() throws {
// Get the image from argument and create a UIImage
let file = try Files.File.init(path: arguments[1]).read()
guard let image = UIImage(data: file)?.cgImage else { return }
// request
let imageRequestHandler = VNImageRequestHandler(cgImage: image)
// pass handler to process the result
let request = VNRecognizeTextRequest(completion: recognizeTextRequestHandler)
do {
// Perform the text-recognition request.
try imageRequestHandler.perform([request])
} catch {
print("Unable to perform the requests: \(error).")
}
}传递给VNRecognizeTextRequest的函数
@available(macOS 10.13, *)
func recognizeTextRequestHandler(request: VNRequest, error: Error?){
if #available(macOS 10.15, *) {
guard let observations =
request.results as? [VNRecognizedTextObservation] else {
return
}
let recognizedStrings = observations.compactMap { observation in
// Return the string of the top VNRecognizedText instance.
return observation.topCandidates(1).first?.string
}
// Process the recognized strings.
print(recognizedStrings)
} else {
exit(EXIT_FAILURE)
}谢谢您抽时间见我!如有不清楚之处,请评论。
发布于 2021-06-20 16:25:40
这篇文章已经过时了--应该是completionHandler,而不是completion。取代:
let request = VNRecognizeTextRequest(completion: recognizeTextRequestHandler)..。通过以下方式:
let request = VNRecognizeTextRequest(completionHandler: recognizeTextRequestHandler)发布于 2021-06-20 16:28:26
使用此构造函数
let request = VNRecognizeTextRequest(completionHandler: recognizeTextRequestHandler)https://stackoverflow.com/questions/68057783
复制相似问题