Исследование алгоритмов фрактального сжатия изображений

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.06.2011
Размер файла 626,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • 1. Теоретическая часть
    • 1.1 Понятие "фрактал"
    • 1.2 Применение фракталов
    • 1.3 Теория хаоса
    • 1.4 Интеграция детерминированных фракталов и хаос
    • 1.5 Виды фракталов
    • 1.6 Дерево Фейгенбаума и Множество Мандельброт
  • Заключение
  • Список использованных источников
  • Приложение 1
  • ВВЕДЕНИЕ
  • Развитие сети Internet, наряду с доступностью все более мощных компьютеров и прогрессом в технологии производства цифровых камер, сканеров и принтеров, привели к широкому использованию цифровых изображений. В связи с этим растет интерес к улучшению алгоритмов сжатия данных, представляющих изображения.
  • Сжатие данных актуально как для скорости передачи, так и эффективности хранения. Кроме многих видов коммерческого использования, технологии сжатия представляют также интерес в военной области, например, приложения обработки данных телеметрии, полученных от перехватчиков ракет, или для архивного хранения данных об изображении местности для моделирования оборонительных действий.
  • Решение проблемы сжатия изображения или, в общем смысле, кодирования изображения, использовало достижения и стимулировало развитие многих областей техники и математики
  • 1. Теоретическая часть

1.1 Понятие "фрактал"

