Морской форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Морской форум » Компьютеры, интернет, техника » Компьютерная графика


Компьютерная графика

Сообщений 1 страница 16 из 16

1

Так как эта тема весьма актуальна в наши дни предлагаю размещать подробную информацию на данную тему. И пожалуй можно начать с самых азов.

Материал из Википедии — свободной энциклопедии
Компью́терная гра́фика (также маши́нная гра́фика) — область деятельности, в которой компьютеры используются как для синтеза изображений, так и для обработки визуальной информации, полученной из реального мира. Также компьютерной графикой называют и результат этой деятельности.

История

Первые вычислительные машины не имели отдельных средств для работы с графикой, однако уже использовались для получения и обработки изображений. Программируя память первых электронных машин, построенную на основе матрицы ламп, можно было получать узоры.
В 1961 году программист С.  Рассел возглавил проект по созданию первой компьютерной игры с графикой. Создание игры «Spacewar» («Космические войны») заняло около 200 человеко-часов. Игра была создана на машине PDP-1.
В 1963 году американский учёный Айвен Сазерленд создал программно-аппаратный комплекс Sketchpad, который позволял рисовать точки, линии и окружности на трубке цифровым пером. Поддерживались базовые действия с примитивами: перемещение, копирование и др. По сути, это был первый векторный редактор, реализованный на компьютере. Также программу можно назвать первым графическим интерфейсом, причём она являлась таковой ещё до появления самого термина.
В середине 1960-х гг. появились разработки в промышленных приложениях компьютерной графики. Так, под руководством Т. Мофетта и Н. Тейлора фирма Itek разработала цифровую электронную чертёжную машину. В 1964 году General Motors представила систему автоматизированного проектирования DAC-1, разработанную совместно с IBM.
В 1968 году группой под руководством Н. Н. Константинова была создана компьютерная математическая модель движения кошки. Машина БЭСМ-4, выполняя написанную программу решения дифференциальных уравнений, рисовала мультфильм «Кошечка», который для своего времени являлся прорывом. Для визуализации использовался алфавитно-цифровой принтер.
Существенный прогресс компьютерная графика испытала с появлением возможности запоминать изображения и выводить их на компьютерном дисплее, электронно-лучевой трубке.

По способам задания изображений графику можно разделить на категории:

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

Векторная графика

Векторная графика представляет изображение как набор геометрических примитивов. Обычно в качестве них выбираются точки, прямые, окружности, прямоугольники, а также как общий случай, сплайны некоторого порядка. Объектам присваиваются некоторые атрибуты, например, толщина линий, цвет заполнения. Рисунок хранится как набор координат, векторов и других чисел, характеризующих набор примитивов. При воспроизведении перекрывающихся объектов имеет значение их порядок.
Изображение в векторном формате даёт простор для редактирования. Изображение может без потерь масштабироваться, поворачиваться, деформироваться, также имитация трёхмерности в векторной графике проще, чем в растровой. Дело в том, что каждое такое преобразование фактически выполняется так: старое изображение (или фрагмент) стирается, и вместо него строится новое. Математическое описание векторного рисунка остаётся прежним, изменяются только значения некоторых переменных, например, коэффициентов. При преобразовании растровой картинки исходными данными является только описание набора пикселей, поэтому возникает проблема замены меньшего числа пикселей на большее (при увеличении), или большего на меньшее (при уменьшении). Простейшим способом является замена одного пикселя несколькими того же цвета (метод копирования ближайшего пикселя: Nearest Neighbour). Более совершенные методы используют алгоритмы интерполяции, при которых новые пиксели получают некоторый цвет, код которого вычисляется на основе кодов цветов соседних пикселей. Подобным образом выполняется масштабирование в программе Adobe Photoshop (билинейная и бикубическая интерполяция).
Вместе с тем, не всякое изображение можно представить как набор из примитивов. Такой способ представления хорош для схем, используется для масштабируемых шрифтов, деловой графики, очень широко используется для создания мультфильмов и просто роликов разного содержания.

Растровая графика

Растровая графика всегда оперирует двумерным массивом (матрицей) пикселов. Каждому пикселю сопоставляется значение — яркости, цвета, прозрачности — или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.
Без особых потерь растровые изображения можно только лишь уменьшать, хотя некоторые детали изображения тогда исчезнут навсегда, что иначе в векторном представлении. Увеличение же растровых изображений оборачивается красивым видом на увеличенные квадраты того или иного цвета, которые раньше были пикселями.
В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объём памяти, необходимый для работы с изображениями, потери при редактировании.

Фрактальная графика

Фрактал — объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.
Фракталы позволяют описывать целые классы изображений, для детального описания которых требуется относительно мало памяти. С другой стороны, к изображениям вне этих классов, фракталы применимы слабо.

Трёхмерная графика (3D)

Трёхмерная графика оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.
В трёхмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.
Всеми визуальными преобразованиями в 3D-графике управляют матрицы (см. также: аффинное преобразование в линейной алгебре). В компьютерной графике используется три вида матриц:
матрица поворота
матрица сдвига
матрица масштабирования
Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/промасштабированный относительно исходного.
Ежегодно проходят конкурсы трехмерной графики, такие ка Magick next-gen или Dominance War.

CGI графика
CGI — Computer Generated Images (Генерированные Компьютерные Объекты)

Представление цветов в компьютере

Для передачи и хранения цвета в компьютерной графике используются различные формы его представления. В общем случае цвет представляет собой набор чисел, координат в некоторой цветовой системе.
Стандартные способы хранения и обработки цвета в компьютере обусловлены свойствами человеческого зрения. Наиболее распространены системы RGB для дисплеев и CMYK для работы в типографском деле.
Иногда используется система с большим, чем три, числом компонент. Кодируется спектр отражения или испускания источника, что позволяет более точно описать физические свойства цвета. Такие схемы используются в фотореалистичном трёхмерном рендеринге.

Реальная сторона графики

Любое изображение на мониторе, в силу его плоскости, становится растровым, так как монитор это матрица, он состоит из столбцов и строк Трёхмерная графика существует лишь в нашем воображении, так как то, что мы видим на мониторе — это проекция трёхмерной фигуры, а уже создаём пространство мы сами. Таким образом визуализация графики бывает только растровая и векторная, а способ визуализации это только растр (набор пикселей), а от количества этих пикселей зависит способ задания изображения.

0

2

Векторная графика

Материал из Википедии — свободной энциклопедии

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

Обзор

Современные компьютерные видеодисплеи отображают информацию в растровом формате. Для отображения векторного формата на растровом используются преобразователи, программные или аппаратные, встроенные в видеокарту.
Кроме этого, существует узкий класс устройств, ориентированных исключительно на отображение векторных данных. К ним относятся мониторы с векторной развёрткой, графопостроители, а также некоторые типы лазерных проекторов.
Термин «векторная графика» используется в основном в контексте двухмерной компьютерной графики.

Способ хранения изображения

Рассмотрим, к примеру, окружность радиуса r. Список информации, необходимой для полного описания окружности, таков:
радиус r;
координаты центра окружности;
цвет и толщина контура (возможно прозрачный);
цвет заполнения (возможно прозрачный).
Преимущества этого способа описания графики над растровой графикой:
Минимальное количество информации передаётся намного меньшему размеру файла (размер не зависит от величины объекта).
Соответственно, можно бесконечно увеличить, например, дугу окружности, и она останется гладкой. С другой стороны, если кривая представлена в виде ломаной линии, увеличение покажет, что она на самом деле не кривая.
При увеличении или уменьшении объектов толщина линий может быть постоянной.
Параметры объектов хранятся и могут быть изменены. Это означает, что перемещение, масштабирование, вращение, заполнение и т. д. не ухудшат качества рисунка. Более того, обычно указывают размеры в аппаратно-независимых единицах (англ. device-independent unit), которые ведут к наилучшей возможной растеризации на растровых устройствах.
У векторной графики есть два фундаментальных недостатка.
Не каждый объект может быть легко изображен в векторном виде. Кроме того, количество памяти и времени на отображение зависит от числа объектов и их сложности.
Перевод векторной графики в растр достаточно прост. Но обратного пути, как правило, нет — трассировка растра обычно не обеспечивает высокого качества векторного рисунка.

Типичные примитивные объекты:

Линии и ломаные линии.
Многоугольники.
Окружности и эллипсы.
Кривые Безье.
Безигоны.
Текст (в компьютерных шрифтах, таких как TrueType, каждая буква создаётся из кривых Безье).
Этот список неполон. Есть разные типы кривых (Catmull-Rom сплайны, NURBS и т. д.), которые используются в различных приложениях.
Также возможно рассматривать растровое изображение как примитивный объект, ведущий себя как прямоугольник.

Векторные операции

Векторные графические редакторы, типично, позволяют вращать, перемещать, отражать, растягивать, скашивать, выполнять основные аффинные преобразования над объектами, изменять z-order и комбинировать примитивы в более сложные объекты.
Более изощрённые преобразования включают булевы операции на замкнутых фигурах: объединение, дополнение, пересечение и т. д.
Векторная графика идеальна для простых или составных рисунков, которые должны быть аппаратно-независимыми или не нуждаются в фотореализме. К примеру, PostScript и PDF используют модель векторной графики.

Пример, показывающий эффект векторной графики при увеличении: (a) исходное векторное изображение; (b) иллюстрация, увеличенная в 8 раз как векторное изображение; (c) иллюстрация, увеличенная в 8 раз как растровое изображение. Растровые изображения плохо масштабируются, тогда как векторные изображения могут быть неограниченно увеличены без потери качества. (Изображения были сконвертированы в JPEG для показа на этой странице.)

0

3

Растровая графика

Материал из Википедии — свободной энциклопедии

Растровое изображение — это файл данных или структура, представляющая собой сетку пикселей или точек цветов (на практике прямоугольную) на компьютерном мониторе, бумаге и других отображающих устройствах и материалах.
Важными характеристиками изображения являются:
количество пикселей. Может указываться отдельно количество пикселей по ширине и высоте (1024*768, 640*480,...) или же, редко, общее количество пикселей (обычно измеряется в мегапикселях);
количество используемых цветов (или глубина цвета);
цветовое пространство RGB, CMYK, XYZ, YCbCr и др.
Растровую графику редактируют с помощью растровых графических редакторов. Создается растровая графика фотоаппаратами, сканерами, непосредственно в растровом редакторе, также путем экспорта из векторного редактора или в виде скриншотов.

Достоинства

Растровая графика позволяет создать (воспроизвести) практически любой рисунок, вне зависимости от сложности, в отличие, например, от векторной, где невозможно точно передать эффект перехода от одного цвета к другому (в теории, конечно, возможно, но файл размером 1 МБ в формате BMP будет иметь размер 200 МБ в векторном формате)[источник не указан 71 день].
Распространённость — растровая графика используется сейчас практически везде: от маленьких значков до плакатов.
Высокая скорость обработки сложных изображений, если не нужно масштабирование.
Растровое представление изображения естественно для большинства устройств ввода/вывода графической информации, таких как монитор, принтер, цифровой фотоаппарат, сканер и др.

Недостатки

Большой размер файлов с простыми изображениями.
Невозможность идеального масштабирования.
Из‑за этих недостатков для хранения простых рисунков рекомендуют вместо даже сжатой растровой графики использовать векторную графику.

Форматы

Растровые изображения обычно хранятся в сжатом виде. В зависимости от типа сжатия может быть возможно или невозможно восстановить изображение в точности таким, каким оно было до сжатия (сжатие без потерь или сжатие с потерями соответственно). Так же в графическом файле может храниться дополнительная информация: об авторе файла, фотокамере и её настройках, количестве точек на дюйм при печати и др.

Сжатие без потерь

Использует алгоритмы сжатия, основанные на уменьшении избыточности информации.
BMP или Windows Bitmap — обычно используется без сжатия.
GIF (Graphics Interchange Format) — устаревающий формат, поддерживающий не более 256 цветов одновременно. Всё ещё популярен из‑за поддержки анимации, которая отсутствует в чистом PNG, хотя ПО начинает поддерживать APNG.
PCX устаревший формат, позволявший хорошо сжимать простые рисованые изображения (при сжатии группы подряд идущих пикселей одинакового цвета заменяются на запись о количестве таких пикселей и их цвете).
PNG (Portable Network Graphics)
TIFF (Tagged Image File Format) поддерживает несколько алгоритмов сжатия, в том числе сжатие без потерь (LZW, LZ77, ZIP).

Сжатие с потерями

Основано на отбрасывании части информации (как правило наименее воспринимаемой глазом).
JPEG очень широко используемый формат изображений. Сжатие основано на усреднении цвета соседних пикселей (информация о яркости при этом не усредняется) и отбрасывании высокочастотных составляющих в пространственном спектре фрагмента изображения. При детальном рассмотрении сильно сжатого изображения заметно размытие резких границ и характерный муар вблизи них.

Разное
TIFF поддерживает большой диапазон изменения глубины цвета, разные цветовые пространства, разные настройки сжатия (как с потерями, так и без) и др.
RAW хранит информацию, непосредственно получаемую с матрицы цифрового фотоаппарата или аналогичного устройства без применения к ней каких-либо преобразований, а также хранит настройки фотокамеры. Позволяет избежать потери информации при применении к изображению различных преобразований (потеря информации происходит в результате округления и выхода цвета пикселя за пределы допустимых значений). Используется при съёмке в сложных условиях (недостаточная освещённость, невозможность выставить баланс белого и т.п.) для последующей обработки на компьютере (обычно в ручном режиме). Практически все полупрофессиональные и профессиональные цифровые фотоаппараты позволяют сохранять RAW изображения. Формат файла зависит от модели фотоаппарата, единого стандарта не существует.

источники:http://vladus.by/?cat=3
                http://club-edu.tambov.ru/methodic/cg/g … va1_2.html
                http://newsoft.com.ua/tags/grafika/

0

4

Фрактал

Материал из Википедии — свободной энциклопедии

Фрактал (лат. fractus — дробленый) — термин, означающий геометрическую фигуру, обладающую свойством самоподобия, то есть составленную из нескольких частей, каждая из которых подобна всей фигуре целиком. В более широком смысле под фракталами понимают множества точек в евклидовом пространстве, имеющие дробную метрическую размерность (в смысле Минковского или Хаусдорфа), либо метрическую размерность, строго большую топологической.
Следует отметить, что слово «фрактал» не является математическим термином и не имеет общепринятого строгого математического определения. Оно может употребляться, когда рассматриваемая фигура обладает какими-либо из перечисленных ниже свойств:
Обладает нетривиальной структурой на всех шкалах. В этом отличие от регулярных фигур (таких, как окружность, эллипс, график гладкой функции): если мы рассмотрим небольшой фрагмент регулярной фигуры в очень крупном масштабе, он будет похож на фрагмент прямой. Для фрактала увеличение масштаба не ведёт к упрощению структуры, на всех шкалах мы увидим одинаково сложную картину.
Является самоподобной или приближённо самоподобной.
Обладает дробной метрической размерностью или метрической размерностью, превосходящей топологическую.
Может быть построена при помощи рекурсивной процедуры.
Многие объекты в природе обладают фрактальными свойствами, например, побережья, облака, кроны деревьев, кровеносная система и система альвеол человека или животных.
Фракталы, особенно на плоскости, популярны благодаря сочетанию красоты с простотой построения при помощи компьютера.

История

Первые примеры самоподобных множеств с необычными свойствами появились в XIX веке (например, множество Кантора). Термин «фрактал» был введён Бенуа Мандельбротом в 1975 году и получил широкую популярность с выходом в 1977 году его книги «Фрактальная геометрия природы».

Примеры

Начиная с конца XIX века, в математике появляются примеры самоподобных объектов с патологическими с точки зрения классического анализа свойствами. К ним можно отнести следующие:
множество Кантора — нигде не плотное несчётное совершенное множество. Модифицировав процедуру, можно также получить нигде не плотное множество положительной длины.
треугольник Серпинского и ковёр Серпинского — аналоги множества Кантора на плоскости.
губка Менгера — аналог множества Кантора в трёхмерном пространстве;
примеры Вейерштрасса и Ван дер Вардена нигде не дифференцируемой непрерывной функции.
кривая Коха — несамопересекающаяся непрерывная кривая бесконечной длины, не имеющая касательной ни в одной точке;
кривая Пеано — непрерывная кривая, проходящая через все точки квадрата.
траектория броуновской частицы также с вероятностью 1 нигде не дифференцируема. Её хаусдорфова размерность равна двум.

Рекурсивная процедура получения фрактальных кривых

