Трёхмерная графика с нуля. Часть 1: трассировка лучей





Переводим в векторное изображение

Открываем «Адоб Иллюстратор». Нажимаем «Файл», затем «Открыть». После нужно кликнуть по изображению, используя функцию «Выделение». И приступаем непосредственно к трассировке. В «Иллюстраторе» эту функцию найти можно, нажав на «Объект», далее в выпадающем меню выбираем пункт «Трассировка». Есть еще одна причина, объясняющая, почему нельзя оставить изображение в формате GIF. Осуществляя трассировку в «Иллюстраторе», мы конвертируем растровое изображение в векторное. Это позволяет в дальнейшем не зависеть от расширения. Можно менять масштаб картинки множество раз, ее качество от этого не пострадает. Важно помнить о том, что изначальная картинка должна быть максимально контрастной. На ней не должно быть много оттенков, полутонов Именно поэтому идеальным вариантом является рисунок, выполненный тушью или чернилами. Создавать эскиз в цвете не имеет смысла. Он должен быть четким, черно-белым. Что такое ручная трассировка в «Иллюстраторе»? Это использование различных инструментов («Перо», «Кисть») для придания четкости рисунку.

Сцена

сцену

Часть I: трассировка лучей

обязаныШвейцарский ландшафтГрубая аппроксимация ландшафта
Для каждого пикселя холста
    Закрасить его нужным цветом
Разместить глаз и рамку в нужных местах
Для каждого пикселя холста
    Определить квадрат сетки, соответствующий этому пикселю
    Определить цвет, видимый сквозь этот квадрат
    Закрасить пиксель этим цветом

Основы трассировки лучей

сейчасположением камерыокном просмотра (viewport)областью видимости (field of view)
Разместить глаз и рамку в нужных местах (1)
Для каждого пикселя холста
    Определить квадрат сетки, соответствующий этому пикселю (2)
    Определить цвет, видимый сквозь этот квадрат (3)
    Закрасить пиксель этим цветом (4)

Сканируем

Когда скетч готов, его следует отсканировать. Сделать это можно с помощью фотоаппарата или телефона. Желательно, конечно, чтобы качество аппарата было максимально высоким. Полученное изображение в формате GIF следует перенести на компьютер. Перед сканированием желательно контуры эскиза обвести чернилами или черной гелевой ручкой. О том, для чего это нужно делать, сказано ниже. На готовом изображении в формате GIF, сделанном путем фотографирования рисунка, фон часто получается сероватым. Но этот недостаток легко исправить. В любом графическом редакторе присутствуют функции «Яркость» и «Контраст». Улучшить качество фотографии может и такая несложная программа, как «Фото Скайп». После того как в редактор загружено изображение, необходимо воспользоваться функциями «Углубить» и «Осветлить» (кнопка «Яркость, цвет»). Но во многом конечный результат зависит от качества исходного рисунка.

Комбинирование фуункций Image Trace с Phantasm

Функция Image Trace предназначена для преобразования растровых изображений в векторные объекты. Эта функция была существенно усовершенствована, начиная с Adobe Illustrator CS6, благодаря внедрению Adobe Mercury Performance System. Давайте посмотрим, как это работает. В качестве объекта для трассировки я буду использовать Pink rose с Shutterstock. Запускаем Adobe Illustrator, затем создаем новый документ (Cmd/Ctrl + N). Теперь вставим в него изображение (File > Place…). Для применения функции Image Trace мы можем воспользоваться соответствующей кнопкой и одним из пресетов в панели Control. Для тех же целей предназначена панель Image Trace (Window > Image Trace), которая как вы можете видеть, содержит более десятка опций. Умелое использование этих опций позволяет получить действительно превосходный результат. Однако Phantasm позволяет нам получить дополнительные инструменты контроля над векторным изображением в процессе автоматической трассировки. Например, мы можем использовать функцию Phantasm Levels (Effect > Phantasm > Levels…). Она позволяет вам перемещать черный, белый и серый слайдер, контролируя яркостью тонов всего цветового диапазона. Или вы можете использовать функцию Phantasm Curves (Effect > Phantasm > Curves…)  для более интуитивно понятной и гибкой тоновой коррекции. Вы даже можете перекрашивать часть или все изображение при помощи Phantasm Hue/Saturation (Effect > Phantasm > Hue/Saturation…). Все эти инструменты цветовой коррекции хорошо знакомы пользователям Photoshop, но при помощи Phantasm мы работаем с результатомтрассировки прямо в Adobe Illustrator. Применение Phantasm эффектов позволяет получить доступ к их параметрам в любое время в панели Appearance. Вы можете одновременно использовать несколько эффектов и управлять последовательностью их применения. При этом у вас по-прежнему остается доступ ко всем опциям функции Image Trace. После того, как все настройки будут произведены, нажимаем на кнопку Expand в панели Control. Теперь мы получили 100% вектор. И даже после конвертации растрового изображения в векторные объекты мы сохранили примененные эффекты Phantasm. Это означает, что мы можем продолжить управлять их опциями. Надеюсь, вы убедились в мощности симбиоза Phantasm и стандартной функции Image Trace. Более детальную информацию об инструментах Phantasm вы можете получить из статьи — Настройка цветов векторных объектов при помощи Phantasm и Illustrator