Понятия фрактал и фрактальная геометрия, появившиеся в конце 70-х, с середины 80-х прочно вошли в обиход математиков и программистов. Слово фрактал образовано от латинского fractus и в переводе означает состоящий из фрагментов. Оно было предложено Бенуа Мандельбротом в 1975 году для обозначения нерегулярных, но самоподобных структур, которыми он занимался. Рождение фрактальной геометрии принято связывать с выходом в 1977 году книги Мандельброта `The Fractal Geometry of Nature. В его работах использованы научные результаты других ученых, работавших в период 1875-1925 годов в той же области (Пуанкаре, Фату, Жюлиа, Кантор, Хаусдорф). Но только в наше время удалось объединить их работы в единую систему.

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

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

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

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

Компьютерные системы.

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

Механика жидкостей.

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

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

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

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

Телекоммуникации.

Для передачи данных на расстояния используются антенны, имеющие фрактальные формы, что сильно уменьшает их размеры и вес

Физика поверхностей.

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

Медицина.

1. Биосенсорные взаимодействия

2. Биения сердца

Биология.

Моделирование хаотических процессов, в частности при описании моделей популяций.

1.3 Теория хаоса

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

Введение в теорию хаоса

Что такое теория хаоса?

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

Теория хаоса о беспорядке

Наиболее часто встречающееся несоответствие состоит в том, что люди полагают, что теория хаоса - это теория о беспорядке. Ничто не могло бы быть так далеко от истины! Это не опровержение детерминизма и не утверждение о том, что упорядоченные системы невозможны; это не отрицание экспериментальных подтверждений и не заявление о бесполезности сложных систем. Хаос в теории хаоса и есть порядок - и даже не просто порядок, а сущность порядка.

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

Таким образом, было бы неправильным сказать, что теория хаоса о беспорядке. Чтобы пояснить это на примере, возьмем аттрактор Лоренца. Он основан на трех дифференциальных уравнениях, трех константах и трех начальных условиях.

Рисунок 1.1-. Аттрактор Лоренца.

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

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

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

Применение теории хаоса в реальном мире

При появлении новых теорий, все хотят узнать, что же в них хорошего. Итак что хорошего в теории хаоса?

Первое и самое важное - теория хаоса - это теория. А значит, что большая ее часть используется больше как научная основа, нежели как непосредственно применимое знание. Теория хаоса является очень хорошим средством взглянуть на события, происходящие в мире отлично от более традиционного четко детерминистического взгляда, который доминировал в науке со времен Ньютона. Зрители, которые посмотрели Парк Юрского периода, без сомнения боятся, что теория хаоса может очень сильно повлиять на человеческое восприятие мира, и, в действительности, теория хаоса полезна как средство интерпретации научных данных по-новому. Вместо традиционных X-Y графиков, ученые теперь могут интерпретировать фазово-пространственные диаграммы которые - вместо того, чтобы описывать точное положение какой-либо переменной в определенный момент времени - представляют общее поведение системы. Вместо того, чтобы смотреть на точные равенства, основанные на статистических данных, теперь мы можем взглянуть на динамические системы с поведением похожим по своей природе на статические данные - т.е. системы с похожими аттракторами. Теория хаоса обеспечивает прочный каркас для развития научных знаний.

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

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

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

Фракталы находятся везде, наиболее заметны в графических программах как например очень успешная серия продуктов Fractal Design Painter. Техники фрактального сжатия данных все еще разрабатываются, но обещают удивительные результаты как например коэффициента сжатия 600:

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

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

Броуновское движение и его применение

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

Рисунок 1.2- Частотная диаграмма.

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

Кроме применения Броуновского движения для получения фракталов из фракталов, оно может использоваться и для создания ландшафтов. Во многих фантастических фильмах, как например Star Trek техника Броуновского движения была использована для создания инопланетных ландшафтов таких, как холмы и топологические картины высокогорных плато. Эти техники очень эффективны, и их можно найти в книге Мандельброта Фрактальная геометрия природы. Мандельброт использовал Броуновские линии для создания фрактальных линий побережья и карт островов (которые на самом деле были просто в случайном порядке изображенные точки) с высоты птичьего полета.

Рисунок 1.3.- Рельеф.

1.4 Интеграция детерминированных фракталов и хаос

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

Теперь давайте посмотрим, как это в действительности происходит. Используя фрактал, называемый Деревом Пифагора, не рассматриваемого здесь (который, кстати, не изобретен Пифагором и никак не связан с теоремой Пифагора) и Броуновского движения (которое хаотично), давайте попытаемся сделать имитацию реального дерева. Упорядочение листьев и веток на дереве довольно сложно и случайно и, вероятно не является чем-то достаточно простым, что может эмулировать короткая программа из 12 строк.

Для начала нужно сгенерировать Дерево Пифагора (Рисунок 4). Результат напоминает те старые детсадовские рисунки… Так что давайте сделаем ствол толще. На этой стадии Броуновское движение не используется. Вместо этого, каждый отрезок линии теперь стал линией симметрии прямоугольника, который становится стволом, и веток снаружи.

Рисунок 1.4.- Дерево Пифагора

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

Рисунок 1.5.

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

Рисунок 1.6.

Может быть округление до 2 разрядов было слишком уж много? Снова применяем Броуновское движение, округленное на этот раз до 7 разрядов. Результат по-прежнему выглядит как рыболовный крючок, но на этот раз в форме логарифмической спирали!

Рисунок 1.7.

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

Рисунок 1.8.

1.5 Виды фракталов

Решётка Серпинского

Это один из фракталов, с которыми экспериментировал Мандельброт, когда разрабатывал концепции фрактальных размерностей и итераций. Треугольники, сформированные соединением средних точек большего треугольника вырезаны из главного треугольника, образовывая треугольник, с большим количеством дырочек. В этом случае инициатор - большой треугольник а шаблон - операция вырезания треугольников, подобных большему. Так же можно получить и трехмерную версию треугольника, используя обыкновенный тетраэдр и вырезая маленькие тетраэдры. Размерность такого фрактала ln3/ln2 = 1.584962501.

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

Их статика и динамика, считает Мандельброт, заслуживает пристального изучения.

Рисунок 1.9.- Решётка Серпинского

Рисунок 1.10.- Губка Серпинского.

Треугольник Серпинского.

Не перепутайте этот фрактал с решеткой Серпинского. Это два абсолютно разных объекта. В этом фрактале, инициатор и генератор одинаковы. При каждой итерации, добавляется уменьшенная копия инициатора к каждому углу генератора и так далее. Если при создании этого фрактала произвести бесконечное число итераций, он бы занял всю плоскость, не оставив ни одной дырочки. Поэтому его фрактальная размерность ln9/ln3 = 2.0.

Рисунок 1.11.- Треугольник Серпинского.

Кривая Коха.

Кривая Коха один из самых типичных детерминированных фракталов. Она была изобретена в девятнадцатом веке немецким математиком по имени Хельге фон Кох, который, изучая работы Георга Контора и Карла Вейерштрассе, натолкнулся на описания некоторых странных кривых с необычным поведением. Инициатор - прямая линия. Генератор - равносторонний треугольник, стороны которого равны трети длины большего отрезка. Эти треугольники добавляются к середине каждого сегмента снова и снова. В своем исследовании, Мандельброт много экспериментировал с кривыми Коха, и получил фигуры такие как Острова Коха, Кресты Коха, Снежинки Коха и даже трехмерные представления кривой Коха, используя тетраэдр и прибавляя меньшие по размерам тетраэдры к каждой его грани. Кривая Коха имеет размерность ln4/ln3 = 1.261859507.

Рисунок 1.12.- Кривая Коха.

Фрактал Мандельброта.

Это не множество Мандельброта, которое можно достаточно часто видеть. Множество Мандельброта основано на нелинейных уравнениях и является комплексным фракталом. Это тоже вариант кривой Коха несмотря на то, что этот объект не похож на нее. Инициатор и генератор так же отличны от использованных для создания фракталов, основанных на принципе кривой Коха, но идея остается той же. Вместо того, чтобы присоединять равносторонние треугольники к отрезку кривой, квадраты присоединяются к квадрату. Благодаря тому, что этот фрактал занимает точно половину отведенного пространства при каждой итерации, он имеет простую фрактальную размерность 3/2 = 1.5

Рисунок 1.13.- Фрактал Мандельброта.

Кривая Дракона.

Изобретенная итальянским математиком Джузеппе Пеано, Кривая Дракона или Взмах Дракона, как он назвал его, очень похож на колбасу Минковского. Использован более простой инициатор, а генератор тот же самый. Мандельброт назвал этот фрактал Река Двойного Дракона. Его фрактальная размерность приблизительно равна 1.5236.

Рисунок 1.14.- Дракон Джузеппе Пеано.

Множество Мандельброта.

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

Zn+1=Zna+C,

где Z и C - комплексные числа и а - положительное число.

Множество Мандельброта, которое чаще всего можно увидеть - это множество Мандельброта 2й степени, то есть а=2. Тот факт, что множество Мандельброта не только Zn+1=ZnІ+C, а фрактал, показатель в формуле которого может быть любым положительным числом ввел в заблуждение многих. На этой странице вы видите пример множества Мандельброта для различных значений показателя а.

Также популярен процесс Z=Z*tg (Z+C). Благодаря включению функции тангенса, получается множество Мандельброта, окруженное областью, напоминающей яблоко. При использовании функции косинуса, получаются эффекты воздушных пузырьков. Короче говоря, существует бесконечное количество способов настройки множества Мандельброта для получения различных красивых картинок.

Рисунок 1.15-. Множество Мандельброта.

Рисунок 1.16.- Множество Мандельброта при а=3,5.

Множество Жюлиа.

Удивительно, но множества Жюлиа образуются по той же самой формуле, что и множество Мандельброта. Множество Жюлиа было изобретено французским математиком Гастоном Жюлиа, по имени которого и было названо множество. Первый вопрос, возникающий после визуального знакомства с множествами Мандельброта и Жюлиа это “если оба фрактала сгенерированы по одной формуле, почему они такие разные? ” Сначала посмотрите на картинки множества Жюлиа. Достаточно странно, но существуют разные типы множеств Жюлиа. При рисовании фрактала с использованием различных начальных точек (чтобы начать процесс итераций), генерируются различные изображения. Это применимо только ко множеству Жюлиа.

Хотя это нельзя увидеть на картинке, фрактал Мандельброта - это, на самом деле, множество фракталов Жюлиа, соединенных вместе. Каждая точка (или координата) множества Мандельброта соответствует фракталу Жюлиа. Множества Жюлиа можно сгенерировать используя эти точки в качестве начальных значений в уравнении Z=ZІ+C. Но это не значит, что если выбрать точку на фрактале Мандельброта и увеличить ее, можно получить фрактал Жюлиа. Эти две точки идентичны, но только в математическом смысле. Если взять эту точку и просчитать ее по данной формуле, можно получить фрактал Жюлиа, соответствующий определенной точке фрактала Мандельброта.

Рисунок 1.17.- Множество Жюлиа.

Дерево Фейгенбаума.

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

f (x) = (1 - x) rx

Простейшая модель - это пропорциональное соотношение численности с прошлым годом. Допустим в прошлом году у нас было x животных. В этом году их должно быть rx животных. Но это не выполняется в реальных условиях. Лучшее соответствие с реальностью получится если добавить фактор, зависящий от того какой потенциал существует у популяции для дальнейшего развития, и пусть x - коэффициент полноты, который меняется от 0 до 1. Потом добавляется фактор 1 - x, так что территория почти полностью заполнена, популяция не возрастет выше верхнего предела.

Расширяя логистическое выражение, получаем:

f (x) = аx - ах2

Формула, использующаяся в программе LT Bifurcator для объяснения сущности фрактала Фейгенбаума - (1 + r) x - rx2 не сильно отличается от формулы, приведенной выше. В принципе, для изучения теории можно было использовать любую формулу, например самую простую из формул данного вида - xІ - r. Единственными различиями являются различия в координатах окон на картинке и несколько измененный внешний вид изображения.

Рисунок 1.18.- Дерево Фейгенбаума.

1.6 Дерево Фейгенбаума и Множество Мандельброта

Если вы когда-либо видели формулу множетсва Мандельброта z=z2 + x, вы могли бы заметить схожесть между этой формулой и самой простой из формул для построения дерева Фейгенбаума x2 - r. И это действительно так. Сходство существует. Но фейгенбаумово дерево растет в другую сторону. Измените формулу Фейгенбаума на x2 + r и вы увидите сходство. Что касается множества Мандельброта, вам нужно смотреть вдоль горизонтальной оси, так как это единственная позиция в которой комплексная часть числа Мандельброта равна нулю. Вы увидите, что основное тело фигуры Мандельброта находится там, где функция в дереве Фейгенбаума принимает лишь одно значение. Когда происходит первое разделение линии (бифуркация) появляется новое тело на фигуре Мандельброта и т.д. Обратите также внимание на то, что когда в дереве открывается главное окно, на фигуре Мандельброта появляется дочернее тело.

Рисунок 1.19.- Дерево Фейгенбаума и Множество Мандельброта.

Структура.

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 1.20.-Схема работы программы.

фрактал графика сжатие

Заключение

Основным недостатком фрактального алгоритма является то, что требуются значительные вычислительные ресурсы при осуществлении сжатия изображений, в то время как разархивация происходит очень быстро. Значительные ресурсы требуются на подгонку домена под ранговый блок. Первые реализации фрактальных методов кодирования были очень медленными. Известно, что в случаях, когда число доменов превышает 100000, процесс кодирования занимает более двух дней! Это препятствовало использованию фрактальных методов сжатия на практике. Для сокращения и ускорения полного перебора всех участков изображения разработано много методов: основанные на аппаратном распараллеливании и ускорении вычислений, основанные на уменьшении количества сравнений одного блока с другими, основанные на изменении алгоритма. [8] Целью данной работы является разработка алгоритма сокращения количества вычислений при сжатии изображений. Практическая ценность заключается в предполагаемом уменьшении временных затрат и вычислительных мощностей при фрактальном сжатии изображений.

Список использованных источников

1. Морозов А.Д. Введение в теорию фракталов - Москва-Ижевск: Институт компьютерных исследований, 2002. (стр.54-58)

2. Божокин С.В, Паршин Д.А. Фракталы и мультифракталы - Ижевск: НИЦ "Регулярная и хаотическая динамика", 2001.(стр.32-37)

3. Ватолин Д. "Фрактальное сжатие изображений" Computerworld, #06/1996

4. Джефф Просис "Фракталы и сжатие данных" (PC Magazine, November 8, 1994, p. 289)

5. Уэлстид С. Фракталы и вейвлеты для сжатия изображений в действии. - М.:Издательство Триумф, 2003.

6. Кроновер Р.М. Фракталы и хаос в динамических системах. Основы теории. Москва: Постмаркет, 2000.

7. Жиков В.В. "Фракталы". Владимирский государственный педагогический университет им. П.Н. Лебедева-Полянского, 1996.

8. Ватолин Д.С."Использование ДКП для ускорения фрактального сжатия изображений", Программирование, Номер 3, 1999, стр. 51-57

Приложение 1

procedure TFormConvertir.ResizeBitmap(imgo, imgd: TBitmap; nw, nh: Integer);

var

xini, xfi, yini, yfi, saltx, salty: single;

x, y, px, py, tpix: integer;

PixelColor: TColor;

r, g, b: longint;

function MyRound(const X: Double): Integer;

begin

Result:= Trunc(x);

if Frac(x) >= 0.5 then

if x >= 0 then Result:= Result + 1

else

Result:= Result - 1;

// Result:= Trunc(X + (-2 * Ord(X < 0) + 1) * 0.5);

end;

begin

// Set target size

imgd.Width:= nw;

imgd.Height:= nh;

// Calcs width & height of every area of pixels of the source bitmap

saltx:= imgo.Width / nw;

salty:= imgo.Height / nh;

yfi:= 0;

for y:= 0 to nh - 1 do

begin

// Set the initial and final Y coordinate of a pixel area

yini:= yfi;

yfi:= yini + salty;

if yfi >= imgo.Height then yfi:= imgo.Height - 1;

xfi:= 0;

for x:= 0 to nw - 1 do

begin

// Set the inital and final X coordinate of a pixel area

xini:= xfi;

xfi:= xini + saltx;

if xfi >= imgo.Width then xfi:= imgo.Width - 1;

// This loop calcs del average result color of a pixel area

// of the imaginary grid

r:= 0;

g:= 0;

b:= 0;

tpix:= 0;

for py:= MyRound(yini) to MyRound(yfi) do

begin

for px:= MyRound(xini) to MyRound(xfi) do

begin

Inc(tpix);

PixelColor:= ColorToRGB(imgo.Canvas.Pixels[px, py]);

r:= r + GetRValue(PixelColor);

g:= g + GetGValue(PixelColor);

b:= b + GetBValue(PixelColor);

end;

end;

// Draws the result pixel

imgd.Canvas.Pixels[x, y]:=

rgb(MyRound(r / tpix),

MyRound(g / tpix),

MyRound(b / tpix)

);

end;

end;

end;

Размещено на Allbest.ru


Подобные документы

  • Понятие фрактала и фрактальной геометрии. Роль фракталов в машинной графике, самоподобие как основное свойство. Области применения фракталов. Учение о сложных нелинейных динамических системах (теория хаоса). Интеграция детерминированных фракталов и хаос.

    курсовая работа [1,0 M], добавлен 20.08.2009

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

    лекция [1,2 M], добавлен 29.12.2011

  • Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.

    реферат [242,9 K], добавлен 24.04.2015

  • Классификация основных фракталов: алгебраические, геометрические и стохастические. Рассмотрение нескольких распространённых видов фракталов: решетка и треугольник Серпинского, крива Коха, фрактал и множество Мандельброта, кривая Дракона и модель Джулии.

    курсовая работа [735,1 K], добавлен 11.02.2015

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

    курсовая работа [1,2 M], добавлен 04.04.2014

  • Понятие фрактала, способы его использования в компьютерной науке, в механике жидкостей, в телекоммуникациях, медицине, физике поверхностей, биологии. Множество Мандельброта и фрактальное дерево. Разработка кода программы в среде программирования Delрhi.

    курсовая работа [1,0 M], добавлен 09.06.2013

  • Сущность, основные свойства и классификация фракталов. Построение триадной кривой Коха и "дракона" Хартера-Хейтуэя, треугольник Серпинского и множество Жюлиа. Сущность L-кодирования. Создание программы на языке BorlandPascal для построения фракталов.

    курсовая работа [1,2 M], добавлен 13.04.2015

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

    презентация [192,7 K], добавлен 12.02.2014

  • Типы изображений (черно-белые, полутоновые, цветные) и их форматы. Устройства, создающие цифровые изображения, и их параметры. Применение и характеристики методов сжатия изображений. Поиск по содержимому в базах данных изображений. Структуры баз данных.

    презентация [360,4 K], добавлен 11.10.2013

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

    презентация [45,3 K], добавлен 06.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.