Приложения для создания 3D-фото — топ-5 лучших программ

Сегодня, чтобы создавать объёмные изображения совсем необязательно обладать продвинутыми навыками работы в графических редакторах. На просторах интернета можно встретить ряд приложений, которые в два клика накладывают 3Д-эффект на обычные фотографии.

Содержание

  • 1 Что такое 3D-фото
  • 2 Какими способами можно создать на компьютере или телефоне
  • 3 Топ-5 лучших приложений
    • 3.1 LucidPix
    • 3.2 Fyuse
    • 3.3 Camera 3D Pro
    • 3.4 FILM3D
    • 3.5 Parallax: 3D Photo Live Camera
  • 4 Полезное видео
  • 5 Заключение

Что такое 3D-фото

3Д-изображение позволяет создать эффект реалистичности наряду с ощущением погружённости. Ранее для вёрстки трёхмерного объекта нужна была дорогостоящая техника: камеры, объективы и другая оптика, купить которую рядовому пользователю не под силу.

Но с развитием технологий эффект объёма можно получить в пару кликов, имея на руках лишь смартфон и специфическое программное обеспечение. Теперь нет необходимости тратить десятки часов на освоение «Фотошопа» и другого графического софта. Достаточно установить специальное приложение на телефон, а всё остальное возьмёт на себя искусственный интеллект.

Полезно также почитать: Обзор телеграмм-каналов о 3D

Какими способами можно создать на компьютере или телефоне

Увы, но программного обеспечения для быстрого создания объёмных изображений из обычных фотографий не существует. То есть все важные этапы вёрстки, вроде отрисовки карты глубины, наложение слоёв и прочее придётся выполнять вручную. В Сети можно найти онлайн-сервисы для конвертирования снимков в стереоскопические изображения, но для их просмотра необходимы специальные очки.

Разработчики подобного софта делают упор именно на сегмент мобильных гаджетов. Последние имеют в своём распоряжении камеры, посредством которых и создаются 3Д-изображения.

Среди прочих редакторов для ПК можно отметить вездесущий Photoshop и его ближайший аналог по части 3Д – GIMP. Для создания 3Д-фото придётся потратить несколько часов на изучение функционала, поэтому новичкам целесообразнее посмотреть в сторону программ для мобильных устройств.

Топ-5 лучших приложений

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

LucidPix

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

Достаточно сделать снимок с помощью штатного софта или средствами LucidPix, после чего искусственный интеллект преобразует его в трёхмерное изображение. Судя по отзывам пользователей на выходе получаются вполне достойные 3Д-фото.

Полученным материалом можно поделиться с друзьями в социальных сетях: WhatsApp, Facebook, iMessage, Instagram и прочих. LucidPix распространяется совершенно бесплатно для устройств на платформе Android и iOS. Единственное, что иногда смущает пользователей, так это время от времени всплывающая реклама в приложении.

Fyuse

Программа вышла на рынок довольно давно, но разработчики регулярно выпускают актуальные обновления. Fyuse позволяет создать подобие видео панорам, что придаёт снимку 3Д-эффект. После запуска приложения мастер-помощник предложит сфокусировать камеру на интересующем объекте. Далее программа отрисует несколько линейных маркеров, по которым нужно будет следовать, перемещая камеру от одной точки к другой.

По окончанию захвата приложение обработает снимок и через минуту другую выдаст результат. Таким образом мы получаем зацикленное видео с эффектом глубины. 3Д-изображением можно поделиться в трёх социальных сетях: Instagram, Facebook и Twitter, или же просто сохранить его в памяти телефона.

Fyuse распространяется бесплатно, но в отличие от аналогичных приложений здесь совершенно нет рекламы. Программа хорошо адаптирована как под платформу Android, так и iOS: потребляет ресурсы по минимуму и не мешает работе ключевых служб.

Camera 3D Pro

Программа работает с панорамой, поэтому для получения объёмного фото потребуется перемещать камеру согласно указаниям мастера-помощника. Судя по отзывам пользователей, местный функционал никак нельзя назвать интуитивно понятным. У многих на его освоение уходит не один час.

Съёмку приходится выполнять с помощью двух рук, удерживая кнопки захвата в интерфейсе программы. Camera 3D Pro предлагает несколько вариантов трёхмерных снимков на выходе: 3D-Color, Wiggle, Stereo, Mono или классический Regular.

Программа ресурсоёмкая, поэтому на аппаратах прошлых поколений работает с заметными задержками. К тому же 3Д-снимки на выходе получаются массивными, занимая как минимум 100 Мб, что для бюджетных устройств с малым объёмом памяти весьма существенно.

