А описание алгоритма построения было опубликовано в 1999 году в сборнике тезисов докладов Уральского Государственного Технического Университета (бвыший УПИ, теперь часть Уральского Федерального Университета):
Quote:
Шабаршин А.А. Генерация полутоновых и полноцветных изображений с помощью систем итерируемых функций / Информационные технологии и электроника: Тезисы докладов. Екатеринбург: УГТУ, 1999. С.67
Предлагается подход, с помощью которого, используя обычную систему итерируемых функций (IFS) с вероятностями, можно генерировать полутоновые и полноцветные изображения.
Система итерируемых функций или IFS (Iterated Function System) - это система простых сжимающих преобразований плоскости (обычно аффинных), которые составляют сжимающее отображение. Это отображение имеет аттрактор, представляющий из себя некое компактное множество точек плоскости. Это множество точек является самоподобным или фрактальным объектом. Как известно, с помощью фракталов достаточно хорошо описываются реальные объекты природы (деревья, линия берега, облака и т.д.). IFS позволяет, используя небольшое количество коэффициентов, генерировать такие фракталы. Обычно, с помощью IFS генерируют черно-белое изображение, где каждая точка плоскости окрашена либо в белый, либо в черный цвет (более точно - точка либо есть, либо ее нет). Для возможности представления полутоновых изображений, понятие IFS обобщают и вводят вероятности для каждого из преобразований. При этом в светлых частях объекта точки располагаются часто, а в темных - редко. Но получившееся изображение остается черно-белым. Для того чтобы превратить его в полутоновое, приходится разбивать изображение на одинаковые квадраты и подсчитывать количество белых точек в каждом из них - это и будет яркость - уровень серого для соответствующего квадрата. Для такого подхода приходится выполнять большое количество вычислений и занимать большое количество памяти.
Вместо этого предлагается подход, при котором поле, где будет генерироваться изображение, сразу разбито на квадраты. Причем каждый квадрат соответствует одному пикселу полутонового экрана. В процессе генерации изображения с помощью IFS, яркость пиксела понимается как количество точек, расположенных в соответствующем квадрате. В результате, такой алгоритм ведет к использованию массива не более чем из DX*DY ячеек памяти (DX - ширина экрана, DY - высота экрана в пикселах).
Аналогично можно подойти к генерации полноцветных изображений, при этом, вместо одного, вводится три набора вероятностей, соответствующих трем цветовым составляющим RGB, а также массив размером 3*DX*DY ячеек памяти.
Вот ещё из старины глубокой - картинки высокого разрешения 1024x768 из множества Мандельброта, полученные мною в июле 1997 года (26 с лишним лет назад) - они были в моём собственном 8-битном формате без сжатия и вот сегодня я преобразовал их в PNG без потерь:
Attachment:
view1024_000.png [ 39.32 KiB | Viewed 6255 times ]
Attachment:
view1024_001.png [ 320 KiB | Viewed 6255 times ]
Attachment:
view1024_002.png [ 247.29 KiB | Viewed 6255 times ]
Attachment:
view1024_003.png [ 138.38 KiB | Viewed 6255 times ]
Координаты картинок (сделать что ли современную мандельбротоходилку?):
Хотя у меня когда-то были мысли сделать "сопроцессор" для ретрокомпьютеров на PIC16 (он тоже 8-битный, но с частотами до 20 МГц и 4-мя тактами на команду), который бы "помогал" в некоторых матрасчётах слабенькому ретропроцу...
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum