Я использую платформу Vision и хочу иметь возможность использовать UITextField, чтобы найти конкретное c слово в изображении. Например, допустим, я ввожу слово «черный» в текстовое поле, и я хочу, чтобы оно обнаружило это на изображении, которое я имею. Как бы я это сделал? Я использую Vision Framework, и я выяснил, как обнаружить тексты, но застрял в той части, где я могу обнаружить вводимое пользователем слово в текстовом поле.
func startTextDetection() {
let textRequest = VNDetectTextRectanglesRequest(completionHandler: self.detectTextHandler)
let request = VNRecognizeTextRequest(completionHandler: self.detectTextHandler)
request.recognitionLevel = .fast
textRequest.reportCharacterBoxes = true
self.requests = [textRequest]
}
func detectTextHandler(request: VNRequest, error: Error?) {
guard let observations = request.results else {
print("no result")
return
}
let result = observations.map({$0 as? VNTextObservation})
DispatchQueue.main.async() {
self.previewView.layer.sublayers?.removeSubrange(1...)
for region in result {
guard let rg = region else {
continue
}
self.highlightWord(box: rg)
if let boxes = region?.characterBoxes {
for characterBox in boxes {
self.highlightLetters(box: characterBox)
}
}
}
}
}
//when user presses search will search for text in pic.
func textFieldShouldReturn(_ searchTextField: UITextField) -> Bool {
searchTextField.resignFirstResponder()
startTextDetection()
return true
}