Существует простая рекурсивная процедура получения фрактальных кривых на плоскости. Зададим произвольную ломаную с конечным числом звеньев, называемую генератором. Далее, заменим в ней каждый отрезок генератором (точнее, ломаной, подобной генератору). В получившейся ломаной вновь заменим каждый отрезок генератором. Продолжая до бесконечности, в пределе получим фрактальную кривую. На рисунке справа приведены три первых шага этой процедуры для кривой Коха.
Примерами таких кривых служат:
кривая дракона;
кривая Коха;
кривая Леви;
кривая Минковского;
кривая Пеано.
с помощью похожей процедуры получается дерево Пифагора.

Фракталы как неподвижные точки сжимающих отображений

Свойство самоподобия можно математически строго выразить следующим образом. Пусть  — сжимающие отображения плоскости. Рассмотрим следующее отображение на множестве всех компактных (замкнутых и ограниченных) подмножеств плоскости:
Можно показать, что отображение Ψ является сжимающим отображением на множестве компактов с метрикой Хаусдорфа. Следовательно, по теореме Банаха, это отображение имеет единственную неподвижную точку. Эта неподвижная точка и будет нашим фракталом.
Рекурсивная процедура получения фрактальных кривых, описанная выше, является частным случаем данной конструкции. В ней все отображения  — отображения подобия, а n — число звеньев генератора.
Для треугольника Серпинского n = 3 и отображения ψ1, ψ2, ψ3 — гомотетии с центрами в вершинах правильного треугольника и коэффициентом 1/2. Легко видеть, что треугольник Серпинского переходит в себя при отображении Ψ.
В случае, когда отображения ψi — преобразования подобия с коэффициентами ri > 0, размерность s фрактала (при некоторых дополнительных технических условиях) может быть вычислена как решение уравнения . Так, для треугольника Серпинского получаем s = ln3 / ln2.
По той же теореме Банаха, начав с любого компактного множества и применяя к нему итерации отображения Ψ, мы получим последовательность компактов, сходящихся (в смысле метрики Хаусдорфа) к нашему фракталу.

Фракталы в комплексной динамике

Фракталы естественным образом возникают при изучении нелинейных динамических систем. Наиболее изучен случай, когда динамическая система задаётся итерациями многочлена или голоморфной функции комплексной переменной на плоскости. Первые исследования в этой области относятся к началу XX века и связаны с именами Фату и Жюлиа.
Пусть F(z) — многочлен, z0 — комплексное число и рассмотрим следующую последовательность:
.
Нас интересует поведение этой последовательности при . Эта последовательность может:
Стремиться к бесконечности;
Стремиться к конечному пределу;
Демонстрировать в пределе циклическое поведение, то есть поведение вида
Демонстрировать более сложное поведение.
Множества значений z0, для которых последовательность демонстрирует один конкретный тип поведения, а также множества точек бифуркации между различными типами, часто обладают фрактальными свойствами.
Так, множество Жюлиа на картинке справа — множество точек бифуркации для многочлена F(z) = z2 + c, то есть тех значений z0, для которых поведение последовательности zn может резко меняться при сколь угодно малых изменениях z0.
Другой вариант получения фрактальных множеств — введение параметра в многочлен F(z) и рассмотрение множества тех значений параметра, при которых последовательность zn демонстрирует определённое поведение при фиксированном z0. Так, множество Мандельброта — это множество всех , при которых zn для F(z) = z2 + c и z0 = 0 не стремится к бесконечности.
Ещё один известный пример такого рода — бассейны Ньютона.
Популярно создание красивых графических образов на основе комплексной динамики путём раскрашивания точек плоскости в зависимости от поведения соответствующих динамических систем. Например, для дополнения множества Мандельброта можно раскрасить точки в зависимости от скорости стремления zn к бесконечности (определяемой, скажем, как наименьший номер n, при котором | zn | превысит фиксированную большую величину A).
Биоморфы — фракталы, построенные на основе комплексной динамики и напоминающие живые организмы.

Стохастические фракталы

Природные объекты часто имеют фрактальную форму. Для их моделирования могут применяться стохастические (случайные) фракталы. Примеры стохастических фракталов:
траектория броуновского движения на плоскости и в пространстве;
граница траектории броуновского движения на плоскости. В 2001 году Лоулер, Шрамм и Вернер доказали предположение Мандельброта о том, что её размерность равна 4/3.
эволюции Шрамма-Лёвнера — конформно-инвариантные фрактальные кривые, возникающие в критических двумерных моделях статистической механики, например, в модели Изинга и перколяции.
различные виды рандомизированных фракталов, то есть фракталов, полученных с помощью рекурсивной процедуры, в которую на каждом шаге введён случайный параметр. Плазма — пример использования такого фрактала в компьютерной графике.
Фрактальная монотипия, или стохатипия — направления в изобразительном искусстве, заключающиеся в получении изображения случайного фрактала.

Применение фракталов

Компьютерная графика

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

Анализ рынков

Последнее время Фракталы стали популярны у «Трейдеров» для анализа курса фондовых бирж, валютных и торговых рынков.

Физика и другие естественные науки

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

Литература

Среди литературных произведений находят такие, которые обладают текстуальной, структурной или семантической фрактальной природой. В текстуальных фракталах потенциально бесконечно повторяются элементы текста:
неразветвляющееся бесконечное дерево, тождественное само себе с любой итерации («У попа была собака…», «Притча о философе, которому снится, что он бабочка, которой снится, что она философ, которому снится…», «Ложно утверждение, что истинно утверждение, что ложно утверждение…»)
неразветвляющиеся бесконечные тексты с вариациями («У Пегги был весёлый гусь…») и тексты с наращениями («Дом, который построил Джек»).
В структурных фракталах схема текста потенциально фрактальна:
венок сонетов (15 стихотворений), венок венков сонетов (211 стихотворений), венок венков венков сонетов (2455 стихотворений)
«рассказы в рассказе» («Книга тысячи и одной ночи», Я.Потоцкий «Рукопись, найденная в Сарагоссе»)
предисловия, скрывающие авторство (У. Эко «Имя розы»)
Т. Стоппард «Розенкранц и Гильденстерн мертвы» (сцена с представлением перед королём).
В семантических и нарративных фракталах автор рассказывает о бесконечном подобии части целому:
Х. Л. Борхес «В кругу развалин»
Х. Кортасар «Жёлтый цветок»
Ж. Перек «Кунсткамера»

Фрактальные антенны

Использование фрактальной геометрии при проектировании антенных устройств было впервые применено американским инженером Натаном Коэном, который тогда жил в центре Бостона, где была запрещена установка внешних антенн на здания. Натан вырезал из алюминиевой фольги фигуру в форме кривой Коха и наклеил её на лист бумаги, затем присоединил к приёмнику. Оказалось, что такая антенна работает не хуже обычной. И, хотя физические принципы работы такой антенны не изучены до сих пор, это не помешало Коэну основать собственную компанию и наладить их серийный выпуск.

Сжатие изображений

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

Децентрализованные сети

Система назначения IP-адресов в сети Netsukuku использует принцип фрактального сжатия информации для компактного сохранения информации об узлах сети. Каждый узел сети Netsukuku хранит всего 4 Кб информации о состоянии соседних узлов, при этом любой новый узел подключается к общей сети без необходимости в центральном регулировании раздачи IP-адресов, что, например, характерно для сети Интернет. Таким образом, принцип фрактального сжатия информации гарантирует полностью децентрализованную, а следовательно, максимально устойчивую работу всей сети.

0

5

Трёхмерная графика

Материал из Википедии — свободной энциклопедии

Трёхмерная графика (3D, 3 Dimensions, русск. 3 измерения) — раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), призванных обеспечить пространственно-временную непрерывность получаемых изображений. Больше всего применяется для создания изображений в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке и промышленности.
Трёхмерное изображение отличается от плоского построением геометрической проекции трёхмерной модели сцены на экране компьютера с помощью специализированных программ.
При этом модель может как соответствовать объектам из реального мира (автомобили, здания, ураган, астероид), так и быть полностью абстрактной (проекция четырёхмерного фрактала).
Для получения трёхмерного изображения требуются следующие шаги:
моделирование — создание математической модели сцены и объектов в ней.
рендеринг (русск. визуализация) — построение проекции в соответствии с выбранной физической моделью.

