Как выделить фрагмент текста на изображении, полученном с камеры - PullRequest
2 голосов
/ 28 декабря 2011

Я работаю над проектом OCR. Моя первая задача - взять изображение с камеры iPhone, а затем найти определенное слово на изображении.

Ниже приведен пример изображения, сделанного моим устройством, теперь я хочу найти положение слова "STATIONERY" и выделить его желтым прямоугольником на изображении.

Как я могу это сделать? Нужно ли для этого сначала использовать OCR SDK (например, ABBYY) или я могу сделать это иначе?

screenshot of image taken by camera

1 Ответ

3 голосов
/ 28 декабря 2011

Если вам нужно получить координаты конкретного слова, конечно, сначала вам нужно выполнить OCR. Имейте в виду, что у вас, вероятно, будут некоторые трудности с этим патикулярным изображением, которое вы прикрепили из-за его нижней части. OCR отлично справится с похожим фоном.

Что касается OCR SDK - попробуйте ABBYY Cloud OCR SDK , это облачный OCR SDK, недавно выпущенный ABBYY. Он находится в бета-версии, поэтому сейчас он полностью бесплатен и имеет готовые примеры кода iOS .

Он имеет встроенную функцию извлечения координат в формате xml, я обрезал нижнюю часть вашего изображения, чтобы фон был простым, и отправил его в SDK, вот ответ, который я получил:

<charParams l="35" t="39" r="73" b="83" charConfidence="100">S</charParams>
<charParams l="77" t="39" r="117" b="83" charConfidence="100">T</charParams>
<charParams l="120" t="40" r="164" b="83" charConfidence="100">A</charParams>
<charParams l="165" t="40" r="204" b="83" charConfidence="100">T</charParams>
<charParams l="211" t="40" r="225" b="83" charConfidence="100">I</charParams>
<charParams l="231" t="40" r="276" b="84" charConfidence="100">O</charParams>
<charParams l="285" t="41" r="325" b="84" charConfidence="100">N</charParams>
<charParams l="334" t="42" r="370" b="84" charConfidence="100">E</charParams>
<charParams l="377" t="42" r="419" b="85" charConfidence="100">R</charParams>
<charParams l="428" t="42" r="469" b="84" charConfidence="100">Y</charParams>

Эти параметры "l", "t", "r", "b" означают левый, верхний, правый и нижний, они описывают прямоугольник каждого символа с верхним левым и нижним правым углом. Я верю, что это именно то, что вы ищете.

...