Как стать автором
Обновить

Комментарии 132

Отличная статья, раньше у меня не получалось на них смотреть, спасибо:)
Жаль, что я их не вижу :(
Близко поднести глаза к картинке, подождать расслабленно 5-6 секунд, а потом медленно, (не пытаясь нарочно сфокусировать взгляд) ототдвигать голову — не помогает?
Не помогает :( я уже несколько лет периодически пытаюсь увидеть хоть что-то осмысленное на подобных картинках — ниразу не получилось :(
Вот, потренируйтесь на кошках этой картинке
Круто блин :) А как фокус навести? Более-менее (хотя и расплывается немного) получается если уж совсем лицо к монитору подносить.
А кошка картинка кстати довольно неплохая :)
Не зная как вам, но мне удобней фокус глазами «настраивать». Можно на воображаемую точку между монитором и вами смотреть. И двигать её, тем самым фокус на изображении и настраивается. У меня как то получался стерио-линолеум в поликлинике увидеть, пока очереди ждал :)
Урра! Заработало, спасибо :) Фокус сам настраивается если смотреть на совмещенную картинку около минуты и стараться расслабить глаза. После этого и с сабжевой картинкой из этого трида получилось.
:) рад за вас. Иногда помогает, если поморгать.
Ура! У меня по вашему совету тоже получилось, первый раз в жизни!
Можно на воображаемую точку между монитором и вами смотреть.
Это только для изображения, ссылку на которое вы дали. Изображение же в топике нужно рассматривать сквозь.
У меня как то получался стерио-линолеум в поликлинике увидеть, пока очереди ждал :)
Специально увидеть стерео-линолеум/обои/т.п. не составляет труда. А вот по-забавному бесит, когда совершенно случайно как-то не так сфокусируешься на рабице (забор-сетка) и понимаешь, что зрение тебя обманывает и нужна перефокусировка.
>>> Это только для изображения, ссылку на которое вы дали. Изображение же в топике нужно рассматривать сквозь.

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

Случайный фокус только на обивке салона в автомобиле «ловил».
Изображение топика двумя способами разглядеть получается.
Перекрестным просмотром вы получите инвертированную дальность. Да, для простого изображения типа буковок это роли, конечно, не сыграет, но в более сложных случаях ничего не выйдет.
Мы-то с вами это понимаем, но новичков в этом деле стоит предупредить, чтобы потом не удивлялись, почему удалось рассмотреть только одну картинку.
я кстати тоже бывает рассматриваю «стерео обои» главное чтобы шаг был не сильно больше расстояния между зрачками.
Увы, у меня отсутствует бинокулярное зрение, ничто не поможет :)
НЛО прилетело и опубликовало эту надпись здесь
У вас случайно нет астигматизма? У меня такая же проблема
У меня хорошее зрение (1.0), но стереокартинки не могу увидеть. Тут дело в чём то другом.
Я вот из-за особенностей зрения и 3D-фильмы не вижу в объеме, не говоря о стереокартинках
Ни фильмы, ни картинки не вижу — у меня косоглазие и смотрю я либо левым, либо правым глазом. Двумя — никогда.
Потренируйтесь на этой картинке:
image
«Потренируйтесь»… А пояснить человеку, что это перекрестная стереопара, тогда как в топике речь идет об изображениях по принципу параллельной стереопары, да и что это вообще такое, да как их смотреть, — не нужно?

Оставлю здесь эту ссылку.
— Нужно свести два изображения в одно ( это можно сделать сводя глаза к переносице );
— Навести резкость.