Моделирование

Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов:
Геометрия (построенная с помощью различных техник модель, например здание)
Материалы (информация о визуальных свойствах модели, например цвет стен и отражающая/преломляющая способность окон)
Источники света (настройки направления, мощности, спектра освещения)
Виртуальные камеры (выбор точки и угла построения проекции)
Силы и воздействия (настройки динамических искажений объектов, применяется в основном в анимации)
Дополнительные эффекты (объекты, имитирующие атмосферные явления: свет в тумане, облака, пламя и пр.)
Задача трёхмерного моделирования — описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению.

Рендеринг

На этом этапе математическая (векторная) пространственная модель превращается в плоскую (растровую) картинку. Если требуется создать фильм, то рендерится последовательность таких картинок - кадров. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: интенсивностью красного, синего и зелёного цвета. Таким образом рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности. Самый простой вид рендеринга — это построить контуры моделей на экране компьютера с помощью проекции, как показано выше. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред (например, жидкости в стакане).
Существует несколько технологий рендеринга, часто комбинируемых вместе. Например:
Z-буфер (используется в OpenGL и DirectX);
сканлайн (scanline) — расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пиксела «в сцену» до пересечения с первой поверхностью. Цвет пиксела будет таким же, как цвет этой поверхности.;
Трассировка лучей (рейтрейсинг, англ. raytracing) — то же, что и сканлайн, но цвет пиксела уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда;
глобальная иллюминация (англ. global illumination, radiosity) — расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений
и другие.

Наиболее популярными системами рендеринга можно назвать:
PhotoRealistic RenderMan (PRMan)
Mental ray
V-Ray
FinalRender
Brazil R/S
BusyRay
Turtle
Maxwell Render
Fryrender
Indigo Renderer
LuxRender
YafRay
POV-Ray
Самые передовые достижения и идеи трёхмерной графики (и компьютерной графики вообще) докладываются и обсуждаются на ежегодном симпозиуме SIGGRAPH, традиционно проводимом в США.

Программное обеспечение

Программные пакеты, позволяющие производить трёхмерную графику, то есть моделировать объекты виртуальной реальности и создавать на основе этих моделей изображения, очень разнообразны. Последние годы устойчивыми лидерами в этой области являются коммерческие продукты: такие как Autodesk 3ds Max, Maya, Newtek Lightwave, SoftImage XSI и сравнительно новые Rhinoceros 3D, Cinema 4D или ZBrush. Кроме того, уверенно набирают популярность и открытые продукты, распространяемые свободно, например, полнофункциональный пакет Blender (позволяет и производство моделей, и последующий рендеринг), K-3D и Wings3D (только создание моделей с возможностью последующего использования их другими программами).
Трехмерная графика активно применяется в системах автоматизации проектных работ (САПР) для создания твердотельных элементов: зданий, деталей машин, механизмов.

Связь с физическим представлением трехмерных объектов

Трёхмерная графика обычно имеет дело с виртуальным, воображаемым трёхмерным пространством, которое отображается на плоской, двухмерной поверхности дисплея или листа бумаги. В настоящее время известно несколько способов отображения трехмерной информации в объемном виде, хотя большинство из них представляет объемные характеристики весьма условно, поскольку работают со стереоизображением. Из этой области можно отметить стереоочки, виртуальные шлемы, 3D-дисплеи, способные демонстрировать трехмерное изображение. Несколько производителей продемонстрировали готовые к серийному производству трехмерные дисплеи. Но чтобы насладиться объемной картинкой, зрителю необходимо расположиться строго по центру. Шаг вправо, шаг влево, равно как и неосторожный поворот головы, карается превращением трехмерности в несимпатичное зазубренное изображение. Решение этой проблемы уже созрело в научных лабораториях. Германский Институт Фраунгофера демонстрировал 3D-дисплей, при помощи двух камер отслеживающий положение глаз зрителя и соответствующим образом подстраивающий изображение, в этом году пошел еще дальше. Теперь отслеживается положение не только глаз, но и пальца, которым можно «нажимать» трехмерные кнопки. Таким образом, становится возможным не только видеть объемную картинку, но и взаимодействовать с изображенными на ней предметами.
Однако и 3D-дисплеи по-прежнему не позволяют создавать физической, осязаемой копии математической модели, создаваемой методами трехмерной графики.
Развивающиеся с 1990-х годов технологии быстрого прототипирования ликвидируют этот пробел. Следует заметить, что в технологиях быстрого прототипирования используется представление математической модели объекта в виде твердого тела (так называемое твердотельное моделирование).

Трёхмерные дисплеи

Трёхмерные, или стереоскопические дисплеи, (3D displays, 3D screens) - дисплеи, посредством стереоскопического эффекта создающие иллюзию реального объёма у демонстрируемых изображений. Методы технической реализации стереоэффекта включают использование в комбинации со специальным дисплеем поляризованных или затворных очков, синхронизированных с дисплеем, анаглифических фильтров в комбинации со специально адаптированным изображением. Существует также относительно новый класс стереодисплеев, не требующих использования дополнительных устройств, но имеющих массу ограничений. В частности, это конечное и очень небольшое количество ракурсов, в которых стереоизображение сохраняет чёткость. Стереодисплеи, выполненные на базе технологии New Sight x3d, обеспечивают восемь ракурсов, Philips WOWvx - девять ракурсов. В октябре 2008 года компания Philips представила прототип стереодисплея с разрешением 3840×2160 точек и с рекордными 46 ракурсами «безопасного» просмотра. Вскоре после этого, однако, Philips объявил о приостановке разработок и исследований в области стереодисплеев.[1]
Ещё одна проблема стереодисплеев - это малая величина зоны "комфортного просмотра" (диапазон расстояний от зрителя до дисплея, в котором изображение сохраняет четкость). В среднем она ограниченна диапазоном от 3 до 10 метров.
Стереодисплеи сами по себе не имеют прямого отношения к трёхмерной графике. Путаница возникает вследствие использования в западных СМИ термина 3D в отношении как графики, так и устройств, эксплуатирующих стереоэффект, и некорректности перевода при публикации в российских изданиях заимствованных материалов.

Трёхмерные кинотеатры

Сейчас в кинотеатрах используются три технологии[2]: Dolby Digital Cinema 3D, XpanD и RealD.
В кинотеатрах IMAX используются поляризационные плёночные очки и серебрённый экран большого размера.

0

6

Обработка изображений

Материал из Википедии — свободной энциклопедии

Обработка изображений — любая форма обработки информации, для которой входные данные представлены изображением, например, фотографиями или видеокадрами. Обработка изображений может осуществляться как для получения изображения на выходе (например, подготовка к полиграфическому тиражированию, к телетрансляции и т. д.), так и для получения другой информации (например, распознание текста, подсчёт числа и типа клеток в поле микроскопа и т. д.). Кроме статичных двухмерных изображений, обрабатывать требуется также изображения, изменяющиеся со временем, например видео.

Основные методы обработки сигналов

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

Обработка изображений для воспроизведения

Типичные задачи
Геометрические преобразования, такие как вращение и масштабирование.
Цветовая коррекция: изменение яркости и контраста, квантование цвета, преобразование в другое цветовое пространство.
Сравнение двух и более изображений. Как частный случай - нахождение корреляции между изображением и образцом, например, в детекторе банкнот.
Комбинирование изображений различными способами.
Интерполяция и сглаживание.
Разделение изображения на области.
Редактирование и ретуширование.
Расширение динамического диапазона путём комбинирования изображений с разной экспозицией.
Компенсация потери резкости, например, путём нерезкого маскирования.

Обработка изображений в прикладных и научных целях

Типичные задачи
Распознавание текста
Обработка спутниковых снимков
Машинное зрение
Обработка данных для выделения различных характеристик
Обработка изображений в медицине
Идентификация личности (по лицу, радужке, дактилоскопическим данным)
Автоматическое управление автомобилями

0

7

Редактирование изображений

Материал из Википедии — свободной энциклопедии

Редактирование изображений (лат. redactus — приведённый в порядок) — изменение оригинала изображения аналоговыми или цифровыми методами. Также может обозначаться термином ретуширование, ретушь (фр. retoucher  — подрисовывать, подправлять). Целью редактирования является коррекция дефектов, подготовка к публикации, решение творческих задач.
Кроме статичных двухмерных изображений, обрабатывать требуется также последовательности изображений.

Что такое цвет и изображение