TraceIT

Производитель: Pangolin Laser Systems, Inc. Ссылка: http://www.pangolin.com/LA_Studio/TraceIT.htm TraceIT — довольно интересная программа, использующая оригинальные алгоритмы трассировки (рис. 1). Загруженное в нее изображение сначала подвергается обработке фильтрами для очистки от «мусора» (noise, color noise), после чего уже трассируется. Интересная особенность — помимо обработки изображений в распространенных форматах BMP, GIF, TIF, JPG, PSD и пр., есть возможность загружать видеофайлы в форматах AVI, MOV или MPEG и обрабатывать только выбранные кадры, какой­либо диапазон или весь видеофайл целиком. Сохранить результат можно в десяток форматов, в том числе в BMP, JPG и EMF. Рис . 1. TraceIT

Суперсэмплинг

квадрата

Псевдокод трассировщика лучей

CanvasToViewport(x, y) {
    return (x*Vw/Cw, y*Vh/Ch, d)
}


ReflectRay(R, N) {
    return 2*N*dot(N, R) - R;
}


ComputeLighting(P, N, V, s) {
    i = 0.0
    for light in scene.Lights {
        if light.type == ambient {
            i += light.intensity
        } else {
            if light.type == point {
                L = light.position - P
                t_max = 1
            } else {
                L = light.direction
                t_max = inf
            }

            # Проверка теней
            shadow_sphere, shadow_t = ClosestIntersection(P, L, 0.001, t_max)
            if shadow_sphere != NULL
                continue

            # Диффузность
            n_dot_l = dot(N, L)
            if n_dot_l > 0
                i += light.intensity*n_dot_l/(length(N)*length(L))

            # Блеск
            if s != -1 {
                R = ReflectRay(L, N)
                r_dot_v = dot(R, V)
                if r_dot_v > 0
                    i += light.intensity*pow(r_dot_v/(length(R)*length(V)), s)
            }
        }
    }
    return i
}


ClosestIntersection(O, D, t_min, t_max) {
    closest_t = inf
    closest_sphere = NULL
    for sphere in scene.Spheres {
        t1, t2 = IntersectRaySphere(O, D, sphere)
        if t1 in  and t1 < closest_t
            closest_t = t1
            closest_sphere = sphere
        if t2 in  and t2 < closest_t
            closest_t = t2
            closest_sphere = sphere
    }
    return closest_sphere, closest_t
}


TraceRay(O, D, t_min, t_max, depth) {
    closest_sphere, closest_t = ClosestIntersection(O, D, t_min, t_max)

    if closest_sphere == NULL
        return BACKGROUND_COLOR

    # Вычисление локального цвета
    P = O + closest_t*D  # Вычисление точки пересечения
    N = P - closest_sphere.center  # Вычисление нормали сферы в точке пересечения
    N = N / length(N)
    local_color = closest_sphere.color*ComputeLighting(P, N, -D, sphere.specular)

    # Если мы достигли предела рекурсии или объект не отражающий, то мы закончили
    r = closest_sphere.reflective
    if depth <= 0 or r <= 0:
        return local_color

    # Вычисление отражённого цвета
    R = ReflectRay(-D, N)
    reflected_color = TraceRay(P, R, 0.001, inf, depth - 1)

    return local_color*(1 - r) + reflected_color*r
}


