Я пытаюсь im p lement Эпштейн-бумага (Обнаружение текста в естественных сценах с преобразованием ширины штриха (2010)) при обнаружении текста в естественных изображениях. Первый шаг - обнаружение края.
Я получаю дополнительные края внутри своего текста. Как удалить их?
Исходное изображение:
Мое обнаружение края:
В этом примере вы можете увидеть дополнительные ребра в тексте "WHY HURRY"
Я пробовал эти шаги в 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);
Проблема № 2:
В соответствии с предложением belisarius я обнаружил, что фильтр с сильным сдвигом работает достаточно хорошо для сегментации текстового региона. Теперь я столкнулся с другой проблемой при реализации преобразования ширины штриха (посмотрите на бумагу Эпштейна).
Ширина штриха хорошо работает с символами типа "H''Y" даже для "S", потому что соответствующие ребра обычно находятся на постоянном расстоянии, если мы будем двигаться в направлении градиента.
Проблема возникает в таких символах, как "W". Для одной части левого края 1-го восходящего хода мы получаем правый край 2-го upstoke как его корреспондирующий край. В то время как для другой части мы получаем правый край 1-го восходящего хода. Это знаменует значительную дисперсию ширины штриха области W, что приводит к тому, что это называется нетекстовой областью в соответствии с бумагой.
Может ли кто-нибудь предложить какое-либо решение?