Я использую инфраструктуру iOS Vision для выполнения OCR через VNRecognizeTextRequest
вызов, и я пытаюсь найти каждого отдельного символа в результирующих VNRecognizedText
наблюдениях. Однако, когда я вызываю метод boundingBox(for range: Range<String.Index>)
для любого объекта VNRecognizedText
и для любого допустимого диапазона в пределах распознанного текста, я получаю ту же ограничивающую рамку. Этот ограничивающий прямоугольник соответствует ограничивающему прямоугольнику всей строки.
Не понимаю ли я метод boundingBox(for:)
или есть какой-то другой способ получить информацию о дискретном местоположении для отдельных символов в пределах распознанного текстового наблюдения?
Заранее спасибо!
Редактировать:
Изучив это подробнее, я понял, что существует какая-то связь с группами слов и пробелами. Рассмотрим распознанное текстовое наблюдение со строковым значением «Foo bar». Вызов boundingBox(for:)
для каждого символа в «Foo» возвращает точно такую же ограничивающую рамку, которая, исходя из размеров, кажется, соответствует всей подстроке «Foo» вместо одного символа, диапазон которого мы передаем в метод boundingBox
. Затем, в другом странном поведении, boundingBox
для символа пробела - это просто пустая область в начале координат, ребра которой не соответствуют подстрокам по обе стороны от нее. Наконец, поведение для второй подстроки такое же, как и для первого: каждый символ в "баре" имеет одну и ту же ограничивающую рамку.