for x in [-Cw/2, Cw/2] {
    for y in [-Ch/2, Ch/2] {
        D = camera.rotation * CanvasToViewport(x, y)
        color = TraceRay(camera.position, D, 1, inf)
        canvas.PutPixel(x, y, color)
    }
}
viewport_size = 1 x 1
projection_plane_d = 1

sphere {
    center = (0, -1, 3)
    radius = 1
    color = (255, 0, 0)  # Красный
    specular = 500  # Блестящий
    reflective = 0.2  # Немного отражающий
}
sphere {
    center = (-2, 1, 3)
    radius = 1
    color = (0, 0, 255)  # Синий
    specular = 500  # Блестящий
    reflective = 0.3  # Немного более отражающий
}
sphere {
    center = (2, 1, 3)
    radius = 1
    color = (0, 255, 0)  # Зелёный
    specular = 10  # Немного блестящий
    reflective = 0.4  # Ещё более отражающий
}
sphere {
    color = (255, 255, 0)  # Жёлтый
    center = (0, -5001, 0)
    radius = 5000
    specular = 1000  # Очень блестящий
    reflective = 0.5  # Наполовину отражающий
}


light {
    type = ambient
    intensity = 0.2
}
light {
    type = point
    intensity = 0.6
    position = (2, 1, 0)
}
light {
    type = directional
    intensity = 0.2
    direction = (1, 4, 4)
}

Декоративные методы трассировки. Подготовка пиксельных изображений для трассировки.

Указанные выше методы трассировки являются основными, но некоторые программы предлагают и другие способы трассировки, которые обеспечивают разнообразные декоративные принципы.
  • Метод «эскиз» (Sketch) является векторным художественным фильтром и предназначен для имитации штрихового рисунка, совокупности штрихов которого расположены на нескольких слоях и взаимно пересекаются. Общий вид получаемого рисунка напоминает очень упрощенную гравюру на металле.
  • Методы «мозаика» (Mosaic) и «объемная мозаика» (3D Mosaic) являются векторными художественными фильтрами и предназначены для превращения пиксельного изображения в совокупность простых векторных объектов, общий вид которых представляет собой мозаичное изображение: простое или объемное.
  • Метод «гравюра на дереве» (Woodcut) является по своему назначению векторным художественным фильтром (эффектом) и предназначен для имитации гравюры, ширина штрихов которой определяется распределением тональных уровней в исходном изображении.

Подготовка пиксельных изображений для трассировки

В качестве одного из условий достижения требуемого результата трассировки выступает необходимость подготовки исходного изображения. Замечание Современные программные приложения, предназначенные для трассировки, не выдвигают особых формальных ограничений для пиксельных изображений, но, вместе с тем, разработчики устанавливают для достижения определенного качества те или иные требования. К общим требованиям можно отнести следующие условия. Разрешение сканированного изображения желательно иметь в пределах от 300 до 600 ppi, хотя допускается возможность работы и с меньшим разрешением, но при этом трудно ожидать хорошего качества. Отсканированные изображения не должны содержать полиграфического растра, поэтому для трассировки следует использовать изображения с фотографий или слайдов (или специальным образом удалять растровую структуру). Особое внимание следует уделить изображениям, включающим шрифт. Трассировать следует только достаточно крупный шрифт (не менее 36 пунктов), более мелкий шрифт лучше удалить средствами любой пиксельной программы, например Adobe Photoshop. Следует учесть, что для работы с пиксельным изображением необходим объем оперативной или дисковой памяти в несколько раз больший, чем требуется для сохранения файла. Чистота и ясность изображения играют решающую роль для качественной трассировки Если используемый оригинал имеет, например, дефекты, пятна, царапины, то такое изображение следует тщательно довести до нужного уровня в пиксельной программе, например в Adobe Photoshop.

Алгоритм Тео Павлидиса

Идея