Свет, излучаемый или отражаемый объектами и проецируемый на участок сетчатки нашего глаза имеет сложное спектральное распределение. Cетчатка глаза состоит из рецепторов трёх видов, чувствительных к разным областям видимого света. Поэтому набора из трёх чисел достаточно, чтобы описать цвет. Плоское изображение — это функции зависимости цвета от координат, причём координаты принимают дискретные значения. Известны два основных подхода к формированию и хранению изображений: растровая графика и векторная графика, так же существуют их комбинации.

Источники изображений

Изображение с цифрового фотоаппарата может быть скопировано напрямую в компьютер для редактирования.
Негативные фотоплёнки и слайды после оцифровки с помощью сканера можно обрабатывать на компьютере. Преимуществом такого изображения является широкий динамический диапазон, отсутствие цифрового шума. Недостаток — зернистость плёнки, обычно низкое качество сканирования (получить изображение с плёнки, сопоставимое по качеству с изображением с профессиональной цифровой камеры, можно только на дорогом профессиональном сканере). С широкоформатных негативов и слайдов можно получить изображения очень большого размера и высокого качества.
Печатные оригиналы, полиграфические оттиски, напечатанные фотографии после перевода в цифровой вид с помощью сканера, можно обрабатывать на компьютере. Недостатки — малый динамический диапазон, у полиграфических оттисков — растр, который может провоцировать образование муара.
Фотобанки — большие хранилища цифровых и аналоговых изображений. Например GettyImages, Corbis
Серверы файлообмена и поисковые системы, например xchng, YotoPhoto и др. На этих ресурсах нередко можно встретить изображения без ограничений на использование.

Виды и цели редактирования изображений

Устранение дефектов изображения
*шум (случайные погрешности цвета в каждой точке изображения)
*недостаточная или избыточная яркость
*недостаточная или избыточная контрастность (вуаль или избыточный динамический диапазон изображения)
*неправильный цветовой тон
*нерезкость
*пыль, царапины, «битые пиксели»
*устранение дисторсии и виньетирования объектива

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

Редактирование изображений цифровыми методами

Сегодня редактирование аналоговых и цифровых изображений проводится в основном на компьютере растровыми редакторами в цифровом виде. Для этого изображение, даже полученное на аналоговом носителе (пленке), переводится в цифровой вид — например, при помощи сканера.
Программы для просмотра и простой обработки изображений часто поставляются вместе с цифровыми фотоаппаратами и сканерами. Более сложные и мощные программы (Adobe Photoshop, Corel PHOTO-PAINT, Paint Shop Pro, Microsoft Picture It!, Visualizer Photo Studio, Pixel image editor, PixBuilder Photo Editor, Fo2Pix ArtMaster и пр.) нужно доставать отдельно, и как правило за деньги. Исключение составляет GIMP, бесплатно распространяемая программа, возможности которой сравнимы с возможностями Adobe Photoshop.
Современные редакторы не лишены недостатков, однако грамотное их использование позволяет решить большинство задач, возникающих при редактировании изображений. Они позволяют, в какой-то степени, исправлять технические дефекты, допущенные при проведении фотосъемки.
Опыт показывает, что оригинал обрабатываемого изображения должен быть по возможности сохранён. Копии можно редактировать как угодно — это будут копия 1, копия 2, копия 3 и т. д.

Инструменты технического редактирования цифровых изображений

Для редактирования изображений применяются различные программы, однако существуют основные возможности и алгоритмы работы программ и оператора. С помощью большинства графических редакторов можно:
Выделять фрагмент изображения для обработки. В большинстве программ используется метод обработки изображения по частям. Сначала часть изображения выделяется, после чего работа ведется только с ней, не затрагивая остаток изображения. Выделение определенных участков изображения можно реализовать как указание контура (например, инструмент лассо), так и с использованием редактируемых масок. Последний вариант предоставляет больше возможностей. Выделенную часть изображения обычно можно также двигать, вращать, масштабировать, деформировать, дорисовывать и т. п.
Выделение может быть как временное, так и постоянное — выделенная часть изображения в различных графических редакторах может быть оформлена как постоянный «слой» или «объект». Это позволяет разбивать изображение на фрагменты, которые накладываются друг на друга, и модифицировать каждый из них отдельно.
Выбирать алгоритм, который программа применит ко всему изображению, группе изображений, выделенному фрагменту или объекту.

Инструменты структурного редактирования цифровых изображений

Изменение размера изображения, кадрирование-Размер изображения может быть изменён до необходимого с помощью математических алгоритмов, которые высчитывают цвет пикселей исходя из цвета пикселей оригинала. Следует учитывать, что при увеличении изображений теряется резкость, при уменьшении — детализация.
Часто композицию изображения можно также улучшить, удалив лишние области по краям. Это называется кадрированием.

Коллажирование (монтаж)-Создание из частей нескольких изображений нового изображения.

Обтравка-Обтравкой называется процесс отделения какого-то объекта на изображении от фона.

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

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

Ориентация изображения-Программы редактирования могут поворачивать изображения под любым углом или отражать зеркально.

Фильтры и спецэффекты-Фильтры и спецэффекты используются для придания изображению необычного вида. С помощью фильтров картинка может быть искажена необычным образом, стилизована, может быть добавлена видимость объемного рельефа, изменены цвета.

Расширение динамического диапазона изображения-Расширение динамического диапазона изображения путём комбинирования фотографий одного сюжета, полученных с разной экспозицией. Для этого делается несколько кадров с одним положением камеры (желательно со штатива). При обработке, изображения с разной экспозицией объединяются в одно. Это позволяет зафиксировать высококонтрастный сюжет без выбеливания ярко освещённых объектов и без недопустимого зашумления тёмных деталей. Можно например, получить чёткое изображение ярко освещённых объектов за окном и при этом не потерять деталей в неосвещённых областях внутри помещения. Основной задачей здесь является:
*совмещение изображений
*адаптация высококонтрастного (HDR) изображения под устройство вывода

Цветокоррекция

Цветокоррекция — внесение изменений в цвет оригинала. Многие относят к цветокоррекции те процедуры, которые не связаны с изменением сюжета изображения. В более узком смысле цветокоррекция — это такое преобразование изображения, объекта или фрагмента, когда новый цвет обрабатываемого пикселя зависит от старого значения этого пикселя и не зависит от соседних пикселей.
Основная причина, по которой приходится выполнять коррекцию цвета, следующая: человеческий глаз имеет способность адаптироваться к силе и спектральным характеристикам освещения таким образом, что сохраняется восприятие цвета предметов в большинстве случаев независимо от спектрального состава освещения, камера же фиксирует световое излучение без адаптации и, при просмотре в других условиях, фотографии иногда сильно отличаются от того, что мы видели, когда фотографировали. Для устранения этой проблемы в фотографии используются алгоритмы выбора и настройки белого цвета. Эти алгоритмы уже можно назвать цветокоррекцией.
Другие причины применения цветокоррекции: недостаточный или избыточный контраст изображения, вуаль, выцветание изображения. Также необходимо отметить цветокоррекцию с целью внесения гармонии между фотоизображениями и дизайном публикации либо содержанием материалов, подобную процессу фотопечати в фотографическом искусстве.
Как и любой другой метод, цветокоррекцию можно применить как инструмент реализации творческого замысла или пожеланий заказчика.
Цифровое изображение всегда представлено в какой-то цветовой модели (Red Green Blue, Lab, и др.), подраземевающей несколько (три, как правило) характеристик для каждой точки изображения (пиксела). Характеристики всех точек изображения называют каналами. Например, в модели RGB каждый пиксел характеризуется значением яркости красной, зелёной и синей составляющих его цвета. Соответственно, в изображении можно выделять каналы красного, зелёного и синего цветов. Функции могут быть заданы как независимые для каждого канала, так и более сложные — например, «Смешение каналов» (Channel Mixer).
Методы преобразования цвета могут быть самыми разными, однако наиболее часто используемыми методами цветокоррекции являются следующие:
Указание аргументов для функций преобразования входных значений в выходные. В программах эти инструменты называются «уровни», «гамма» и т. п. Иногда наборы значений аргументов выбираются из перечня заранее заданных вариантов. К этому виду преобразований можно отнести так же
Установка баланса белого (учёт освещения) при преобразовании электронного сигнала матрицы в файл изображения или сканировании пленки;
Преобразования, непосредственно задающие изменения контрастности, яркости, гаммы, тона, светлоты, насыщенности изображения или его частей;
Непосредственное задание графиков преобразования значений по каналам. Этот инструмент обычно называется «Кривые» (Curves). Он позволяет выполнить любые преобразования внутри каждого канала путём ручного формирования графика, аналогичного тем, которые вычисляются функциональными алгоритмами по заданным аргументам. При том, что функции типовых преобразований — уровней, контрастности, яркости, гаммы и т. п. — простые и довольно понятные, инструмент «Кривые» способен оказаться гибче и нагляднее отдельных функциональных преобразований.