Потом можно таким обазом смотреть 3д картинки. Я так научился.
Нужно свести два изображения в одно
Есть два способа, от которых, грубо говоря, зависит знак z-индекса.
Супер, помог ваш способ. Правда по цветной мазне все равно почти невозможно понять, что написано
Ох ты ж, начал тренироваться и рука лапать потянулась…
Девушка и сама по себе объёмная, но в 3Д еще объёмнее ;)
Самый простой рецепт. Смотрим на картинку с очень близкого расстояния, затем делаем глазу в кучу (пытаемся одним глазом посмотреть на другой). Profit!
А я разучился их смотреть. Не могу и все… =(
У меня получается, но объемности выглядят наизнанку (выпуклости выглядят как вогнутости и наоборот).
Стереоизображения можно смотреть двумя способами: «сквозным» и «перекрестным». В зависимости от способа выпуклое и вогнутое меняются местами. Ты смотришь «перекрестным» способом, когда взгляд фокусируется перед изображением, а не за ним. В статье я описал «сквозной» способ, так как 1) от него менее устают глаза и 2) все иллюстрации, которые мне попадались, правильно выглядели при данном способе.
Перекрестным у меня получается видеть с любого расстояния, сквозным тяжелее
Такие изображения видятся как раз перекрестным способом

Такие изображения вижу впервые. Увидеть в 3D удалось, но сложно было навести резкость ))
это не 3Д изображение. стерео ведь.
Пока фотограф ходил с точки на точку, небо и волны сильно «ушли»… в итоге, от этой картинки у меня заболела голова.
Вообще-то небо на фотографиях одинаковое. А волны разные просто из-за разности точек съёмки. Судя по всему, фотографии были сняты одновременно.
А вот база действительно выбрана довольно большая.
Да, с небом действительно наврал. Насчет одновременно не берусь судить, в таком случае, но замечу, что на отражение башенки совершенно невозможно смотреть.

Зачем большая база вроде понятно, расстояние. А вот зачем такой передний план оставлен?..
Да не наврал с небом, облака смещены на втором фото, и довольно сильно
Если совместить облака и посмотреть на разность, они практически не эволюционировали между снимками. То есть они практически идентичны с точностью до параллельного переноса. Такая ситуация реализуется весьма редко, по опыту наблюдений за небом. Скорее всего, параллельный перенос связан с перемещением точки наблюдения, а не с течением времени и ветром.
Плюс, глубина, если смотреть достаточно старательно (и зарабатывать головную боль, да), оказывается вполне вменяемой — если помнить, что расстояние между «глазами» достаточно велико.
НЛО прилетело и опубликовало эту надпись здесь
Вы таки не поняли.

Совмещены башенки, рассчитана разность. Видно несовпадение облаков (светлые области).
image
Теперь совмещаем облака параллельным переносом. Получаем из светлых областей практически одни артефакты. Вывод — облака с точностью до параллельного переноса (и чуть-чуть настроек фотоаппарата) идентичны. Но очевидно, что при этом они не должны одинаково располагаться относительно башенки (иначе окажется, что они на одной глубине с ней, что бред)
image
В самом низу разница больше, поскольку, вообще говоря, параллельный перенос не учитывает перспективы (которая чуть-чуть, да есть). Но преобразование с учетом этого эффекта делать, естественно, лень.
А еще в играх типа «Найди 20 отличий» перекрестный метод — идеальный чит)
а вы, батенька, затейник
Да, всегда так читерил!=)
Зачем палите тему )
Спасибо, натренировал и этот метод =)
А я вроде легко фокусируюсь на картинке, различаю там несколько слоев, какие-то контуры. Только в пестрой картинке нихрена не могу разобрать, что же именно нарисовано.
Как ни разглядывал изображение, ни одной буквы не увидел, даже примерного очертания слов. Теперь чувствую себя дальтоником в мире зелёных людей. Ну вас нафиг, пойду дальше QR-коды расшифровывать.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо! Наконец-то получилось рассмотреть картинку таким способом. А то до этого только скрещиванием.
Увы, лично мне не помогает. Либо изображение остаётся размытым, либо срабатывает автофокус в попытках нахождения очертаний. Возможно причина в некотором астигматизме, но очки распознаванию не помогают.
Аналогично. Автофокус работает мгновенно.
ааааа! спасибо!!! лет десять пытался, увидел наконец!
Есть ещё один похожий способ, но только без приближения лица к картинке и без скрещивания глаз.

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

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

