Как определить текстовую область на изображении?

Имея изображение (например, газету, отсканированную газету, журнал и т. д.), как определить область, содержащую текст? Мне нужно только знать регион и удалить его, распознавание текста делать не нужно.

Цель состоит в том, чтобы удалить эти текстовые области, чтобы ускорить процедуру извлечения функций, поскольку эти текстовые области не имеют смысла для моего приложения. Кто-нибудь знает, как это сделать?

Кстати, будет хорошо, если это можно будет сделать в Matlab!

Лучший!

введите здесь описание изображения


person KimLeung    schedule 28.10.2014    source источник
comment
Не могли бы вы показать пример изображения? Текст имеет однородный фон?   -  person M Oehm    schedule 28.10.2014
comment
Привет, я загрузил один пример изображения. Какие-либо предложения?   -  person KimLeung    schedule 06.11.2014


Ответы (4)


Вы можете использовать Преобразование ширины штриха (SWT), чтобы выделить текстовые регионы. Используя мою реализацию mex, опубликованную здесь, вы можете

img = imread('http://i.stack.imgur.com/Eyepc.jpg');
[swt swtcc] = SWT( img, 0, 10 );

Игра с внутренними параметрами извлечения карты краев и фильтрации изображений в SWT.m может помочь вам настроить результирующую маску в соответствии с вашими потребностями.

Чтобы получить этот результат: введите здесь описание изображенияЯ использовал эти параметры для вычисления карты границ в SWT.m:

edgeMap = single( edge( img, 'canny', [0.05 0.25] ) );
person Shai    schedule 19.11.2014

Обнаружение текста в естественных изображениях является активной областью исследований сообщества компьютерного зрения. Вы можете обратиться к документам ICDAR. Но в вашем случае я думаю, что это должно быть достаточно просто. Поскольку у вас есть текст из газеты или журнала, он должен быть фиксированного размера и горизонтально ориентирован.

Таким образом, вы можете применить окно сканирования фиксированного размера, скажем, 32x32. Обучите его на обучающем наборе данных ICDAR 2003 для положительных окон, содержащих текст. Вы можете использовать небольшой набор функций цвета и градиентов и обучить SVM, который даст положительный или отрицательный результат для окна с текстом или без него.

Для справки перейдите по ссылке http://crypto.stanford.edu/~dwu4/ICDAR2011.pdf . Для кода вы можете попробовать их домашние страницы

person Mujtaba Hasan    schedule 28.10.2014

Этот пример в панели инструментов системы компьютерного зрения в Matlab показано, как обнаруживать текст с использованием областей MSER.

person Dima    schedule 28.10.2014

Если ваше изображение хорошо бинаризовано и вы знаете обычный размер текста, вы можете использовать файл HorizontalRunLengthSmoothing и VerticalRunLengthSmoothing. Они реализованы в библиотеке с открытым исходным кодом Aforge.Net, но их легко реализовать в Matlab. Пересечение результирующего изображения из этих алгоритмов даст вам хорошее представление о том, что область содержит текст, она не идеальна, но работает быстро.

person rold2007    schedule 29.10.2014