0

8

Теория распознавания образов

Материал из Википедии — свободной энциклопедии

Теория распознава́ния о́бразов — раздел кибернетики, развивающий теоретические основы и методы классификации и идентификации предметов, явлений, процессов, сигналов, ситуаций и т. п. объектов, которые характеризуются конечным набором некоторых свойств и признаков. Такие задачи решаются довольно часто, например, при переходе или проезде улицы по сигналам светофора. Распознавание цвета загоревшейся лампы светофора и знание правил дорожного движения позволяет принять правильное решение о том, можно или нельзя переходить улицу в данный момент.
В процессе биологической эволюции многие животные с помощью зрительного и слухового аппарата решили задачи распознавания образов достаточно хорошо. Создание искусственных систем распознавания образов остаётся сложной теоретической и технической проблемой. Необходимость в таком распознавании возникает в самых разных областях — от военного дела и систем безопасности до оцифровки всевозможных аналоговых сигналов.
Традиционно задачи распознавания образов включают в круг задач искусственного интеллекта.

Направления в распознавании образов

Можно выделить два основных направления:

*Изучение способностей к распознованию, которыми обладают живые существа, объяснение и моделирование их;
*Развитие теории и методов построения устройств, предназначенных для решения отдельных задач в прикладных задачах.

Формальная постановка задачи

Распознавание образов - это отнесение исходных данных к определенному классу с помощью выделения существенных признаков, характеризующих эти данные из общей массы несущественных данных.
При постановке задач распознования стараются пользоваться математическим языком, стараясь в отличии от теории искусственных нейронных сетей, где основой является получение результата путем эксперимента, заменить эксперимент логическими рассуждениями и математическими доказательствами.
Наиболее часто в задачах распознования образов рассматриваются монохромные изображения, что дает возможность рассматривать изображение как функцию на плоскости. Если рассмотреть точечное множество на плоскости T, где функция x(x,y) выражает в каждой точке изображения его характеристику - яркость, прозрачность, оптическую плотность, то такая функция есть формальная запись изображения.
Множество же всех возможных функций x(x,y) на плоскости T - есть модель множества всех изображений X. Вводя понятие сходства между образами можно поставить задачу распознавания. Конкретный вид такой постановки сильно зависит от последующих этапов при распозновании в соответствии с тем или иным подходом.

Методы распознавания образов

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

Перцептрон как метод распознавания образов

Ф. Розенблатт вводя понятие о модели мозга, задача которой состоит в том, чтобы показать, как в некоторой физической системе, структура и функциональные свойства которой известны, могут возникать психологические явления - описал простейшие эксперименты по различению. Данные эксперименты целиком относятся к методам распознавания образов, но отличаются тем что алгоритм решения не детерминированный.
Простейший эксперимент, на основе которого можно получить психологически значимую информацию о некоторой системе, сводится к тому, что модели предъявляются два различных стимула и требуется, чтобы она реагировала на них различным образом. Целью такого экперимента может быть исследование возможности их спонтанного различения системой при отсутствии вмешательства со стороны экспериментатора, или, наоборот, изучение принудительного различения, при котором экспериментатор стремится обучить систему проводить требуемую классификацию.
В опыте с обучением перцептрону обычно предъявляется некоторая последовательность образов, в которую входят представители каждого из классов, подлежащих различению. В соответствии с некоторым правилом модификации памяти правильный выбор реакции подкрепляется. Затем перцептрону предъявляется контрольный стимул и определяется вероятность получения правильной реакции для стимулов данного класса. В зависимости от того, совпадает или не совпадает выбранный контрольный стимул с одним из образов, которые использовались в обучающей последовательности, получают различные результаты:
1. Если контрольный стимул не совпадает ни с одним из обучающих стимулов, то эксперимент связан не только с чистым различением, но включает в себя и элементы обобщения.
2. Если контрольный стимул возбуждает некоторый набор сенсорных элементов, совершенно отличных от тех элементов, которые активизировались при воздействии ранее предъявленных стимулов того же класса, то эксперимент является исследованием чистого обобщения.
Перцептроны не обладают способностью к чистому обобщению, но они вполне удовлетворительно функционируют в экспериментах по различению, особенно если контрольный стимул достаточно близко совпадает с одним из образов, относительно которых перцептрон уже накопил определенный опыт.

Примеры задач распознавания образов

*Распознавание букв.
*Распознавание штрих-кодов.
*Распознавание автомобильных номеров.
*Распознавание лиц.
*Распознавание речи.
*Распознавание изображений.
*Распознавание локальных участков земной коры, в которых находятся месторождения полезных ископаемых.

Программы распознавания образов

*CuneiForm
*FineReader
*Readiris
*NI Vision (на основе программного комплекса LabVIEW от National Instruments)

Пример:
Автоматическое распознавание лиц специальной программой.

0

9

Классификация алгоритмов компьютерной графики

Алгоритмы машинной графики можно разделить на два уровня : нижний и верхний. Группа алгоритмов нижнего уровня предназначена для реализации графических примитивов (линий, окружностей, заполнений и т.п.). Эти алгоритмы или подобные им воспроизведены в графических библиотеках языков высокого уровня (BGI в Турбо - Паскале) или реализованы аппаратно в графических процессорах рабочих станций (Silicon Graphics и др.).

Среди алгоритмов нижнего уровня можно выделить следующие группы :

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

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

К третьей группе следует отнести алгоритмы, которые могут быть без больших затруднений реализованы аппаратно (допускающие распараллеливание, рекурсивные, реализуемые в простейших командах). В эту группу могут попасть и алгоритмы, представленные в первых двух группах.

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

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

К задаче удаления невидимых линий и поверхностей примыкает задача построения (закрашивания) полутоновых (реалистических) изображений, т.е. учета явлений, связанных с количеством и характером источников света, учета свойств поверхности тела (прозрачность, преломление, отражение света).

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

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

Особенности растровой графики связаны с тем, что обычные изображения, с которыми сталкивается человек в своей деятельности (чертежи, графики, карты, художественные картины и т.п.), реализованы на плоскости, состоящей из бесконечного набора точек. Экран же растрового дисплея представляется матрицей дискретных элементов, имеющих конкретные физические размеры. При этом число их существенно ограничено. Поэтому нельзя провести точную линию из одной точки в другую, а можно выполнить только аппроксимацию этой линии с отображением ее на дискретной матрице (плоскости). Такую плоскость также называют целочисленной решеткой, растровой плоскостью или растром. Эта решетка представляется квадратной сеткой с шагом 1. Отображение любого объекта на целочисленную решетку называется разложением его в растр или просто растровым представлением.

Построение линий, окружностей, эллипсов

Проще всего начертить линию можно с помощью уравнения y=ax+b. При этом результаты надо округлять до целых, поэтому прямая будет неровная.

Если наоборот, нужно соединить 2 точки с заданными координатами (х1, y1), (x2, y2), то:

a = (y2-y1) / (x2-x1);  b = y1 - a*x1;
Уравнение окружности выглядит следующим образом:

x = xc + r*cos(a);  y = yc + r*sin(a),
где (xc, yc) - координаты центра окружности, r - радиус, a - угол для текущей точки (x, y).

Можно строить окружность прямо по этому уравнению, задав определенный шаг по углу (a = 0..360 с шагом DA). Однако, если шаг будет слишком мал, окружность за счет округления координат будет неровная и некоторые точки будут высвечиваться по несколько раз. Обычно шаг по углу выбирается равным 1/r радиан, (чаще всего шаг изменения угла должен быть переменным для того, чтобы избежать разрывов или отсутствия изменения координат).

Можно осуществить простой алгоритм аппроксимации отрезками.

Например, координаты 6 отрезков получаются с шагом 60 градусов, затем они соединяются прямыми линиями.

Для быстрого построения используется симметрия окружности (вычисляются координаты точек только 1/8 части окружности - для сегмента от 0 до 45 градусов). Кроме того, можно уйти от операций синуса/косинуса, если выразить координаты следующей точки окружности из предыдущей (рекуррентная формула) :

