Программа CreSter | Для создания стерео-картинок используя два графических файла
Содержание:
Описание
Программа CreSter предназначена для создания стерео-картинок используя два графических файла - чёрно-белую BMP-шку (в дальнейшем просто исходный объём - ИО) и длинную, "худую" полоску тоже в формате BMP, но уже в цвете - текстуру (я привык называть её Background - БГ). Так вот, вводите имена этих файлов в специальные окошки и программа выполняет трансформацию их в одну - стерео-картинку.Для того, чтобы программа работала правильно (вообще работала), важно правильно использовать её возможности. Как я уже говорил, ИО должен быть в формате BMP и иметь 256 цветов. Ниже приведён пример такого ИО (подправленного в другой формат для INTERNET-а), сделанного в Photoshop-е (он ставит палитру, о которой читайте дальше, подходящую для программы).
Так вот о палитре - она чёрно-белая, т.е. чем светлее точка, тем её номер должен быть больше. Это нужно для простоты создания картинок. Чем светлее точка, тем она будет ближе в стерео эффекте т.е. после трансформации слово WOW будет казаться приближенным на дальнем фоне.
Также для создания стерео-картинок необходим и другой графический файл - БГ. Собственно из размноженного БГ и получается требуемое изображение (как именно это происходит, ну в смысле алгоритм преобразования БГ и ИО в одну - стерео, читайте ниже). Он, как и ИО, должен иметь формат BMP и 256 цветов, но уже с произвольной палитрой.
Ниже представлена картинка, получившаяся в результате работы моей программы. Если вы посмотрите на неё, как на стерео-картинку (о том как смотреть такого рода картинки, читайте ниже), то увидите надпись WOW как на ч-б картинке, представленной выше.
[banner_centerrs] {banner_centerrs} [/banner_centerrs]
↑ Алгоритм построения стереограмм
Алгоритм построения стерео-картинок достаточно прост, несмотря на то, что мне пришлось потратить чуть меньше недели на его понятие. Просто мне до этого никто не рассказывал его, а перед моим лицом была только готовая картинка из книжки. Ну да ладно - не буду оправдываться, а лучше избавлю вас от страданий :-).
Начнём...
Для начала вам нужно научиться их смотреть. Краткий совет о том, как надо это делать вы найдёте ниже.
Теперь приступим к самому главному.
Как вы наверное знаете, человек, имеющий два глаза, может оценить расстояние до предмета и среди нескольких вещей выделить более приближённые и более отдалённые. Так вот, это связано со свойством человеческих глаз, а точнее, восприятием мозга положения глаз. Другими словами, если из каждого глаза "провести два луча", которыми посмотреть на предмет, то в точке, на которую смотрят глаза, эти "лучи" пересекутся. Мозг сопоставляя углы поворота этих "лучей", делает соответствующие выводы о расстоянии до предмета.
А если попробовать обмануть глаза (мозг)?
Именно это и происходит, когда смотришь такую картинку. Ведь есть и ещё одно свойство глаз.
А как глаза находят точку, в которой надо "пересечь лучи"?
Очень просто - в каждом глазу формируется своя картинка. Обе они похожи друг на друга, но отличия есть - один глаз может видеть какой-то фрагмент, а другому в этот момент может мешать какое-нибудь препятствие. Мозг максимально похожие фрагменты этого рисунка и пытается совместить в один, но для этого в каждой точке ему приходится менять углы "лучей", иначе эти фрагменты не совпадут.
На стерео-картинке такими фрагментами являются пиксели, а точнее их цвета. Давайте взглянем на картинку, которую я специально нарисовал по этому случаю.
Представьте, что это вы :-).
Вид сверху.
О чём я и говорил - точка c находится ближе точки d. Мозг это понимает сравнивая углы AcB и AdB. Не зря я упомянул и о том, что в глазах немного разные картинки, и что мозг меняет углы для нахождения похожих участков. Так как точка d одна, а глаза два, то в каждом глазе она и будет являться тем фрагментом, в котором надо пересечь "лучи", т.е. в одном глазе её изображение будет похоже и на изображение её же в другом глазе - ну это логично (это же одна и таже точка).
Теперь попробуем обмануть мозг.
Поставим перед собой картинку, которую следует превратить в стерео.
Как надо расставить на ней точки, чтобы "надурить глаз"?
Обратите внимание на точки a b и e g. Чтобы глаз увидел подобные участки (точки), они должны быть одинаковы (хотя иногда и это правило можно обойти, но это довольно сложно сделать, хотя вполне реально, ведь мозг ищет подобные фрагменты не только по цвету, но и по форме).
Смотря на данную книжку, видишь точку c дальше поверхности листа, а точку d ещё дальше. Таким образом, на плоском листе бумаги (экране монитора) появляется объёмное изображение, находящееся как бы за листом бумаги. Этого то нам и надо.
Получается, что чем ближе друг к другу расположены одинаковые точки (или целые фрагменты), тем они кажутся нам ближе в пространстве. Ещё раз взгляните на рисунок, и посмотрите, где пересекают лучи лист бумаги, где в последствии они сами пересекутся и какое при этом будет расстояние точек пересечения лучей с бумагой.
Надеюсь, что вам понятен основной принцип обмана человеческих глаз и того, кто за этим стоит - мозга :-).
Теперь посмотрим, как строит картинки моя программа.
Для простоты обозначим "исходный объём" за ИО, а Background за БГ. Прежде всего надо создать поле для рисования (сдвига точек для образования стерео). Роль такого поля будет выполнять рисунок, получившийся в результате размножения БГ. Таким образом мы получим уже стерео-картинку, но только с задним (самым удалённым) фоном.
Сразу скажу, что ширину БГ я буду называть периодом. Начнём...
Сдвигать (почему сдвигать - вы позже поймёте) можно с любой стороны, а можно от центра (советую вам именно так и делать), но для простоты объяснения будем это делать слева на право. На счёт ограничений - ИО должен быть в формате BMP 256 цветов, причём с чёрно-белой палитрой (её очень хорошо ставит PHOTOSHOP), БГ также должен быть в формате BMP и иметь 256 цветов, но уже с произвольной палитрой. Обработаем одну точку ИО. Не зря БГ должен иметь ч-б палитру, т.к. это нужно для алгоритма построения - чем светлее точка, тем её номер должен быть больше. Так вот читаем точку из ИО.
Запоминаем её номер (для простоты назовём его буквой Н). Затем обращаемся к строке рисунка размноженного БГ.
Начинаем сдвиг: первую точку, соответствующую положению той же точки в ИО, не трогаем, а точку, взятую через период, сдвигаем влево на Н точек. Затем сдвигаем точку, взятую через два периода на Н точек, через три и т.д. до конца строки.
Т.о. мы получаем строку точек, расставленных на одном расстоянии друг от друга, но только две точки расположены ближе друг к другу, нежели остальные.
Собственно всё...
Проделываем эту операцию со следующими точками, тем самым получаем стерео-строку.
Проделываем тоже самое с точками в следующей строке и так далее.
Получаем стерео-картинку!!!
Правда есть пара нюансов, без которых у вас получится не "рулезная" картинка. Это мои ноухау...
Дерзайте!
↑ Как смотреть стереограммы
Что бы научиться смотреть стереограммы, мне кажется, экрана монитора не достаточно. Лучше конечно начинать учиться смотреть такие картинки на листе бумаги.
Есть хороший способ (на экране это будет довольно проблематично проделать, но как знать), о котором я вам расскажу. Возьмите в руки лист (это может быть книга, газета, или даже экран монитора :-) ) и приблизьте его максимально близко к лицу так, что бы он касался кончика носа. Не пытайтесь сфокусировать ваш взгляд на изображении.
Представьте себе, что перед вами нет никакого листа с картинкой - ничего, и смотрите как бы сквозь на расстояние, большее чем до книги.
Вот сказал :-) Ваши глаза в этот момент должны выглядеть примерно так:
Но это не должно вас останавливать... Расслабьте ваши глаза. Вполне можно понять улыбки окружающих - не обращайте внимания. Постепенно начинайте двигать от носа эту картинку, но, повторяю, не фокусируйте взгляд на картинке.
Пусть изображение будет мутным. Двигайте картинку пока ваши глаза "не сдадутся" в смысле не сфокусируются на какой-то конкретной точке рисунка.
После этого проделывайте эту операцию заново до тех пор, пока примерно на расстоянии 20-30 см ваши глаза перестанут фокусироваться в какой-то конкретной точке картинки (это произойдёт далеко не сразу - будьте терпеливы).
Если у вас это получится, т.е. вы сможете смотреть сквозь неё, когда она находится на расстоянии 30-ти см, продолжайте находиться в таком положении.
Постепенно изображение начнёт проявляться, но глаза не будут смотреть в одну точку. Этого нам и надо - левый глаз должен смотреть на одну точку, а правый - правее несколько сантиметров.
После этого, когда изображение прояснится, а глаза будут смотреть на "разные" (удалённые друг от друга на некоторое расстояние) точки, то перед вами появится настоящее объёмное изображение - вы будете в восторге!
Все файлы на сайте, прежде чем выкладываются, проверяются на вирусы. Поэтому мы даем 100% гарантию чистоты файлов.
Скачать бесплатно стереограмму Программа CreSter | Для создания стерео-картинок используя два графических файла с:
Комментариев 3