Тео ПавлидисомAlgorithms for Graphics and Image ProcessingначальнымначальныйначальногоначальныйВажное ограничение направления, в котором мы входим в начальный пиксельначальногоначальныйначальный пиксельначальномРисунке 1P1, P2P3Рисунке 1P2передP1P2P3P2Но как бы вы ни были расположены, пиксели P1, P2 и P3 определяются описанным выше образом.начальнымВо-первыхP1P1P1перемещаемся на один шаг вперёд, а затем делаем шаг влевопорядокРисунке 2P1И только если P1 белый, переходим к проверке P2…P2P2двигаемся на шаг вперёдP2Рисунке 3P2Только если и P1, и P2 белые, переходим к проверке P3…P3P3двигаемся на один шаг вправо, а затем на один шаг влевоВот и всё!Что если все три пикселя перед нами белые?этиизолированном пикселеКогда алгоритм завершает выполнение?начальным

Алгоритм

тесселяция TPB (b1, b2 ,…, bk)
  • Обозначим как p текущий граничный пиксель, т.е. пиксель, на котором мы стоим.
  • Определим P1, P2 и P3 следующим образом: (см. также Рисунок 1 выше)
  • P2 — это пиксель перед вами, соседний с тем, на котором вы стоите, т.е. с пикселем p.
  • P1 — левый пиксель, соседний с P2.
  • P3 — правый пиксель, соседний с P2.
  • Определим «шаг» в заданном направлении как перемещение на расстояние одного пикселя в этом направлении.
Задаём B как пустое множество. Сканируем ячейки T снизу вверх и слева направо, пока не будет найден чёрный начальный пиксель s из P (см выше важное ограничение относительно направления, в котором мы попадаем в начальный пиксель) Вставляем s в B. Задаём текущий пиксель p в качестве начального пикселя s. Повторяем следующее: Если пиксель P1 чёрныйВставляем P1 в B Обновляем p=P1 Движемся на один шаг вперёд, а затем делаем шаг влево иначе если P2 чёрныйВставляем P2 в B Обновляем p=P2 Перемещаемся на один шаг вперёд (см. выше Рисунок 3) иначе если P3 чёрныйВставляем P3 в B Обновляем p=P3 Делаем один шаг вправо, обновляем позицию и перемещаемся влево (см выше Рисунок 4) иначе если мы уже трижды повернулись на 90 градусов по часовой стрелке, находясь в одном пикселе p иначе Пока p=s  (Завершаем цикл повтора)

Ручная трассировка

Сущность ручной трассировки заключается в рисовании поверх точечного изображения векторных контуров любыми доступными средствами программы Adobe Illustrator с помощью инструментов из групп Pencil (Карандаш) и Pen (Перо), а иногда инструментами Brush, Spiral и Arc. Но в подавляющем большинстве случаев применяются инструменты из группы Pen (Перо): Add Anchor Point «перо+», Delete Anchor Point «перо-» и Convert Anchor Point угол. Первый отвечает за добавление новых опорных точек, второй за их удаление, а третий осуществляет преобразование опорных точек из одного типа в другой. Легкой и быстрой данную операцию, конечно же, не назовешь. Однако дизайнеры прибегают к ручной трассировке очень часто, мотивируя это тем, что при автоматической трассировке не получить минимально возможного числа векторных контуров, идеально совпадающих по форме с объектами, а значит, и минимального размера итогового изображения нужна большая предварительная работа по подготовке растрового изображения. Будем считать, что имеется отсканированный рисунок для логотипа компании (рис. 30), причем достаточно низкого качества, что не очень принципиально в случае ручной трассировки, когда все контуры все равно придется создавать вручную. Поэтому откройте исходное изображение сразу в программе Adobe Illustrator, для удобства работы увеличьте масштаб изображения, выберите инструмент Add Anchor Point («перо+») и приступайте к формированию контура. Полученный в итоге набор векторных контуров представлен на рис 31 обратите внимание, что инструмент Add Anchor Point удобен для формирования контура многоугольных областей, а контуры окружностей создаются обычным образом при помощи инструмента Ellipse. По окончании подберите заливки и границы для всех векторных контуров, дополните созданное векторное изображение логотипа названием компании и удалите слой с исходным растровым изображением Возможно, окончательный результат будет напоминать рис. 32. Рис. 30. Исходное растровое изображение Рис. 31. Результат ручной трассировки (изображение и палитра Layers) Рис. 32. Векторный логотип компании, созданный на основе растрового изображения (изображение и палитра Layers) Не следует думать, что трассировка вручную всегда выполняется столь же просто и быстро, как в рассматриваемом примере, в реальности чаще всего приходится работать с куда более трудоемкими изображениями.