x2 = xc + (x1-xc)  * CA + (y1-yc) * SA;
y2 = yc + (y1-yc)  * CA - (x1-xc) * SA,  где
SA = sin(DA), CA =  cos(DA).
Начальная точка для рекуррентной формулы: x1 = xc, y1 = yc+r.

При построении окружностей следует учитывать, что размеры пикселов по вертикали и горизонтали не совпадают (кроме VGA 640x480) и окружности будут вытягиваться в эллипсы. Для того чтобы избежать этого, нужно вводить по выравнивающие коэффициенты (которые можно определить по GetAspectRatio). Сами же эллипсы описываются уранениями:

x = xc + rx *  cos(a); y = yc + ry  * sin(a),
где rx, ry - полурадиусы.

Общие принципы построения для них те же, что и для окружностей.

Алгоритм Брезенхема

Алгоритм Брезенхема (Bresenham) был разработан в 1965 году для цифровых графопостроителей, а затем стал использоваться для растровых дисплеев.

Идея алгоритма заключается в том, что одна координата изменяется на единицу, а другая - либо не изменяется, либо изменяется на единицу в зависимости от расположения соответствующей точки от ближайшего узла координатной сетки. Расстояние от точки отрезка до ближайшего узла по соответствующей ортогональной координате называется ошибкой. Алгоритм организован таким образом, что для вычисления второй координаты требуется только определять знак этой ошибки. Величину ошибки Delta можно определить в соответствии со следующим выражением:

Delta = Yуз - Yот  ,
где Yуз - координата Y ближайшего узла при X = 1, Yот - координата Y отрезка при X = 1.

Если при X = 1 координата Y точки отрезка равна 1/2, то узлы координатной сетки (1,0) и (1,1) находятся на одинаковом расстоянии от отрезка и в качестве "ближайшего" выбирается узел (1,1). Таким образом, если Yот >= 1/2, то Delta >=0, в противном случае, при Yот < 1/2, Delta < 0. Для организации вычислений удобнее пользоваться не величиной Delta, а другой, определяемой как величина d = Delta - 1/2. При изменении координаты X на 1 величина d меняется на значение углового коэффициента: d = d + dY / dX. На каждом шаге алгоритма производится вычисление координаты Х, величины d и выполняется анализ знака d. При этом, если окажется, что d >= 0, то производится увеличение Y на 1, а значение d корректируется путем вычитания из нее 1.

С учетом изложенного алгоритм аппроксимации отрезка в первом октанте можно представить в следующем виде :

Х := Х1; Y : =  Y1;
dX := X2 - X1;
dY := Y2 - Y1;
d : = - 1/2;
while X =< X2 do
PutPixel (X, Y);
X := X + 1;
d := d + dY  / dX;
if d >= 0 then
begin
  Y := Y +  1;
  d := d -  1
end
end while.
Представленный алгоритм использует вещественные числа и операцию деления. Оба недостатка можно исключить заменой величины d на другую, равную D = 2 * dX * d. В соответствии с этим арифметические выражения, в которых участвует d, модифицируются путем умножения обеих частей на величину 2 * dХ.

Тогда алгоритм принимает вид :

X := X1; Y := Y1;
dX := X2 - X1;
dY := Y2 - Y1;
D := - dX;
while X =< X2 do
PutPixel (X, Y);
X := X + 1;
D := D + 2  * dY;
if D >= 0 then
begin
  Y := Y +  1;
  D := D -  2 * dX;
end
end while.
Последний вариант алгоритма можно еще улучшить, если операцию умножения на 2 заменить операцией сдвига влево на один разряд. Кроме того, если вычисление 2 * dX и 2 * dY выполнить перед циклом, то операцию сдвига потребуется выполнить только два раза.

Тогда алгоритм принимает окончательный вид :

X := X1; Y := Y1;
dX := X2 - X1;
dY := Y2 - Y1;
D := - dX;
Dx := dX shl 1;
Dy := dY shl 1;
while X =< X2 do
PutPixel (X, Y);
X := X + 1;
D := D + Dy;
if D >= 0 then
begin
  Y := Y +  1;
  D := D -  Dx 
end
end while.
Оценивая достоинства полученного алгоритма, можно отметить, что он выполняет оптимальную аппроксимацию отрезка, используя при этом целочисленную арифметику и минимальное количество операций сложения и вычитания. Кроме того, алгоритм позволяет использовать его и в остальных октантах плоскости.

В алгоритме Брезенхема для всех октантов линия рассматривается как набор сегментов двух типов: тех, которые расположены диагонально и тех, которые расположены горизонтально или вертикально. Для линий с наклоном больше 1 прямые сегменты вертикальны, <= 1 - горизонтальны. Первая задача алгоритма состоит в вычислении наклона. Затем вычисляется выравнивающий фактор, который следит, чтобы некоторое число прямых сегментов имело большую длину, чем остальные. В цикле по большему отрезку (по x или по y) BX поочередно принимает то положительные, то отрицательные значения, отмечая какой тип сегмента выводится - диагональный или прямой.

В алгоритме проводится линия от (x1, y1) к (x2, y2). Используются некоторые регистры и переменные, назначение которых комментируется.

procedure Linija(x0,y0,x1,y1:Integer);
var x,y,dx,dy,ix,iy,p,i:Integer;
begin
  dx:=abs(x1-x0);
  dy:=abs(y1-y0);
  x:=x0;
  y:=y0;
    If (x1-x0)<0 Then    ix:=-1  //proverka napravlenija
     Else ix:=1;                 //     ix,iy - shagi dlja x, y
    if y1-y0<0 Then iy:=-1       //
     else iy:=1;                 //

    If dx>=dy Then     //dlja naklona <= 45 gr.
      begin
        p:=2*dy-dx;
         for i:=1 To dx do
          begin
            if p>0 Then
              begin
                x:=x+ix;
                y:=y+iy;
                p:=p+2*(dy-dx);
                form1.Canvas.Pixels[x,y]:=$000000;
              end
            else
             begin
              x:=x+ix;
              y:=y;
              p:=p+2*dy;
              form1.Canvas.Pixels[x,y]:=$000000;
             end;

          end;
      end

     Else           //dlja naklona >  45 gr.
       begin
                                           //
         p:=2*dx-dy;                       //
         for i:=1 To dy do                 //
          begin                            //
            if p>0 Then                    //
              begin                        //
                y:=y+iy;                   //
                x:=x+ix;                   //
                p:=p+2*(dx-dy);
                form1.Canvas.Pixels[x,y]:=$000000;        //
              end                          //
            else                           //
             begin                         //
              y:=y+iy;                     //
              x:=x;                        //
              p:=p+2*dx;
              form1.Canvas.Pixels[x,y]:=$000000;                  //
             end;                          //
//

ЗАПОЛНЕНИЕ СПЛОШНЫХ ОБЛАСТЕЙ

Заполнение областей может быть выполнено двумя способами- сканированием строк и затравочным заполнением.

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

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

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

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

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

var
X,Y: integer: { координаты  затравочной точки}
oldcolor: word: { исходное  значение цвета}
newcolor: word: { новое  значение цвета}
framcolor: word: { цвет  границы}
begin
помещаем пиксел в Stack;
while (Stack не пуст)  do
begin
  извлекаем пиксел из  Stack;
  PutPixel (X, Y,  newcolor) ;
  для точек (Xт,  Yт), соседних с (Х, Y):
  (X+1, Y); (X,  Y+1); (X-1, Y); (X, Y-1),
  проверяем условие:
  if GetPixel (Xт,  Yт) = newcolor and
   GetPixel (Xт,  Yт) = framcolor
  then помещаем (Xт,  Yт) в Stack;
end
end.

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

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

Процедура затравочного заполнения областей, описанная выше, обладает двумя недостатками: стек заполняется большим количеством повторяющихся точек, что приводит к существенным временным затратам при их анализе и, как следствие, требуется стек большого объема. Однако эти проблемы легко разрешить изящным методом перестановки местами операций помещения точек в стек и их закраски.

Тогда процедура будет записана следующим образом :

begin
PutPixel (X, Y, newcolor)  ;
помещаем пиксел в Stack;
while (Stack не пуст)  do
begin
  извлекаем пиксел (X,  Y) из Stack;
  для точек (Xт,  Yт) , соседних с (X,  Y) :
   (X+ 1,Y); (X,  Y+1); (X-1, Y); (X, Y-1),
  проверяем условие:
  if GetPixel (Xт,  Yт) = newcolor and
   GetPixel (Xт,  Yт) = framcolor
  then
  begin
   PutPixel (Xт,  Yт, newcolor);
   помещаем (Xт,  Yт) в Stack
  end