Если не получится на картинке из поста, попробуйте на других стереокартинах. Там главное понять принцип, а дальше будет очень просто.
А! Ещё забыл очень важный момент :) Многие думают, что они там увидят полноценное изображение и ищут его там, а когда не находят, думают что не могут смотреть стереоизображения. Я сам так думал, когда слышал от друзей: «да там же дельфинчик» или «там такая красивая земля!». На самом деле, там будут те же самые загогулины, которые видно, но только они будут выгнутые или вогнутые.
и что, ни дельфинчика ни змеи те выгнутости загогулин Вам не изображали?
А можете полные сорцы программы приложить?
Здесь исходник, экзешник и файл-маска.
Жесть очень редко удавалось их увидеть, а тут сходу получилось после прочтения, поле в гугл и дофига всяких разных сразу смог рассмотреть, жесть какая-то :))
Это явно не лучшее цветовое решение, я чётко видя то, что есть задний слой и чётко видя границы еле смог прочитать слово HABR.
вы просто ни до конца рассфокусировались, изображение читается очень хорошо.
Не судите строго. Все таки здесь jpg с 85% качества, а печатные иллюстрации имеют большее разрешение, чем экран, из-за чего выглядят более плавными и могут содержать больше деталей.
Означает ли это, что распечатка на цветном принтере будет лучше изображения на экране?
А если изображение в tiff задать?
Думаю, стоит такие моменты внести в статью, например, в виде примечаний к рисункам, ведь по качеству иллюстраций судят о качестве алгоритма и программы.
В остальном, прекрасное решение и хорошая статья.
Именно это изображение — нет, оно имеет разрешение 96*96 dpi. Если внимательно присмотритесь, то будет видно, что изображение ступенчато.
Для принтера лучше подготовить изображение с высоким разрешением, например, 600*600 dpi. Тогда его размеры вырастут примерно в 6 раз по ширине и высоте, а также нужно будет пропорционально увеличить период со 100 пикселей до 600 и размер максимального сдвига с 7 до 42 (плюс, минус), что сделает «ступени» практически неразличимыми. Но это все мои предположения, так как не имею цветного принтера и проверить не могу.
В одном из комментариев я выложил ссылку на исходники, так что вы можете попробовать сами все проверить.
Хорошая картинка,
но я люблю, когда скрытое изображение более сложное -животные, замки, янтры и т.п.

Моих скромных способностей, боюсь, недостаточно для более сложного изображения :) Предложи свое изображение в серых тонах, а стереокартинку сделать проще простого )))
Вы открыли мне глаза!
Совсем скоро этим уже никого не удивишь :(
прекрасно, спасибо за объяснение технологии. Тольно вот рисунок выбрали сложноватый — силуэты лучше для этой цели годятся, по-моему.
Вспомнил школьные тетради с такими изображениями.
Я научился сразу вот так: смотришь вдаль из окна, потом, не меняя фокусировки глаз, ставишь перед глазами экран ноутбука с картинкой. Видно почти сразу.
Так как изображение выполнено в серых цветах, то для определения яркости точки я использовал яркость красной составляющей RGB, поделенную на 32. Таким образом, максимально возможный сдвиг равен 255/32 = 7.


Прочитал, удивился, снова посмотрел на картинку — и действительно: если присмотреться, можно увидеть ступеньки :-)
И правда, ступеньки заметны, если как следует навести резкость. Правда потом сфокусировать взгляд на нормальную дальность как-то тяжеловато… :)
Со школьных времен ни разу ничего не получилось увидеть.
Надо такую капчу будет сделать:-) защита от спамеров и ещё 70% нормальных пользователей
Да, такую капчу точно боту не пройти. Надо лишь научить людей распознавать картинки, и распознав однажды у большинства получится делать это когда угодно.

Попытаюсь научить (для тех кто не видит):

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

Чтобы увидеть скрытое изображение — нужно очень внимательно смотреть. Вопрос только куда.

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

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

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

