26 January 2010

Use the Force, Luke! или Как увидеть стереограмму не напрягая глаз

Image processing
Мне никогда не удавалось увидеть, что же прячется за пёстрыми узорами «магических картинок».
Сколько я ни напрягал глаза — ничего не получалось.
Сегодня вместо зрения я напряг мозг, и вот что вышло:



Идея


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

Реализация


Вооружаемся бесплатным графическим редактором Paint.Net (или другим подходящим), и открываем подопытную картинку:



Небольшой эксперимент показал, что «видящие» люди различают скрытое изображение даже в чёрно-белой картинке. Поэтому выбираем меню Adjustments — Black and White, получаем чёрно-белый шум а-ля телевизор :)



Теперь создадим второй слой, он будет «изображением с другого глаза»:



Открываем свойства, просим отображать разницу между слоями (Mode -> Difference):



В результате получаем чёрный прямоугольник. Но как только начинаем понемногу сдвигать изображение в верхнем слое ( Move selected pixels, потом стрелки курсора) — шум возвращается, и через некоторое время из него появляется нечто осмысленное:



Продолжаем двигаться (и чувствовать себя за пультом томографа :)




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



Описанный метод легко справляется с капчей:



Результат


Теперь вы можете собственными глазами увидеть [censored] на главной Хабра! :)
Tags:стереограммымагические картинки3dзрение
Hubs: Image processing
+110
598 32
Comments 62