Panopticum Vectorizer 1.2

Разработчик: Panopticum LLC Сайт программы: http://www.panopticum.com/ Размер дистрибутива: 637 Кбайт Способ распространения: shareware (30-дневная демонстрационная версия http://www.panopticum.com/Download/Vectorizer12Ai.exe) Цена: 32 долл. Работа под управлением: Windows 2000/XP и Mac OS 8.0/OS X Panopticum Vectorizer 1.2 представляет собой компактный конвертор растровой графики в векторную, реализованный в виде плагина и потому вызываемый прямо из программы Adobe Illustrator. Для работы он должен быть предварительно проинсталлирован в папку Plug-ins. Теоретически программа может трассировать любые растровые изображения: черно-белые, в градациях серого цвета и цветные, вплоть до фотографий. Однако она не подходит для трассировки черно-белых изображений в однобитовом формате bitmap (например, рис. 6), результатом векторизации которых может быть либо совершенно неприемлемый результат, мало напоминающий исходное изображение (рис. 7), либо формирование большого числа линейных векторных контуров, что бессмысленно с точки зрения дальнейшей обработки (рис. 8). При трассировке таких изображений их необходимо предварительно преобразовать в обычный черно-белый формат, например, в пакете Adobe Photoshop. Рис. 6. Исходное изображение Рис. 7. Неудачная трассировка однобитового изображения Рис. 8. Трассировка с формированием большого числа неудобных в дальнейшей работе контуров Программа поддерживает режим предварительного просмотра, поэтому с результатами трассировки можно ознакомиться еще до завершения работы плагина, щелкнув на кнопке Generate Preview (Генерация предварительного просмотра). В режиме предварительного просмотра можно не только увидеть трассированное изображение, но и узнать число контуров в палитре Layers и оценить их. Все векторные контуры создаются в специальном слое Vectorized, который удаляется, а затем создается вновь в случае следующей векторизации. Поэтому в нем не стоит создавать объекты и выполнять какие-либо преобразования, а нужные векторные контуры должны копироваться в новый слой. Число создаваемых контуров напрямую зависит не только от качества исходного изображения, но и от опции Color Processing (Цветовая обработка). При ее отключении для каждого цвета создается свой векторный контур, и при работе с полноцветными изображениями, имеющими сложные, в частности градиентные, заливки число создаваемых контуров оказывается очень большим. При включении опции Color Processing количеством цветов, а значит и векторных контуров, можно управлять, изменяя значение параметра Color filter threshold (Порог цветовой фильтрации) чем оно больше, тем меньше цветов остается в векторизованном изображении (близкие цвета заменяются на некий средний цвет) и тем меньше контуров создается. Panopticum Vectorizer поддерживает два режима трассировки: Lines only (Только линии) все контуры будут представлены в виде линейных объектов и Poligons only (Только многоугольники), который обеспечивает создание только многоугольных векторных объектов. Выбор варианта Both type objects (Оба типа объектов) приведет к наличию в трассированном изображении обоих типов контуров. При включении флажка Enable Smoothing (Сглаживание включено) создаваемые векторные контуры будут сглаживаться. Особенности сглаживания задаются настройкой параметров: Tolerance (Терпимость) определяет степень отклонения границ векторных объектов от исходных растровых, Threshold (Порог) отвечает за то, сколько прямых при векторизации будут преобразованы в кривые, и Corners radius (Угловой радиус) определяет угловой радиус, который будет использоваться при замене острых углов растровых объектов на кривые.

Трассировка отсканированного изображения