Идем теперь к стереокартинке. Как и на примере с розеткой, Вам предстоит «ловить расстояние». Найдите на картинке такую часть, которая на Ваш взгляд выделяется на общем фоне. Я например выбрал светло голубой квадратик. Но квадратик там не один, их больше. И расстояние между квадратиками взято не из головы. Это и есть тот шаг, на который нужно «раздвоить» картинку. Как и с розеткой, начинаете раздваивать квадратик. Когда Вы достигнете смещения именно на такое расстояние, как расстояние между квадратиками, картинка станет трехмерной.

Надеюсь не зря писал и кого-нибудь все таки получится :)
имхо такая капча легко разгадывается ботом :-)

находим период, и по соседним секциям восстанавливаем смещения — получаем исходную чёрно-белую картинку :-)
Очень просто, пруф
Вообще-то более точный термин стереограмма, со стереоизображением все намного проще (хотя смотря с какой стороны посмотреть)
вот бы ещё автор заголовок и теги подправил…
У меня никогда не получалось, и сейчас тоже.
Похоже я так до конца жизни не смогу ни одну стереокартинку увидеть.

Что за дела.
У меня под градусом лучше получается нужным образом сфокусироваться.
Обожаю эти штуки =) хорошая тренировка зрения…
С детства делаю так. Косишь глаза на 3-4 секунды и расслабляешься. Очень просто и не нужно думать о фокусировке.
Слишком уж сумбурный узор получается — сбивает с толку при разглядывании. Лучше бы просто повторяющийся паттерн с искажениями, как в обычных картинках, тогда создаётся впечатление объёмных фигурок, обёрнутых в фольгу с таким узором. Кажется, это тоже можно сделать программно?
Я так и написал. Пишете свой метод GetNewStereoPicture(), в нем можете использовать заранее подготовленный фон. Я его генерирую рандомно.
Мне в принципе нет особой разницы, какой на картинке фон, — я почти все воспринимаю легко.
Всегда сожалел, что на стереоизображениях не вижу фоточёткости, о мелких/тонких деталях приходится догадываться — они сливаются с фоном, раскрашивания изображения, как такового, нет.
А вот «японские» картинки — это супер. Глубина есть, чёткость, фотореалистичность, объём…
Надеюсь стереоизображения будут эволюционировать
Чутка заметны артефакты букв, но совсем уже слабо.
вот-вот, на других тестовых изображениях тоже видны только слабые контуры
Если присмотреться, то видно некие мелкие артефакты на вашем изображении (т.е. все таки что-то сдвигается). Можно взглянуть на вашу реализацию?
вот так сейчас выглядит

QImage StereoImageGenerator::makeStereo(const QImage & maskImage, const QImage & background)
{
int w = maskImage.width();
int h = maskImage.height();
int ** mask = new int * [w];
for (int i = 0; i < w; i++)
{
mask[i] = new int[h];
for (int j = 0; j < h; j++)
{
mask[i][j] = qRed(maskImage.pixel(i, j)) / 32;
}
}

int s = 100;
QImage stereoImage;
if (background.isNull())
stereoImage = genBackground(QSize(w + s, h), s);
else
stereoImage = background;

for (int j = 0; j < h; j++)
for (int i = 0; i < w; i++)
if (mask[i][j] > 0)
{
QRgb pixel = stereoImage.pixel(i + mask[i][j], j);
for (int k = i + s; i < w + s; i += s)
stereoImage.setPixel(k, j, pixel);
}
for (int i = 0; i < w; i++)
{
delete mask[i];
}
delete mask;
return stereoImage;
}
Форматирование съехало… тег code почему-то не очень сработал =)
вот тут лучше смотрится
pastebin.com/ky3dFtkW
Прошу прощения, вопрос снимается, всё работает — в последнем цикле i и k перепутал… ну прям как первокурсник блин… )
Всякое бывает.

