По сути, я использую каркас видения, чтобы найти ключевые слова, которые пользователь ищет в UITextField, но если в данной строке более одного слова, обнаруживает только первое слово. Например, допустим, у меня есть изображение, а текст «in in in in in» будет обнаружен только первый «in», а остальные нет. Только так он обнаружит другие слова, если они находятся на отдельных строках, как на правой стороне изображения. Почему это происходит?
Вот пи c, объясняющий проблему и мой код:
func detectTextHandler(request: VNRequest, error: Error?) {
guard let results = request.results as? [VNRecognizedTextObservation] else {
return
}
DispatchQueue.main.async {
self.previewView.layer.sublayers?.removeSubrange(1...)
for visionResult in results {
guard let candidate = visionResult.topCandidates(1).first else {
continue
}
let words = candidate.string.split{ $0.isWhitespace }.map{ String($0)}
for word in words {
if let wordRange = candidate.string.range(of: word, options: .caseInsensitive),
let boxObservation = try? candidate.boundingBox(for: wordRange) {
if self.searchTextField.text == word
{
print(word)
self.highlightLetters(box: boxObservation)//highlights words
}
}
}
}
}
}