Изготовление сферической панорамы гуглокамерою

    Три дня назад (16 апреля 2014 года) в Google Play было опубликовано приложение «Google Камера», ранее доступное только для владельцев Nexus. Позавчера (17 апреля) я о нём прочёл на AndroidInsider.ru, скачал, попробовал изготовить сферическую панораму. Удалось.

    Делюсь впечатлениями.

    Прежде всего скажу, что приложение (которое я для простоты стану называть гуглокамерою) устанавливается только на KitKat (Android 4.4). Вчера я пробовал установить его на одну из прошлогодних моделей Galaxy Tab, всё ещё работающих на Jelly Bean (Android 4.2) — эта попытка окончилася неудачею. Однако на мобильник HTC One (даже на первую модель, а не нынешнего года) гуглокамера устанавливается невозбранно.

    При запуске гуглокамера открывается на полный экран:

    [скриншот]

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

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

    Изготовление отдельных фотографий происходит полуавтоматически по принципу, который поясняется подсказкою «для начала поместите точку в круг» («to start, keep dot inside circle»). В центре поля зрения находится кружок, которым необходимо «поймать» точки, расположенные на параллелях сферы на равном расстоянии друг от друга (причём на экваторе сферы, который соответствует горизонту фотографа, таких точек побольше, а на остальных параллелях точек тем меньше, чем ближе параллель к зениту над головою у фотографа или к надиру под ногами); в такие-то моменты фотоаппарат, в точности нацеленный на очередную точку, делает фотоснимок.

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

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

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

    Прервать составление набора фотографий на сфере (и перейти к их автоматической стыковке) можно в любой момент (а не только тогда, когда сфера зафотографирована вся целиком). Если фотосфера не завершена, то все несфотографированные части её будут на итоговой фотопанораме чёрными. Ход стыковки отображается отображается (и в процентах, и ползущею полосою завершённости) на общесистемной панели уведомлений в Android.

    Приведу для примера фотопанораму, изготовленную мною (и гуглокамерою) позавчера. Она полностью (360°×180°) изображает набережную Геленджика на закате недалеко от входа в «Лагуна-гриль».

    [фотопанорама]

    Эта фотопанорама имеет размер 9728×4860 пикселов и занимает 5 914 774 байта. Видно, что автоматическая стыковка всюду удалась сносно, кроме пары-тройки мест на брусчатке и парапете набережной.

    При просмотре поневоле приходится столкнуться с тем, что к нексусовской гуглокамере недостаёт нексусовского же просмотрщика сферических фотопанорам. Вдогонку: есть такой.

    Большýю проблему представляет собою также публикация фотопанорамы в Интернете: многие хостинги картинок попросту не пригодны для хранения этакой громадины. Например, hostingkartinok.com не принимает фотографии более 3 мегабайтов, а FastPic отказывается принимать более 25 мегапикселов (тогда как картинка насчитывает более 47 мегапикселов). Twitter же принимает безропотно, однако ужимает картинку до 1024 пикселов (ровно в 9½ раза) и притом резко снижает её JPEG-качество, так что рассматривать мелкие детали её (в чём, собственно, и состоит главное удовольствие от разглядывания фотопанорам) становится совершенно невозможно. В итоге для Хабрахабра я выложил фотопанораму на PicShare; тем не менее, приходится признаться, что я так до сих пор не нашёл такой фотохостинг, который бы не только принимал фотографии существенного размера, но и поддерживал Twitter Cards для миниатюрного предпросмотра во Твиттере.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 33

      +3
      Вот сюда можно загружать и смотреть 360 панорамы.
        +1
        Оно хочет флеш-проигрыватель, которого нихт в андроиде 4.4
          0
          Простите, что столь поздно отвечаю, но флеш всё таки есть для новых версий Android — helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html

          Flash Player for Android 4.0 archives

          On September 10 2013, Adobe released Flash Player 11.1.111.73 for Android 2.x and 3.x and 11.1.115.81 for Android 4.0.x in keeping with statements made in Adobe's publicly available Flash Roadmap. This release is the final update release of Flash Player for the Android operating system. While it is not recommended, if you would like to download this release for previous Android releases, see the links below:

          Конечно же он старый, уязвимый, но это рабочее решение которое можно применять при понимании последствий такого применения. Работает, как минимум, с Firefox и Dolphin browser, наверняка ещё с какими то браузерами. Проверено, работает не только на 4.0.x, но и на 4.1.x — 4.4.x. По умолчанию подгружается только по клику, так что случайно запустить его не получится, в общем жить можно, но, повторюсь — такое решение содержит открытые и общеизвестные уязвимости, а потому пригодно только для опытных пользователей.
        +7
        Ура, теперь я умею пользоваться фотосферой! Спасибо за инструкцию.
          +1
          Спасибо. Как море? Посещают мысли приехать на выходные в мае окунуться. Дико радует пустая набережная. В сезон зрелище пугающее.
          Кстати, рекомендую для сшивки панорам крайне удобную утилиту ptGUI. Ну и если к этому добавить зеркалку с широким углом — будет совсем замечательно.
            0
            Море пока существенно прохладнее, чем в сезон.

            PTGui пробовал; работает превосходно, но всегда вызывает желание вручную донастроить стыковку или переменить приоритет снимков при наложении — в итоге жрёт много времени. Результат, конечно, также получается лучше.
              –5
              Может приеду) Краснодар рядом. Не люблю толпы туристов ненормальных, которые вначале сидят в вечной мерзлоте и полярной ночи, а потом лежат на пляже в полдень. Как видишь красных людей с фиолетовым оттенком — наверняка из Мурманска или ещё откуда-то.
                +9
                Ребята из Краснодара, мы, ребята из Мурманска, очень рады что вы не обделены климатическими условиями, и лето, и зима, у вас как у обычных белых людей. Прстите нас, северян, которые отдают деньги за путевки в Краснодарский край (с перелетом на 20%-30% процентов дешевле от средней цены за Турцию/Египет). Едим на курорт мы не на 3-4 месяца, поэтому и пытаемся максимально получить профит от климата за 9-12 дней, учитывайте это пожалуйста. А в «вечной мерзлоте и полярной ночи» мы сидим не потому что нам сильно этого хочется, кто-то должен жить и работать за Полярным кругом.
                  0
                  Приношу свои искренние извинения, если обидел. Просто приходится сталкиваться часто с подобным. Народ совсем кожу не бережет. Ну нельзя на солнце после 11 и до 17 выходить. Тем более с непривычной к ультрафиолету. Потом ещё умудряются от солнечных ожогов применять совсем неверные вещи типа сметаны, которые только хуже делают. И уж тем более не вызывают одобрения толпы людей пьющих в дрова на пляже в полдень. Я зря обобщил и фраза прозвучала очень высокомерно. Мы всегда рады гостям, конечно же. Берегите себя.
              –1
              Зеркалка обеспечивает прекрасное качество изображения, но её труднее постоянно носить с собою и труднее удерживать на одном месте — придётся ходить со штативом, а его ещё труднее носить с собою постоянно.

              Кроме того, в зеркалке нет акселератора и цифрового компаса, так что приходится самостоятельно обеспечивать наложенность снимков друг на друга и покрытость сферы, да и у PTGui не будет эмпирических данных об ориентации.
                +1
                Вот жалко, что в хороший фотоаппарат никто не добавляет акселерометры.
                  +2
                  На хорошую зеркальную камеры панорамы снимаются при помощи штатива и панорамной головки, с рук снять панораму сложно из за паралакса, особенно там где много мелких объектов на переднем и на заднем плане, например в лесу.
                +1
                ptGUI платная, если панорама снята без сильного параллакса, то справятся бесплатные Hugin (у него еще аппаратное ускорение есть) и Microsoft Composite Image Editor.
                  0
                  Да, но денег своих она стоит. Opensource вариант я не осилил, если честно. Крайне дикий интерфейс, на мой взгляд.
                    0
                    Да, но денег своих она стоит

                    Если вы профессионально этим занимаетесь. Если хобби — слишком дорого при вполне рабочих альтернативах.

                    Крайне дикий интерфейс, на мой взгляд.

                    Я бы не сказал, что интерфейс Hugin катастрофически сильно отличается от ptGUI, меcтами вообще один в один.
                +7
                Ждем мануала по использованию звонилки!
                  +1
                  Просмотрщик панорам есть, он встроен в Google+, так что можно без проблем выкладывать их туда и делиться с друзьями
                    0
                    А сколько по времени строится такая панорама на устройстве?
                      0
                      Несколько минут (на HTC One).
                      0
                      К сожалению ни Photo Sphere, ни Panorama не доступны на Moto G, так как в нём нет гироскопа.
                        0
                        Используйте imgur.com, но аккуратней с кнопкой «Random», затягивает!
                          0
                          Попробовал загрузить панораму, увидел «an error occured, retrying upload…» сперва один раз, затем второй…

                          Кажется, imgur не жрёт такие объёмы. Или уж не знаю в чём дело.
                            0
                            Я где-то видел мануал, чтобы скорректировать EXIF и заставить телефон воспринимать панораму, сделанную тем же ptGUI как родную
                            0
                            По адресу https://imgur.com/faq#size нетрудно прочесть, что imgur.com переужимает картинки до размера 1 мегабайт.

                            Следовательно, imgur для публикации качественных фотопанорам никоим образом не подходит!
                              0
                              Может вам в сторону Owncloud и домашнего сервера посмотреть уже?
                            +2
                            При просмотре поневоле приходится столкнуться с тем, что к нексусовской гуглокамере недостаёт нексусовского же просмотрщика сферических фотопанорам


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

                            К слову, еще интересен режим размытия: телефон делает несколько фотографий с небольшим отличием в ракурсе, и потом можно выбрать, размыть ли объект съемки или задний план.
                              0
                              Опаньки, работает листание влево! (В смысле, проведение пальцем справа налево; кадры-то наплывают справа.)

                              Спасибо.
                              0
                              Кто может подсказать как найти это приложение в Google Play? Или его уже удалили?
                                +1
                                Если ваше устройство не поддерживается приложением, оно не будет отображаться в Google Play. Ссылка на приложение есть в посте.
                                  0
                                  надо зайти на Google Play и ввести в строку поиска название нужной вам программы, в данном случае это Google Camera.
                                  Век живи — век учись!
                                  +1
                                  Графомания даже в тегах.
                                    +2
                                    Это, конечно, всё круто, но для качественной панорамы нужно чтобы опорная точка вращения совпадала с точкой схождения лучей в оптической системе. Таким образом мы можем избежать параллакса при сдвиге камеры. Для зеркальных камер есть специальные панорамные головки для сферических панорам, например, Сфера-69, вручную же вращать планшет так не получится и на фото будут артефакты, если в кадр попадут объекты вблизи.
                                      0
                                      Лучше всего эти панорамы грузятся в picasaweb, где можно их смотреть в нормальном режиме (крутить туда-сюда) и шарить.

                                      Only users with full accounts can post comments. Log in, please.