image
Вы б еще жирнее шрифт взяли, первую букву сначала принял «i» без точки
Сильно сложнее фокусироваться, по-моему.
Если потренироваться, то проблем быть не должно, сложность фокусировки ещё от размера картинки зависит.
ИМХО, мелковат шаг повтора фона.
Ну, это можно увеличить, но мне кажется и так неплохо.
Шаг взят 100px — как у автора поста.
это где у него маленький такой мозг в большем черепе? вроде угадалось, правда яркие цвета жутко раздражают зрение
Фон генерился случайным образом, цвета полностью рандомны, но можно в принципе и урезать яркость (например, в гимпе).
Сегодня впервые рассмотрел с экрана монитора. Прямо со своего ноутбука.
Думал это будет сложно. Ан нет — так же как с печатного листа.

Думаю, ради прикола в конечную картинку можно было бы зашить пасхалку.
Приятно было почитать. Сам как-то увлекался всякими стерео картинками, даже в ASCII. Вот нашел свою программку 3D стерео заставка для Windows, она динамичная.
запустил на 23" монике. глаза чуть не выпали =)
Хехе, круто. Можно прокручивать, не теряя резкости.
Первая хорошая, а вот остальные больше на картонки похожи :) Халтура.
Ууух… Как же давно я такого не видел…
А глаза то помнят. Малейший взгляд и я увидел картинку.
Автор, спасибо!
Спасибо! Помню, когда-то я карандашами и линейкой такие картинки рисовал… :)
Возник вопрос.
При генерации данным алгоритмом иногда возникают такие вот артефакты:

исходник hostingkartinok.com/image/01201109/a555f1f18d9645a4900e6e08c0f0371b.png

стерео hostingkartinok.com/image/01201109/0a6c474d5281e03108013127eec47f0c.png

Это лечится? И из-за чего возникает такой эффект?
Попробуй уменьшить максимальный сдвиг или цвета сделать более темными.
Вечером постараюсь глянуть по подробнее.
Если делитель поставить 32 (как в статье), то артефакты пропадают, а если уменьшить — то опять появляются.
Можно узнать, откуда взято число 32? )
Число взято «с потолка». Но признаюсь, при тестировании программы изначально тоже стоял делитель меньше, и я ни как не мог получить читаемый текст. После чего попробовал уменьшить максимальный сдвиг, и чудо произошло :))
Возможно в данном алгоритме есть бага. Потому как первая подобная программа мною была написана примерно в 2000 году еще на паскале ( там таких артефактов не встречалось), алгоритм восстанавливался по памяти. Надо бы сравнить исходники
Вообще, интересно бы проследить — как найти оптимальный коэффициент. )

А с паскалем и алгоритмами знакомая история…
Хм… Как-то от степени расфокусировки зависит. То вижу правильный вариант, то с артефактами.
Если пристально смотреть на самый большой круг, то артефакты почти не видны, но стоит сдвинуть взгляд… )
Аналогично. Когда фокус на большом круге, то видны артефакты; когда фокус на «стене», все нормально.
Это лечится сменой фокусировки :) Я на вашем рисунке увидел три картинки:

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

Мне кажется в алгоритме есть интересный глюк, когда ошибка вынуждает воображение генерить разные формы стерео
А ещё интересно открыть картинку отдельно и увеличивать её колёсиком мышки. Возникает такой забавный эффект «скроллинга» при повороте головы :-)
> P.S. Буду очень рад, если данная статья поможет кому-то хотя бы научиться смотреть стереоизображения, так как сам я далеко не сразу смог это освоить.

Спасибо.

Картинка в посте — первое стереоизображение, которое получилось увидеть правильно.

Может быть, весь фокус в этом? «Чтобы увидеть объемное изображение, необходимо сфокусировать взгляд за плоскостью рисунка»
Именно )))
хахах, до меня дошло, в стереоизображения надо капчу заливать)
А есть готовые программы для генерации таких изображений? Чтоб можно было фон задать и размеры?
После всех этих картинок буквы в комментах двоятся <_>
На первом стерео цифры читаются. А остальные картинки для чего?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории