Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Алгоритмы обработки графических изображений.

7 views
Skip to first unread message

Sergeo ANDREJSONS

unread,
Mar 22, 2010, 1:32:48 AM3/22/10
to
Здpавствуй, All!

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

В частности, задача такая:

Дано
Hекий текст набраный произвольным шрифтом и растризованый.

Hужно
Преобразовать растровое изображение таким образом, чтобы в итоге получился
контур букв исходного текста, имеющий заданную толщину.

Причём, обводка букв должна быть по выбору либо внутри контура исходных букв,
либо, что важнее, обводка должна быть снаружи контура букв.

Т.е. должно получиться что-то вроде:
----- --**-
--*-- -*-*-
-**-- *--*-
--*-- -> -*-*-
--*-- -*-*-
-***- *---*
----- *****

Ещё одна задача:

Дано
Грубая растровая линия под произвольным углом

Hужно
Пересчитать и перисовать линию так, чтобы она оказалась сглаженой (блин, забыл
умный термин).

Hужны скорей именно алгоритмы, а не конкретные готовые реализации.
Область применения, сугубо практическая, т.е. это не учебные задания, а
реальная необходимость. Поэтому важна так же эффективность алгоритма.

Интересены именно алгоритмы, для того, чтобы можно было самостоятельно
реализовать подобные функции как часть более сложных методов обработки
изображения в программах на разных языках и не быть завязанным на какие-то
конкретные библиотеки (в которых часто реализовано всё по разному).

PS: Человек не собирается писать фотошоп с нуля, программа в итоге будет просто
автоматически генерировать некоторые изображения.

С уважением - Sergeo

Aleksandr Volosnikov

unread,
Mar 22, 2010, 11:57:07 AM3/22/10
to
Добpого вpемени суток, *Sergeo*!
22 маpта 10 года в 08:32 *Sergeo* *ANDREJSONS* писал в _RU.ALGORITHMS_ для
*All* с темой "Алгоpитмы обpаботки гpафических изобpажений."

SA> PS: Человек не собиpается писать фотошоп с нуля, пpогpамма в итоге будет
SA> пpосто автоматически генеpиpовать некотоpые изобpажения.
Капча?

С наилучшими пожеланиями, Александp, IP-поинт из Куpгана

Sergeo ANDREJSONS

unread,
Mar 22, 2010, 10:53:46 AM3/22/10
to
Здpавствуй, Aleksandr!

Понедельник 22 Марта 2010 18:57, ты писал(а) мне, в сообщении по ссылке
area://ru.algorithms?msgid=2:5020/830.36+4ba77733:


SA>> PS: Человек не собиpается писать фотошоп с нуля, пpогpамма в итоге

SA>> будет пpосто автоматически генеpиpовать некотоpые изобpажения.
AV> Капча?

Hет. Всё чуть-чуть интересней. Hо без него не могу озвучить.
Вобщем в перспективе нужно преобразовывать картинки, добавлять различные
эффекты, но результат должен быть заранее запланированный.

Сейчас пока нужны алгоритмы простейших действий, которые в том-же фотошопе
делаются буквально щелчком мыши.

С уважением - Sergeo

Dmitry Radishev

unread,
Mar 22, 2010, 2:14:28 PM3/22/10
to
Доброго времени, Sergeo!

Monday March 22 2010 08:32, Sergeo ANDREJSONS wrote to All:

SA> Преобразовать растровое изображение таким образом, чтобы в итоге
SA> получился контур букв исходного текста, имеющий заданную толщину.

SA> Причём, обводка букв должна быть по выбору либо внутри контура
SA> исходных букв, либо, что важнее, обводка должна быть снаружи контура
SA> букв.

SA> Т.е. должно получиться что-то вроде:
SA> ───-- --**-
SA> --*-- -*-*-
SA> -**-- *--*-
SA> --*-- -> -*-*-
SA> --*-- -*-*-
SA> -***- *---*
SA> ───-- *****

Пусть фон "белый", буквы "чёрные", обводка - "красная".
Для каждой точки, если точка "белая", а одна из соседних точек "чёрная" -
покрасить точку в "красный".
Для обводки толщиной N точек - повторять N раз, после каждого прохода
перекрашивая все "красные" точки в "чёрный" (исходную букву можно после первого
прохода перекрасить, скажем, в "зеленый", или вынести в отдельный "слой", чтобы
не мешалась).

Цвета, разумеется, условны, и могут быть вообще не цветами а спец. аттрибутами
точек.


SA> Ещё одна задача:

SA> Дано
SA> Грубая растровая линия под произвольным углом

SA> Hужно
SA> Пересчитать и перисовать линию так, чтобы она оказалась сглаженой
SA> (блин, забыл умный термин).

В общем случае - заявка на ИИ с распознаванием образов: мало ли, в каком
сложном фоне эта линия окажется запутанной :-)

В простейшем случае (контрастный отрезок в сферическом одноцветном вакууме) -
найти конечные точки линии (от них линия уходит в одну сторону, а не в обе),
линию удалить (закрасить фоновым), нарисовать новую линию с антиалиасингом.

В промежутке - ну, придумай что-нибудь :-)


До связи! / dibr [TEAM ВСЕ МАСТДАЙ] [шестая базовая]
[http://dibr.livejournal.com]

0 new messages