Приложение распространяется по условно-бесплатной лицензии и как следствие обременено многочисленной рекламой, отключить которую можно оформив платную подписку. Camera 3D Pro работает только на платформе iOS.

FILM3D

Принцип работы приложения – комбинирование быстро сменяющихся кадров. Меняя ракурс программа создаёт эффект объёма. Посредством местных фильтров можно практически как угодно отредактировать полученный результат. После установки и запуска FILM3D сразу переходит в рабочий режим.

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

3Д-изображение можно сохранить в формате GIF или МР4. Приложение привязано только к сервису Instagram, поэтому публикация в другие социальные сети происходит в ручном режиме. Также стоит заметить, что объёмные фото от FILM3D занимают довольно много места.

Приложение распространяется по условно бесплатной лицензии с ограниченным функционалом для платформы iOS. Как таковой рекламы здесь нет, за исключением презентации самого продукта. Но на выходе получается материал с водяными знаками. Чтобы избавиться от последних или открыть доступ к расширенному функционалу придётся оформить подписку.

Parallax: 3D Photo Live Camera

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

Явный плюс приложения – понятный интерфейс, быстрая работа и скромные объёмы полученных 3Д-изображений. Программа разработана только для платформы iOS. Распространяется бесплатно, но с существенными ограничениями по функционалу. Для снятия последних нужна платная подписка.

Полезно также почитать: 3D-графика в фильмах

Полезное видео

Заключение

Помимо специализированных приложений объёмные изображения можно создавать в своём профиле Facebook. Но опять-таки потребуется установить на смартфон с камерой фирменный софт (Play Market или AppStore).

В разделе «Создание публикаций» достаточно выбрать пункт «3D-фото» и загрузить снимок с телефона. К обработке принимаются только необрезанные изображения без ранее наложенных фильтров. Следует избегать фото зеркал, стёкол, а также объектов с нечёткой текстурой и размытыми краями.

Превращаем обычную фотографию в 3D-модель| ichip.ru

05.04.2018

Автор: Ольга Дмитриева

1 звезда2 звезды3 звезды4 звезды5 звезд

Превращаем обычную фотографию в 3D-модель

3

5

1

34

1

CHIP подготовил инструкцию, которая поможет сделать из простых фотографий полноценные 3D-модели. Мы подобрали подходящее ПО и подробно описали процесс превращения.

Ваши снимки легко превратить в настоящие трехмерные модели, которые можно распечатать на 3D-принтере. Мы расскажем, как это работает.

Шаг 1: преобразование фотографий в 3D-модель

Чтобы начать превращение, вам понадобится программа VisualFSM.

  • Импортируйте в VisualFSM все фотографии соответствующего объекта. Лучше всего сделать несколько фотографий, двигаясь вокруг предмета.
  • Нажмите кнопку Compute Missing matches, а затем — Compute 3D Reconstruction.
  • Если результат вас устраивает, а 3D-модель можно узнать по разным точкам, кликните на CMVS. После завершения расчетного процесса нажмите клавишу Tab, чтобы просмотреть готовую 3D-модель.

Шаг 2: оптимизация 3D модели

3D-еда для 3D-людей

Теперь вам нужна программа MeshLab.

  • Перейдите в раздел File — Open Project File и импортируйте проект, созданный в первом шаге.
  • В правом верхнем углу вы найдете инструмент, который позволит вам удалить лишнее. Очистите с его помощью вашу 3D-модель и при необходимости выровняйте края. Сохраните проект как PLY-файл.
  • Перейдите к разделу Filters — Point Set — Surface Reconstruction: Poisson. Выберите для параметра Octree Depth значение 12, а для Solver Divide — 10 и нажмите Apply.
  • Удалите свое облако точек. Теперь у вас есть готовый 3D-объект.
  • Нажмите Filters — Selection — Select Non Manifold Edges и снова используйте инструмент удаления.
  • Перейдите к пункту Filters — Texture — Parameterization + texturing from registered rasters. Выберите здесь максимально высокое разрешение, поставьте галочку на UV stretching и снова нажмите Applу.
  • Сохраните готовую модель как OBJ-файл. Теперь вы можете просто распечатать его на 3D-принтере.

Читайте также:

  • Смотрим 3D-фильмы с PlayStation 3 и 4
  • Топ-5: бесплатные программы для дизайна и 3D-моделирования
  • 3D-модели онлайн: лучшие программы