Самый простой способ перевода растровой картинки в векторную – использование специальных программ или инструментов векторных редакторов, которые рисуют контуры на основе исходного растрового изображения. Для этого процесса существует официальный термин «векторизация», но профессионалы предпочитают использовать слово «трассировка» – от английского trace (чертить). У Adobe Systems есть специальная программа под названием Streamline, а в самом Illustrator – инструмент Auto Trace (Автоматическая трассировка), расположенный в нижней части палитры инструментов (рис. 1.6). Рис. 1.6. Инструмент Auto Trace на палитре инструментов Использовать его очень просто:
  1. Создайте новый документ командой File › New (Файл › Новый) или нажмите сочетание клавиш CTRL + N. Появится окно New Document (Новый документ), в котором нужно ввести размеры и некоторые другие параметры.Совет Если не хотите тратить время на ввод значений в это окно, воспользуйтесь сочетанием не CTRL + N, a CTRL + ALT + N, которое создаст документ с последними примененными настройками.
  2. Поместите в созданный документ отсканированное изображение. Для этого выполните команду File › Place (Файл › Поместить) и в появившемся окне выберите имя файла, в котором находится результат сканирования. Растровое изображение появится в центре листа документа.
  3. Щелкните на значке инструмента Auto Trace (Автоматическая трассировка) на палитре инструментов. Инструмент станет активным.
  4. Подведите курсор к краю растрового изображения и щелкните на нем. Тут же появится векторный контур, который будет приблизительно соответствовать линии, разделяющей разные цветовые области (рис. 1.7).Рис. 1.7. а – растровое изображение и б – векторный контур, который образовался после первого использования инструмента Auto Trace Совет Все создаваемые объекты по умолчанию имеют белую заливку и черную обводку. Поэтому после первого использования инструмента Auto Trace (Автоматическая трассировка) будет создан контур, который спрячет под собой внутреннюю область исходного изображения. Кроме того, если растровая картинка черная, черный контур не будет на ней виден. Рекомендуем перед началом трассировки отменить заливку, а цвет обводки сделать контрастным. Для этого можно воспользоваться палитрой Color (Цвет) (рис. 1.8), в левом верхнем углу которой находятся два квадрата. Рис. 1.8. Палитра Color Левый верхний квадрат определяет цвет заливки. Щелкните на нем, а затем на перечеркнутом квадратике в левом нижнем углу. Теперь у всех вновь создаваемых фигур заливка будет отсутствовать. После этого щелкните на поле обводки и присвойте ей яркий, например, красный цвет, выбрав его на цветовой полосе в нижней части палитры.
  5. Повторите действие, описанное в пункте 4, применяя инструмент Auto Trace (Автоматическая трассировка) на каждой границе между цветами. В конце концов должна получиться комбинация контуров (рис. 1.9).

Зачем читать эту статью?

  1. Шейдеры. В первых видеопроцессорах алгоритмы были жёстко заданы в «железе», но в современных программист должен писать собственные шейдеры. Другими словами, вам всё равно нужно реализовывать большие фрагменты ПО рендеринга, только теперь оно выполняется в видеопроцессоре.
  2. Понимание. Вне зависимости от того, используете ли вы готовый конвейер или пишете свои шейдеры, понимание того, что происходит за кулисами позволит вам оптимальнее использовать готовый конвейер и писать шейдеры лучше.
  3. Интересность. Немногие области информатики могут похвастаться возможностью мгновенного получения видимых результатов, которые даёт нам компьютерная графика. Чувство гордости после запуска выполнения первого запроса SQL несравнимо с тем, что вы чувствуете в первый раз, когда удастся правильно оттрассировать отражения. Я преподавал компьютерную графику в университете в течение пяти лет. Меня часто удивляло, как мне удавалось семестр за семестром получать удовольствие: в конце концов мои усилия оправдывали себя радостью студентов от того, что они могли использовать свои первые рендеры в качестве обоев рабочего стола.

Что такое связность

объектовобъектамисвязные компонентысвязная компонентаPpi pjPpi, …, pjPв последовательности рядомкогда мы можем сказать, что 2 пикселя являются «соседями»?квадратной тесселяции

4-связность

4-связным?4-соседапрямым соседомОпределение 4-соседаQ4-соседомPQPPP2, P4, P6P8Рисунке 2Определение 4-связной компонентыP4-связной компонентойpi pjPpi, …, pjPрядом в последовательности4-соседями

8-связность

8-связное8-соседанепрямым соседомОпределение 8-соседаQ8-соседомсоседомPQPPОпределение 8-связной компонентыP8-связной компонентойсвязной компонентойpi pjPpi, …, pjPрядом в этой последовательности8-соседямиПримечание

Neuro Tracer — программа нового поколения

