Как вы сегментируете изображение, содержащее текст?

У меня есть изображение, содержащее текст, и я хочу вырезать каждую букву из изображения. Как мне добиться этого с помощью MATLAB?


person طالبة علم    schedule 27.09.2013    source источник


Ответы (2)


С набором инструментов для обработки изображений

Если у вас есть набор инструментов, вы можете быстро идентифицировать каждую отдельную букву на вашем изображении.

Начиная с изображения в градациях серого, вы должны найти порог сегментации с

level = graythresh(Img);

Затем преобразуйте изображение в двоичный файл с помощью

Img = im2bw(Img,level);

С

Cc = bwconncomp(Img);

вы получаете структуру, которая содержит линейные индексы каждого идентифицированного компонента в его поле

Cc.PixelIdxList

См. документацию по этим функциям, чтобы настроить сегментацию в соответствии с вашими потребностями.

Без набора инструментов для обработки изображений

Вы должны реализовать алгоритм связанного компонента самостоятельно.

Из документации Matlab:

>The basic steps in finding the connected components are:
>
>1. Search for the next unlabeled pixel, p.
>2. Use a flood-fill algorithm to label all the pixels in the connected component containing p.
>3. Repeat steps 1 and 2 until all the pixels are labeled.
person Marius    schedule 27.09.2013

Проще всего было бы проверить цвет:

Узнай, какого цвета буквы.

Предположим, это ваше изображение, содержащее букву T, написанную цветом 5:

myImage = round(4*rand(6));
myImage(1:2,:) = 5; %Drawing the top bar of the T
myImage(:,3:4) = 5; %Drawing the leg of the t
myColor = 5;

Теперь, чтобы сохранить только письмо (/ письма):

myImage(myImage~=myColor) = NaN

Теперь вы можете построить его, используя

surf(myImage)

Не так уж сложно расширить это до цветового диапазона (или до набора цветов RGB, в зависимости от того, какой формат у вашего изображения).

person Dennis Jaheruddin    schedule 27.09.2013
comment
@ طالبةعلم Я расширил свой пример, чтобы сделать его более осмысленным, теперь он действительно содержит букву. - person Dennis Jaheruddin; 27.09.2013
comment
Большое спасибо - person طالبة علم; 27.09.2013