Фото: pixabay.

com

Автор

Ольга Дмитриева

Была ли статья интересна?

Поделиться ссылкой

Нажимая на кнопку «Подписаться»,
Вы даете согласие на обработку персональных данных

Рекомендуем

Реклама на CHIP Контакты

потоковых объемных изображений онлайн | Лиза Джамхури

Обучение и рабочий процесс при отправке цветных 3D-изображений и изображений глубины по сети в режиме реального времени.

Несколько лет назад я начал работать над инструментом с открытым исходным кодом под названием Kinectron, получившим свое название от двух основных компонентов: Kinect + Electron. Программное обеспечение передает данные с Kinect V2 через Интернет, делая данные доступными на стороне клиента в браузере через (простой в использовании) API.

Одна большая проблема, с которой я столкнулся, — это работа с объемными или 3D-изображениями в сети и в браузере. Я изо всех сил пытался их прочитать, сохранить, передать и распаковать. Я нашел работающие, но далекие от совершенства решения на каждом этапе. Я пишу свои знания и текущий рабочий процесс в надежде получить лучшее представление о том, где я нахожусь, куда мне следует двигаться дальше (особенно с прекращением поддержки Kinect) и как другие люди решают те же проблемы.

Прежде чем я начну, большое спасибо Shawn Van Every, Wouter Verweirder, Aarón Montoya-Moraga и Or Fleisher за их вклад на разных этапах пути.

Основной процесс, с которым я работал, заключается в захвате изображений цвета и глубины с Microsoft Kinect, отправке их по сети с использованием каналов данных webRTC, а затем их распаковке и отображении в браузере. Я разобью процесс на четыре этапа: чтение, сохранение, отправка и рисование.

Благодаря Kinect большинство разработчиков теперь хоть немного знакомы с изображениями глубины и видели 8-битное изображение глубины в градациях серого сенсора. На этом изображении глубина представлена ​​равными значениями RGB от 0 до 255. Чем темнее изображение (чем меньше число), тем ближе объект, чем светлее (больше число), тем дальше объект.

Изображение глубины Kinect, представленное в оттенках серого (0–255 или 8 бит).

Хотя обычно используется 8-битное изображение глубины, необработанная глубина Kinect является 13-битной. Датчик глубины имеет диапазон восьми метров, то есть 0–8000. (Обратите внимание, что надежность начинает снижаться примерно на 4,5 метра, или 4500.) Данные хранятся в 16-битном буфере кадра, который, как показали мои тесты, слишком велик для отправки в реальном времени самостоятельно.

Чтобы сделать необработанные данные о глубине более удобными для отправки в Интернете, я преобразовал 13-битное изображение в 8-битное. Большинство изображений сегодня имеют четыре канала: красный, зеленый, синий и альфа-канал, или RGBA. Каждый из каналов может содержать 8 бит. Чтобы использовать эту типичную конфигурацию для хранения 13-битного изображения, 13 бит распределены по двум каналам — R и G — а каналы B и A остаются пустыми. Вот как это выглядит в коде:

 function processRawDepthBuffer(newPixelData) { 
пусть j = 0;
for (пусть i = 0; i < imageDataSize; i+=4) {
imageDataArray[i] = newPixelData[j];
imageDataArray[i+1] = newPixelData[j+1];
imageDataArray[i+2] = 0;
imageDataArray[i+3] = 0xff; // установить альфа-канал на полную непрозрачность
j+=2;
}
}

Для сравнения, вот код для отрисовки 8-битной глубины оттенков серого:

 function processDepthBuffer(newPixelData){ 
letj = 0;

for (пусть i = 0; i < imageDataSize; i+=4) {
imageDataArray[i] = newPixelData[j];
imageDataArray[i+1] = newPixelData[j];
imageDataArray[i+2] = newPixelData[j];
imageDataArray[i+3] = 0xff;
Дж++;
}
}

При рисовании на холст необработанное изображение глубины выглядит следующим образом.

Kinect 13-битное необработанное изображение глубины, сохраненное в 8-битном изображении.

Сохранение необработанных данных о глубине в формате изображения RGBA, а не в буфере кадров, упрощает работу с ними в сети (подробнее об этом ниже…).

Теперь, когда у меня есть изображение глубины, пришло время подумать о цвете. Kinect обеспечивает цветное изображение, но цветная и глубинная камеры Kinect имеют разные разрешения: 1920 x 1080 и 512 x 424 соответственно. Для совместного использования изображений с разным разрешением цветное изображение должно быть зарегистрировано в изображении глубины. Об этом писали многие (вот один пример), так что я не буду здесь вдаваться в подробности.

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

При первом подходе я захватываю и отправляю изображения цвета и глубины отдельно. Я включаю 13-битные необработанные данные о глубине в одно изображение и данные о цвете в другое изображение.

Процесс 1: отправка изображений глубины и цвета по отдельности и их объединение на стороне клиента.

В этом случае есть два преимущества: во-первых, я могу использовать меньший формат изображения с потерями для цветного изображения, что облегчает его отправку, а во-вторых, я получаю полное разрешение по глубине. Однако изображения с потерями не оптимизированы для сжатия данных глубины, поэтому изображение глубины необходимо отправлять без потерь, чтобы сохранить высокое разрешение глубины. Отправка изображения без потерь по сети требует много места и полосы пропускания, а отправка его одновременно с цветным изображением создает дополнительную задержку.

При втором подходе я объединяю изображения цвета и глубины на сервере в одно изображение. Я использую каналы RGB для данных о цвете и канал A для хранения 8-битных данных глубины оттенков серого, создавая изображение RGBD. Затем я отправляю только одно изображение по сети.

Процесс 2: отправка изображений глубины и цвета вместе в одном комбинированном изображении RGBD.

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

Интересно, что я могу отправить четырехканальное необработанное изображение глубины 512 x 424 по сети и обработать данные в облако точек со скоростью 24 кадра в секунду или выше, но я не могу сделать то же самое с надежной частотой кадров с разрешением 512 x 424. RGBD-изображение. Я предположил, что даже если размер изображения одинаков, сложность данных (сохранение цвета и глубины в одном и том же изображении) требует большей пропускной способности для отправки. Это точка для меня, чтобы вернуться и повторить тест.

Формат изображения

Когда я получаю буферы изображений от Kinect, я рисую их на элементах холста HTML5 и преобразовываю их (используя toDataUrl) в URL-адреса данных изображения с основанием 64, которые идеально подходят для отправки по сети.

Я протестировал несколько комбинаций форматов изображений, чтобы определить, какой из них лучше всего подходит для сжатия изображений для отправки по сети. WebP оказался лучшим выбором. Сжатие JPG отлично работает для изображения RGB, но не позволяет использовать альфа-канал. PNG и WebP допускают альфа-канал, а WebP был намного меньше.

Как я упоминал ранее, сжатие изображений с потерями уничтожает данные о глубине. Вот облако точек, нарисованное в Three.js с использованием цвета Kinect и необработанных данных о глубине, отправленных по моей локальной сети с качеством WebP 1.0 (без потерь):

Облако точек, нарисованное на основе необработанных данных о глубине, переданных как WebP без потерь.

Вот тот же сценарий с необработанными данными о глубине, отправленными с качеством WebP 0,99 (с потерями).

Облако точек, полученное из необработанных данных глубины, переданных с качеством WebP 0,99 с потерями.

Этот вопрос эффективного хранения объемных данных является для меня большим камнем преткновения и еще одним поводом для продолжения поиска альтернативных вариантов. (Вот мои черновые заметки начала 2016 года для тех, кто хочет узнать больше об этом процессе. )

Когда у меня есть URL-адрес данных цвета и изображения глубины в WebP с выбранным качеством, я отправляю изображение по каналам данных WebRTC, используя библиотеку с открытым исходным кодом PeerJS. PeerJS использует UDP, а не TCP. UDP позволяет соединению отбрасывать пакеты без последствий, что делает его идеальным для потоковой передачи больших объемов данных (подробнее здесь). Это самый простой этап моего процесса (на данный момент!).

Получив поток объемных данных, я использую Kinectron API для их получения в Three.js. Я рисую URL-адрес данных на изображении, затем на холсте, затем я вытягиваю пиксели с холста с помощью getImageData для управления ими. (Chromium недавно выпустил новую функциональность для обхода этого процесса с помощью ImageBitmapRenderingContext. Я скоро рассмотрю возможность реализации этого.)

В своих первых экспериментах я использовал встроенную геометрию точек Three.js для построения облаков точек с поступающей глубиной. и цветные изображения. Вот gif одного из моих первых экспериментов с использованием только необработанных данных о глубине в моей домашней сети Wi-Fi (вот примерная версия этого кода).

Необработанные данные о глубине передаются по сети Wi-Fi и отображаются в виде облака точек в Three.js.