Производитель: Brand Security Systems GmbH Ссылка: http://www.neuro­tracer.com/ Когда обзор был уже почти готов, в руки автору попала программа Neuro Tracer, о которой хотелось бы рассказать подробнее. Основной особенностью Neuro Tracer является использование технологии нейронной адаптивной фильтрации изображений. Суть ее заключается в возможности интеллектуальной предварительной подготовки исходных растровых изображений к трассировке, с учетом пожеланий пользователя. Например, пользователь может указать, какие области на изображении должны игнорироваться, а какие необходимо воспроизвести. Входящий в состав данного программного продукта адаптивный нейронный фильтр позволяет в считаные минуты очистить даже очень «грязное» отсканированное изображение в полуавтоматическом режиме. Фильтру задаются небольшие участки отсканированного изображения с подсказками, что на самом деле желательно видеть в данном месте изображения. После обучения программа применяет предложенный метод обработки ко всему изображению. Рис. 10. Neuro Tracer. На изображении старинной гравюры красным цветом отмечены участки с прорисовкой штрихов, а синим — участки с «мусором», которые должны быть удалены На рис. 10 на изображении старинной гравюры красным цветом отмечены участки с прорисовкой штрихов (в том числе и в местах их слабой видимости), а синим цветом — участки с «мусором», которые должны быть удалены. Результат очистки изображения от «мусора» показан на рис. 11. Рис. 11. Neuro Tracer. Предварительный просмотр результата очистки от «мусора» Опциональные параметры обработки растрового изображения в процессе трассировки можно задать в настройках фильтра и впоследствии применять ко всем видам растровых изображений. Установки фильтров могут быть сохранены и в дальнейшем применены к различным однотипным изображениям. При отсутствии в сохраненном фильтре информации об определенной части нового объекта фильтр можно «переобучить» с помощью новой дополнительной информации. В Neuro Tracer есть и другие возможности, которые не встречались автору ни в одном другом трейсере, — например трассировка с указанием формы и направления объектов. Так, на рис. 12 в качестве значимых элементов были указаны пуантили гравюры. Рис. 12. Трассировка с указанием типа объекта В следующем примере (рис. 13) в качестве значимых объектов были указаны только линии определенной направленности. Рис. 13. Трассировка с указанием линий определенной направленности Немаловажной особенностью фильтра трассировщика является возможность разбирать изображение по цветовым составляющим. На рис.14 и 15 показан результат разбора сканированной иллюстрации Разумеется, каждый цвет при этом располагается на своем слое. Рис. 14. Увеличенный фрагмент иллюстрации, предназначенной для трассировки с цветоделением Рис. 15. Результат трассировки с цветоделением На рис. 16 довольно «грязное» изображение отпечатка пальца очищено и трассировано в три клика без каких­либо существенных затрат времени. Рис. 16. Результат трассировки с цветоделением Neuro Tracer позволяет загружать растровые изображения в 20 наиболее распространенных форматов, в том числе в JPG, PCD, PSD, PSP, TIFF, BMP и пр. Результат экспортируется в формате AI. Все вышесказанное позволяет сделать вывод, что программа Neuro Tracer предназначена для профессиональной работы по векторизации растровых изображений.

Шаг 6

Опция Подгонка контура определяет точность трассировки исходного растрового изображения. В Adobe Illustrator CS5 чем меньше значение, тем точнее контур, чем больше значение, тем грубее контур. В Adobe Illustrator CS6 все наоборот: чем больше число,тем точнее контур мы получим. Опция Минимальна Площадь в Adobe Illustrator CS5 соответствует опции Шум в Adobe Illustrator CS6. Эта опция определяет размер самых маленьких деталей исходного изображения, которые будут учитываться при трассировке. Опция Минимальный Угол в Abode Illustrator CS5 соответствует опции Углы в Adobe Illustrator CS6 и задается в процентах. Чем больше число мы установим, тем больше углов будет в конечном изображении. В Adobe Illustrator CS6 нет таких настроек трассировки как Размытие и Изменение разрешения. В Adobe Illustrator CS5 настройка Размытие служит для уменьшения количества мелких деталей и смягчения границ результирующего изображения. Настройка Изменение разрешения позволяет ускорить процесс трассировки больших изображений и уменьшить потерю качества конечного изображения.

Adobe Streamline 4.0

Разработчик: Adobe Systems, Inc. Сайт программы: http://www.adobe.com/products/streamline/main.html Размер дистрибутива: 1,8 Мбайт (8,3) Способ распространения: shareware (функционально-ограниченная демонстрационная версия доступна после регистрации по адресу: или по адресу: http://download.adobe.com/pub/adobe/streamline/win/4.x/sl4try.exe) Цена: 129 долл. Работа под управлением: Windows 95/NT/2000/XP и от Mac OS 7.5 до Mac OS 9.2.2 и Mac OS X Classic Программа Adobe Streamline реализована не в качестве плагина к Adobe Illustrator, а как отдельное приложение и предназначена для трассировки как черно-белых штриховых изображений, так и изображений в серой шкале и цветных изображений, в том числе и в пакетном режиме. Утилита поддерживает только графические форматы TIFF, PCX и PSD, что, конечно, не очень удобно, и позволяет сохранять результат трассировки в формате программы Adobe Illustrator. Adobe Streamline поддерживает три метода трассировки:
  • Outline (Контурный) предназначен для трассировки как цветных, так и черно-белых изображений с четко определенными объектами и формирует векторные контуры на основе цветовых областей;
  • Centerline (Средняя линия) ориентирован на векторизацию изображений с одинаковой толщиной линий, как правило, для черно-белых штриховых документов и создает векторные контуры, взяв за точку отсчета центры линий;
  • Line Recognition (Распознавание линий) используется для восстановления строго вертикальных и строго горизонтальных линий, которые при сканировании получили небольшое отклонение, и может оказаться полезным при трассировке схем, чертежей и т.п., состоящих из горизонтальных и вертикальных линий.
Возможно применение разных методов трассировки для различных областей изображения в этом случае предварительно при помощи стандартных инструментов выделения формируют выделенную область, а затем для нее проводят трассировку. Помимо выбора метода трассировки результаты векторизации зависят еще от целого ряда параметров. В частности необходимо установить тип создаваемых контуров: Straight lines only (Только прямые линии), Curved lines only (Только кривые линии) или Curved & straight lines (Кривые и прямые линии), точность создания векторных контуров Tolerance (Допуск) и др. Кроме того, для цветных изображений и изображений в серой шкале дополнительно определяются нюансы постеризации, от которых зависит, будет ли трассированное изображение черно-белым, цветным с ограниченным или с неограниченным числом цветов. Так же как и другие автотрассировщики, Adobe Streamline может создавать для полноцветных изображений очень большое число векторных контуров (рис. 4), что автоматически делает дальнейшую работу с ними просто невозможной. Поэтому перед трассировкой для всех объектов нужно установить одноцветные заливки. Рис. 4. Исходное изображение (слева) и серия векторных контуров, полученных в результате трассировки (справа) При желании созданные векторные контуры можно редактировать прямо в Adobe Streamline: выделять; определять для выделенных контуров цвета границы и заливки (рис. 5); корректировать форму контуров, перемещая, добавляя или создавая опорные точки; преобразовывать закрытые контуры в правильные геометрические формы и пр., хотя гораздо удобнее подобными преобразованиями заняться в Adobe Illustrator. Рис. 5. Заливка трассированного изображения

Potrace

Производитель : Peter Selinger Ссылка: http://potrace.sourceforge.net/ Potrace — бесплатная, постоянно совершенствуемая программа (рис. 6). Включена в дистрибутивы таких пакетов, как FontForge, mftrace, Inkscape, TeXtrace и др. Неплохая альтернатива другим перечисленным здесь программам векторизации. Из распространенных растровых форматов «понимает» только BMP­файлы. Полученное векторное изображение можно экспортировать в EPS, PS, PDF и SVG. Из минусов можно назвать явное «заплывание» на местах пересечения кривых под тупым углом, что, впрочем, является недостатком практически всех трейсеров. В остальном программа имеет почти полный набор настроек по определению краев, квантованию цветов и пр. Дистрибутив программы можно загрузить для таких операционных систем, как Linux, Sun Solaris, FreeBSD, NetBSD, OpenBSD, AIX, Mac OS X и Windows 95/98/2000/NT. Рис. 6. Potrace

С этим читают