end
end.

Другой метод повышения эффективности затравочного заполнения областей заключается в организации построчного заполнения непрерывного интервала на сканирующей строке с одной затравочной точкой.

Удаление невидимых линий и поверхностей

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

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

Алгоритмы удаления невидимых линий и поверхностей классифицируются по способу выбора систем координат или пространства, в котором они работают.

Первый класс - это алгоритмы, работаюшие в объектном пространстве, имеющие дело с физической системой координат (мировые координаты), в которой они описаны.

Второй класс алгоритмов работает в пространстве изображения и имеет дело с системой координат того устройства, на котором эти объекты синтезируются.

* - существует большое число смешанных методов, объединяющих оба подхода

Алгоритмы первого класса используются в тех случаях, когда требуется высокая точность изображения объектов. Синтезируемые в этом случае изображения можно свободно увеличивать (уменьшать) во много раз, сдвигать или поворачивать. Точность вычислений алгоритмов второго класса ограничивается разрешающей способностью экрана. Результаты, полученные в пространстве изображения, а затем увеличенные (уменьшенные) во много раз, не будут соответствовать исходной сцене.

Наиболее часто используются алгоритмы Робертса, Аппеля, Варнока, Вейлера-Азертона, алгоритм, использующий список приоритетов (упорядочений), метод Z-буфера, метод построчного сканирования.

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

Для реализации алгоритмов удаления невидимых линий часто используются алгоритмы нижнего уровня - отсечения отрезка (алгоритм Сазерленда - Кохена) и алгоритм принадлежности точки многоугольнику.

Отсечение нелицевых граней

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

Алгоритм Робертса

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

Возможны следующие случаи :

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

Алгоритм Аппеля

Этот алгоритм основан на понятии количественной невидимости точки, как кол-ва лицевых граней, ее закрывающих. Точка является видимой только в том случае, если ее количественная невидимость = 0.

Метод Z-буфера

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

Сопоставим каждому пикселу (x, y) картинной плоскости его расстояние вдоль напрвления проектирования z(x, y) - его глубину. Изначально массив глубин инициализирутся бесконечностью. Для вывода на картинную плоскость произвольной грани она переводится в свое растровое представление и для каждого пиксела этой грани находится его глубина. В случае, если эта глубина меньше значения глубины, хранящегося в Z-буфере, то этот пиксел рисуется и его глубина заносится в Z-буфер.

Алгоритмы упорядочения

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

Метод построчного сканирования

x
Это еще один пример метода, работающего в простанстве картинной плоскости. Все изображение на картинной плоскости можно представить как ряд горизонтальных (вертикальных) линий пикселов. Рассмотрим сечение счены плоскостью, проходящей через такую линию пикселов и центр проектирования. Пересечением этой плоскости с объектами сцены будет множество непересекающихся (за исключением концов) отрезков, к-рые и небходимо спроектировать. Задача удаления невидимых линий для такого набора отрезков решается тривиально.

Т.о. исходная задача удаления невидимых граней разбивается на набор гораздо более простых задач. Подобные алгоритмы успешно применяются для создания компьютерных игр (Wolfenstein 3D).

Принципы построения полутоновых изображений

Световая энергия, падающая на пов-ть от источника света, может быть поглощена, отражена или пропущена. Количество энергии зависит от длины световой волны. При этом цвет пов-ти объекта определяется поглощенными длинами волн.

Разработано множество способов закрашивания : гранением, пропорциональное закрашивание, закрашивание по способу Гуро, закрашивание по способу Фонга, закрашивание способом трассировки лучей (лучей зондирования). Эти способы требуют различного количества процессорного времени и, следовательно, обеспечивают различное качество изображения.

Самый простой способ закрашивания назывется гранением (faceting). Он требует сравнительно небольших ресурсов компьютера, поскольку предполагает лишь заполнение каждого из многоугольников одним цветом или оттенком. Однако способ слишком примитивен; закрашенные этим способом объекты выглядят не плавными.

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

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

Такое закрашивание носит название способа Гуро и осуществляется в четыре этапа:

*вычисление нормалей к поверхности;
*определение нормалей в вершинах путем усреднения нормалей по граням, которым принадлежит данная вершина;
вычисление интенсивности в вершинах;
*закрашивание многоугольника путем линейной интерполяции значений интенсивности вдоль ребер и между ребрами.
*Основной недостаток - эффект полосы Маха : на ребрах смежных многоугольников возникает полоса разрыва непрерывности.

Закрашивание по способу Фонга решает проблемы полосы Маха, поскольку предполагает плавное изменение яркости и насыщенности не только вдоль ребер каждого многоугольника, но и по самой поверхности (вдоль сканирующей строки интерполируется значение вектора нормали, который затем используется в модели освещения для вычисления интенсивности пиксела). При этом даже зеркальные блики на поверностях выглядят вполне правдоподобно (в 3D Studio 4.0 помимо методов Гуро и Фонга добавилось еще закрашивание Metal).

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

Выпустим из каждого источника света пучок лучей во все стороны и мысленно проследим (оттрассируем) дальнейшее распространение каждого из них до тех пор, пока лиюо он не попадет в глаз наблюдателя, либо не покинет сцену. При попадпнии луча на границу объекта выпускаем из точки попадания отраженный и преломленный лучи и отслеживаем их и все порожденные ими лучи. Описанный выше процесс называется прямой трассировкой лучей. В результате его выполнения можно получить изображение сцены, однако он требует огромных вычислительных затрат. Причем, в получаемое изображение вносит вклад лишь небольшая часть трассируемых лучей. Чтобы избежать этого, попытаемся отследить лишь те лучи, которые попадают в глаз наблюдателя. Проследим путь луча, выходящего из глаза наблюдателя и проходящего через соответсвующую точку экрана. Цвет соответствующей точки экрана будет определяться долей световой энергии, попадающей в эту точку и покидающей ее в направлении глаза. Для этого из нее выпускаются лучи в тех направлениях, из которых может прийти энергия. Это, в свою очередь, может привести к определению точек пересечения соответствующих лучей с объектами сцены, выпускания новых лучей и т.д.

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

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

Существуют разные способы моделирования текстуры :

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

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

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

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

источники http://www.codenet.ru/progr/alg/alg.php
                личные ресурсы

0

10

Алгоритмы компьютерной графики
Сайт Вашингтонского университета, лаборатория графики и обработки изображений (GRAIL)

http://grail.cs.washington.edu/pub/

На сайте много документации и видеоматериалов, касающихся алгоритмов компьютерной графики. В основном с siggraph.

C 2003 SIGGRAPH'а там выложены следующие документы:

2003 Adaptive Grid-Based Document Layout
Estimating Cloth Simulation Parameters from Video
Keyframe Control of Smoke Simulations
Layered Acting for Character Animation
Realistic Modeling of Bird Flight Animation
Shadow Matting and Compositing
Shape and Materials by Example: A Photometric Stereo Approach
Shape and Motion under Varying Illumination: Unifying Structure from Motion,
Photometric Stereo, and Multi-view Stereo
A Sketching Interface for Articulated Animation
Spacetime Stereo: Shape Recovery for Dynamic Scenes
View-Dependent Refinement of Multiresolution Meshes with Subdivision Connectivity
The space of human body shapes: reconstruction and parameterization from range
scans

0

11

сКоЛьКо МнОгО бУкАф... не осилила... но просмотрела немного:)
Спасибо за статьи

0

12

Гермион4ик написал(а):

сКоЛьКо МнОгО бУкАф

:D Это не просто буквы, а осмысленный текст.

0

13

и тут компьютерная графика О_о
я бы приняла это за глюки уже,если бы сегодня это программировала

0

14

Хы, а я как раз сейчас программирую 3D.. Но графика здесь не глюки. Хотелось бы выложить сюда какие-нибудь полезные материалы на эту тему. Может кому-то и пригодиться в учебе.

0

15

Reina написал(а):

Хы, а я как раз сейчас программирую 3D

бр,не напоминай даже,мне это послезавтра предстоит...

Reina написал(а):

Может кому-то и пригодиться в учебе.

вполне может быть

0

16

Вот только как бы сюда еще и книжки по графике выложить..

0


Вы здесь » Морской форум » Компьютеры, интернет, техника » Компьютерная графика