русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритмы вычерчивания отрезков.


Дата добавления: 2013-12-23; просмотров: 1063; Нарушение авторских прав


 

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

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

Алгоритм Брезенхема для генерации окружностей. Вначале необходимо сгенерировать только одну восьмую часть окружности. Остальные ее части могут быть получены последовательными отражениями. Если сгенерирован первый октант (от 0° до 45° против часовой стрелки), то второй октант можно получить зеркальным отражением относительно прямой у = х, что дает в совокупности первый квадрант. Первый квадрант отражается относительно прямой х = 0 для получения соответствующей части окружности во втором квадранте. Верхняя полуокружность отражается относительно прямой у = О для завершения построения.

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



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

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

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

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

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

Более подробно математическая реализация вопросов визуализации графических объектов приведена в [7].

 

9. Форматы хранения графической информации

 

9.1. Форматы

 

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

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

В процессе редактирования изображения зачастую приходится использовать маски. Поэтому, если к редактированию еще пред­стоит вернуться, то необходимо использовать формат, в котором помимо изображения будут сохраняться и маски.

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

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

Форматы можно разделить на три категории:

1. Форматы, хранящие изображение в растровом виде;

2. Форматы, хранящие изображение в векторном виде;

3. Универсальные форматы, совмещающие растровое и векторное представление.

Формат имеет право на существование только по двум причинам:

- хорошо сжимать данные, т.е. уменьшать размер файла;

- содержать дополнительную информацию о сохраненном изображении.

 

9.2. Векторные форматы файлов

 

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

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

Векторный формат EPS (Encapsulated PostScript) является вариантом PostScript-файла. Он разработан фирмой Adobe как универсальный формат для нужд цифровой графики и полиграфии.

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

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

Векторный формат PDF (Portable Document Format – (переносимый формат документов) - это еще один формат на базе языка PostScript. А именно, его оптимизированная версия, ориентированная как межплатформенный формат, интегрирующий макет страницы с иллюстрациями, как векторными, так и пиксельными, шрифтами, гипертекстовыми ссылками, звуками и анимационными фрагментами. Для обеспечения небольшого размера используются разные способы компрессии.

Формат AI принадлежит фирме Adobe и является внутренним форматом векторного редактора Adobe Illustrator.

Векторный формат CDR принадлежит фирме Corel и является внутренним форматом векторного редактора CorelDRAW.

Векторные форматы DWG и DXF является внутренним форматом векторного редактора Автокад.

Векторный формат FH с порядковым номером версии принадлежит фирме Macromedia и является внутренним форматом векторного редактора FreeHand.

 

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

 

9.3.1. Формат PCX

 

Формат PCX - один из первых растровых форматов, создан фирмой Zsoft для программы Paintbrush. Основной недостаток формата наличие большого числа версий. В настоящее время не имеет широкого распространения, и используется только для совместимости со старыми программами. Основные характеристики графических форматов смотрите в таблице 7.

 

9.3.2. Формат BMP

 

BMP (Windows Bitmap) – растровый рисунок Windows – собственный формат MA Paint. Поддерживается большинством приложений и графических пакетов. Поддерживается всеми графическими редакторами, работающими в ОС Windows. Можно задавать глубину цвета от 1 до 32 бит. Возможно применение сжатия RLE, причем только с глубиной цвета 4 или 8 бит. Но делать этого не рекомендуется, т.к. некоторые программы используют файлы с таким расширением.

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

Основной недостаток – большой размер файла. Из-за примитивной обработки изображения (изображение хранится в виде "снимка с экрана") расходуется много системных ресурсов.

 

9.3.3. Формат TIFF

 

TIFF (Togged Image File Format) – формат создан фирмами Aldus и Microsoft специально для хранения сканированных изображений. Название формата означает "теговый изобразительный файл".

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

Поддерживает большинство алгоритмов сжатия. Доступен весь диапазон цветовых моделей. Наибольшую степень компрессии обеспечивает алгоритм LZV. Поддерживается большинством графических пакетов. Позволяет осуществлять обмен между платформами РС, UNIX и Macintosh.

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

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

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

В последних версиях программы Adobe Photoshop этот формат позволяет сохранять документы со слоями, что ранее было возможно только во внутреннем формате программы PSD. Кстати, появилась возможность выбирать метод сжатия (LZW, Deflate или JPEG) и сохранять копии изображения с разным разрешением (функция "image pyramid").

Совокупность таких тегов образует область IFD, что означает Image File Directory - "указатель изображений файла". Формат позволяет включать в документ несколько таких указателей, а, следовательно, и несколько изображений.

Модифицированный формат TIFF фактически мало уступает собственному формату Adobe Photoshop – PSD.

 

9.3.4. Формат PSD

 

В последнее время формат PSD поддерживается несколькими программами (Adobe Illustrator, Corel PHOTO-PAINT и др.), поэтому можно уже говорить о некоторой его универсальности. О последних версиях формата можно долго не говорить – он поддерживает почти все, что используется в растровых форматах. Основные недостатки – очень большой объем файла и ограниченность применения.

 

9.3.5. Формат GIF

 

GIF (Graphic Interchange Format) – формат графического обмена, разработан фирмой CompuServe в 1987 году как экономный формат для хранения пиксельных изображений для глобальных сетей. Формат GIF ориентирован на максимальную компактность. Используется только по своему первоначальному назначению – в Интернете. В последней версии 89а позволяет сохранять несколько картинок с указанием времени показа каждой. Результатом является простейшая анимация. Имеется возможность постепенного появления изображения – сначала появляется каждая 8 картинка, затем каждая 4, 2 и т.д. Плюсом является многоплатформенность. Кроме того, формат достаточно эффективно использует память.

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

Формат GIF сходит со сцены из-за своей убогости – 256 цветов, проблемы со сжатием (только LZW), не поддерживает полутоновые изображения и др.

 

9.3.6. Формат PNG

 

PNG – (Portable Network Graphics) – преемник формата GIF - переносимая графика для сети, произносится как "пинг". Является форматом, который специально создан для размещения графики на Web-страницах. Поддерживает 48 бит/пиксель. Используется не запатентованный алгоритм сжатия Deflection, поддерживает прозрачность слоев, сохраняет текстовые вставки.

Существует два варианта формата: PNG8 и PNG24, цифры в названии формата означают максимальную глубину цвета. В варианте PNG24 реализована поддержка градационной прозрачности за счет альфа канала с 256 оттенками серого.

Недостатками являются: отсутствие сжатия с потерями, и формат не сохраняет информацию о нескольких изображениях.

 

 

9.3.7. Формат JPEG

 

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

Существует несколько разновидностей формата. Формат baseline лучше сжимается, но не поддерживается некоторыми браузерами. Формат progressive JPEG несколько хуже сжимает, но поддерживает чересстрочный вывод изображения, значительно сокращая время передачи и вывода изображения. Существует еще несколько малораспространенных разновидностей (ariphmetic и loseless).

Недостатками JPEG являются:

- ограничения сжатия из-за ограничения размера блока 8х8;

- на высоких уровнях сжатия проявляется блочность структуры изображения;

- закругление острых углов изображения;

- размывание тонких элементов изображения;

- невозможность отображения по частям (как в GIF).

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

 

9.3.8. Формат RAW

 

RAW – (Read After Write) – представляет самые широкие возможности для фотографии. Другие форматы, используемые в фотографии, записывают вместе с изображением и информацию о балансе белого, цветовой насыщенности, резкости и др. В формат RAW записывается само, не обработанное изображение. Отдельно в заголовке указываются параметры, выбранные фотографом. В программах, называемых RAW-конверторами можно решать, применять ли выбранные при съемке установки или применить другие. Формат позволяет даже скорректировать неверно выбранную экспозицию, благодаря некоторой избыточности информации в файле (глубина цвета 16 бит против 8 бит в JPEG и TIFF). Некоторые производители фотоаппаратуры привносят свои изменения в формат RAW, поэтому для работы с ним требуется уникальный RAW-конвертор. Универсальным RAW-конвертором является Adobe Photoshop CS8. Размеры файла в формате RAW меньше, чем в формате TIFF, т.к. изображение не проходит обработку, а вся интерполяция осуществляется на компьютере.

В таблице 7 приведена краткая характеристика основных растровых графических форматов.



<== предыдущая лекция | следующая лекция ==>
Рабочее трехмерное пространство | КОНСПЕКТ ЛЕКЦИЙ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.