В следующем эксперименте я отправил данные о цвете и необработанной глубине в виде двух изображений по своей домашней сети и создал облако цветовых точек в Three.js. Я не записал fps в то время (и у меня проблемы с поиском кода…), но у него есть видимая задержка.

Необработанная глубина и цвет, передаваемые по сети Wi-Fi и собранные вместе в виде облака точек в Three.js.

Несмотря на задержку, я был доволен облаком цветовых точек как достаточно хорошим прототипом потокового цветного объемного видео в реальном времени по сети и в моем браузере. Отсюда мои исследования начали двигаться в сторону работы с цветом и глубиной, поступающими из двух разных источников. В этот момент я переключился на написание пользовательских шейдеров в Three. js, чтобы ускорить обработку на стороне клиента. Вот как это выглядело (и вот код):

В то время как предыдущие примеры выполнялись с двумя отдельными изображениями — необработанными изображениями глубины и цвета — для одного человека, пример для двух человек работает с двумя изображениями RGBD, по одному от каждого человека. Чтобы отправить данные быстрее, я использовал RGBD-изображения с потерями, что вызвало эффект сетки в данных глубины (см. GIF ниже). Серверы Kinect транслируются со скоростью 24 кадра в секунду и расположены в двух разных местах. (Подробнее об этом проекте здесь.)

Изображения глубины с потерями вызывают эффект сетки.

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

Three-Kinectron

Ранее в этом году Ор Флейшер создал Three-Kinectron, плагин для работы с данными RGBD, передаваемыми из Kinectron в Three. js. Он отображает канал RGBD в виде сетки, проволоки или точек и имеет методы, которые предоставляют пользователю простой доступ к таким свойствам, как яркость, контрастность и непрозрачность.

Скриншот примера Three-Kinectron.

Было интересно вернуться к этому рабочему процессу, и описание процесса помогло мне увидеть места, в которые я могу вернуться. Наиболее актуальными из этих моментов на данный момент являются: исследование более эффективных способов упаковки данных о глубине для потоковой передачи, реализация ImageBitmapRenderingContext , чтобы ускорить обработку на обоих концах и проверить жизнеспособность замены Kinect датчиком Intel RealSense.

Я также в восторге от проекта, который в настоящее время реализуется между Нью-Йоркским университетом в Шанхае и Нью-Йорком в рамках гранта NYU Visual Arts Initiative. Мы работаем на стороне сервера, чтобы отправлять только данные о цвете и глубине, связанные с людьми в сцене, что позволило бы нам транслировать людей без фона. Я думаю, что это может сократить использование полосы пропускания и привести к ряду интересных приложений.

Я написал эту статью, чтобы задокументировать свою работу над программным обеспечением с открытым исходным кодом, Kinectron . Kinectron — это одноранговый сервер реального времени для Kinect V2, который делает скелетные и объемные данные доступными в браузере через высокоуровневый API .

Я разработал Kinectron с Шоном Ван Эвери в рамках гранта Google Experiments in Storytelling ( xStory ) в Программе интерактивных телекоммуникаций Нью-Йоркского университета ( ИТП ). В настоящее время он находится в стадии разработки. Пожалуйста, , свяжитесь с , если вы хотите внести свой вклад .

Объемный анализ изображений | Wiley

  • Загрузить флаер продукта
  • Описание
  • Об авторе
  • Содержание

Выбранный тип: Твердый переплет

Количество:

Печать по требованию

$315,00

Габриэле Ломанн

ISBN: 978-0-471-96785-9 апрель 1998 г. 256 страниц

  • Печать

    Всего от 315 долларов США

Твердый переплет

$315,00

Загрузить рекламный проспект

Загрузить рекламный проспект

Загрузить флаер продукта для загрузки PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке.

Это фиктивное описание.

Описание

Объемные или трехмерные цифровые изображения в настоящее время играют жизненно важную роль во многих областях исследований, таких как медицина и геология. Медицинские изображения, полученные, например, с помощью томографических сканеров, часто представлены в виде стопки срезов изображений поперечного сечения. Такие изображения называются «объемными»? потому что они изображают объекты во всей их трехмерности, а не только как проекцию на двумерную плоскость изображения. Поскольку огромные объемы объемных данных постоянно производятся во многих местах по всему миру, методы их автоматического анализа становятся все более важными. Написанный специалистом по компьютерному зрению, этот четкий и подробный отчет о методах анализа объемных изображений обеспечивает практический подход к этой области, включая следующие темы:

  • предварительная обработка объемных изображений
  • получение количественных измерений на объемных изображениях
  • обнаружение и моделирование объектов на объемных изображениях

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

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *