Я пытаюсь im p lement Статья Эпштейна ( Обнаружение текста в естественных сценах с преобразованием ширины штриха (2010) ) об обнаружении текста в естественных изображениях. Первый шаг - обнаружение краев.
Внутри текста появляются лишние края. Как их удалить?
Исходное изображение:
Мое обнаружение краев:
В этом примере вы можете видеть лишние края в тексте 'ПОЧЕМУ СПЕШИТЕ'
Я пробовал эти шаги в Matlab:
% contrast enhancement
I_adjust = imadjust(I);
% dilation & erosion
se = strel(ones(3,3));
I_dilate = imdilate(I_adjust, se);
I_final = imerode(I_dilate, se);
% gaussian smoothing
h_mask = fspecial('gaussian');
I_final = imfilter(I_final,h_mask);
figure; imshow(I_final);
BW_canny = edge(I_final,'canny');
figure; imshow(BW_canny);
В соответствии с предложением Велисария, я обнаружил, что фильтр среднего сдвига достаточно хорошо работает для сегментации текстовой области.Теперь я столкнулся с другой проблемой при реализации преобразования Stroke Width (см. Статью Эпштейна).
Ширина обводки хорошо работает с символами вроде 'H''Y' даже для 'S', потому что соответствующие края обычно находятся на постоянном расстоянии, если мы продолжаем движение в направлении градиента.
Задача обозначается символами типа "W". Для одной части левого края 1-го хода вверх мы получаем правый край 2-го подъема в качестве его соответствующего края. В то время как для другой части мы получаем правый край 1-го хода вверх . Это приводит к значительному разбросу ширины штриха в области буквы W, что в соответствии с бумагой приводит к тому, что это называется нетекстовой областью.
Кто-нибудь может предложить какое-нибудь решение?