Как сделать 3D-модель по фото для печати: от изображения до STL
Три способа получить модель по фотографии и воспроизводимый пример литофании. Скачиваемая STL-панель 100×75 мм, локальный Python-скрипт, результаты проверки сетки и подготовка к печати.
Сделать 3D-модель по фото можно несколькими способами. Для печати фотографии с подсветкой нужна литофания: яркость изображения превращается в толщину пластика. Для фигурки нейросеть строит предположительную объёмную форму. Для измеряемой копии реального предмета используют несколько фотографий и фотограмметрию. Один снимок не содержит достоверной информации о задней стороне и скрытых размерах.
Ниже — выбор подходящего способа и воспроизводимый пример «фото → STL»: панель 100×75 мм со снимком восхода Земли. Можно скачать сетку и исходный Python-скрипт. Геометрия проверена программно; физическая печать и проверка в слайсере не проводились. Поэтому перед запуском принтера обязательно проверьте масштаб, слои и устойчивость панели.
Какой способ превращения фото в 3D выбрать
| Что нужно получить | Исходные данные | Подходящий способ | Ограничение |
|---|---|---|---|
| Фотография, проявляющаяся при подсветке | Один снимок | Литофания: яркость → толщина | Получится панель, а не объёмная копия объекта |
| Декоративная фигурка по картинке | Один или несколько ракурсов | Image-to-3D, затем проверка сетки | Скрытые поверхности и размеры предположительные |
| Копия формы реального предмета | Серия перекрывающихся фотографий | Фотограмметрия | Нужны подходящая поверхность, съёмка и масштабирование |
| Корпус, посадочное место, механическая деталь | Фото плюс реальные измерения | Параметрическое моделирование в CAD | Фотография помогает, но не заменяет размеры |
Если нужен корпус с креплениями и отверстиями, начните с моделирования в CAD и экспорта STEP. Восстановленная по изображению поверхность может выглядеть похоже на оригинал, но подходить к плате она будет только после измерений и корректировки.
Почему литофания подходит для первого опыта
У литофании простая идея: тонкие участки пропускают больше света, толстые — меньше. Тёмным пикселям назначается большая толщина, светлым — меньшая. Так получается рельефная пластинка, на которой изображение читается при подсветке с обратной стороны. Без подсветки поверхность выглядит как неровный одноцветный рельеф.
Метод не требует распознавания лица, восстановления перспективы или угадывания скрытых деталей. Он переносит яркость выбранного кадра в геометрию. Цветовое фото преобразуется в оттенки серого, поэтому оттенки с близкой яркостью могут слиться. До создания STL полезно посмотреть чёрно-белую версию и подправить кадрирование.
Подробный разбор разных способов есть у Prusa: превращение изображения в 3D-модель. Для цветных и прозрачных вариантов потребуется отдельная работа с материалом и светом: это уже другой эксперимент, чем одноцветная панель из этого примера.
Наш пример: снимок NASA и готовая STL-сетка

Исходный снимок Earthrise: NASA, William Anders, Apollo 8. Оригинал и описание фотографии. Использование материала здесь носит информационный характер; NASA не является автором нашей STL-модели и не подтверждает её качество.
Для демонстрации создана плоская панель шириной 100 мм и высотой 75 мм. Толщина меняется от 0,8 до 3 мм; по краям оставлена рамка шириной 2 мм и толщиной 3 мм. Яркость вычисляется после преобразования изображения в оттенки серого. Затем поверхность замыкается боковыми стенками и плоской обратной стороной.
- Скачать STL примера «Earthrise», 100×75 мм — около 6 МБ.
- Скачать Python-скрипт и инструкцию в ZIP — для обработки собственного изображения.
Это самостоятельный учебный пример преобразования фотографии в поверхность. Файл не содержит настроек принтера, температур, поддержек или G-code. Никакую конфигурацию чужого оборудования скачивать и запускать для него не требуется: параметры печати вы выбираете в своём слайсере.
Как получить STL из своего фото
- Выберите фото с читаемым главным объектом и без лишних мелких деталей. Для первой попытки удобен кадр с соотношением сторон 4:3.
- Обрежьте изображение заранее. В скрипте панель имеет фиксированный размер 100×75 мм, поэтому другое соотношение сторон при преобразовании изменит пропорции изображения.
- Распакуйте ZIP в отдельную папку. Нужны Python 3, Pillow и NumPy; скрипт обрабатывает локальный файл и не отправляет фотографию в облако.
- Установите зависимости и выполните две команды ниже. Замените
input.jpgименем своего файла. - Откройте полученный
output.stlв слайсере и проверьте размеры и ориентацию.
python -m pip install Pillow numpy
python photo_to_stl.py input.jpg output.stl
Команды предполагают, что Python доступен как python. Если система использует другое имя запуска, используйте его для обеих команд. Имена файлов с пробелами заключайте в кавычки. Исходную фотографию лучше сохранить отдельно: для следующего варианта удобнее менять подготовленный кадр, а не редактировать уже полученную треугольную сетку.
Уменьшение готовой STL-модели уменьшит также минимальную толщину. Например, масштаб 50% превратит 0,8 мм в 0,4 мм. Это меняет светопропускание и условия печати, поэтому для другого размера лучше менять ширину, высоту и диапазон толщины в генераторе осознанно, затем повторять проверку слоёв.
Что проверено в готовом файле

Расчётная визуализация поверхности созданной сетки, а не фотография отпечатка. Вертикальный масштаб увеличен для наглядности рельефа. Светлые участки изображения образуют более тонкие области панели.
| Проверка | Результат примера |
|---|---|
| Габариты | 100×75×3 мм |
| Количество треугольников | 121 400 |
| Связные компоненты | Одна |
| Замкнутость поверхности | Подтверждена программно |
| Согласованность ориентации граней | Подтверждена программно |
| Физическая печать и просмотр слоёв в слайсере | Не проводились |
Проверки сетки полезны, но не описывают работу конкретного принтера. Замкнутая поверхность всё ещё может иметь слишком тонкие участки для выбранной ширины линии или неудобную ориентацию. STL также не хранит единицы измерения: здесь координаты заданы с расчётом на миллиметры. Если слайсер показывает другой размер, сначала исправьте интерпретацию масштаба.
Как подготовить литофанию к печати
Начните с обычного светлого материала и уже проверенного профиля своего принтера. Белый пластик удобен для эксперимента с проходящим светом, но две катушки разных марок могут давать разную прозрачность. До большой панели полезно напечатать небольшой тест толщины и посмотреть его с той подсветкой, которая будет использоваться в готовой работе.
Исходная STL лежит в плоскости XY, а толщина направлена по Z. Чтобы поставить панель вертикально, поверните её на 90° вокруг оси X и расположите нижней рамкой на столе. В таком положении высота будет около 75 мм. Проверьте, что плоскость детали стоит ровно и вся нижняя кромка касается поверхности. Высокая тонкая панель требует устойчивого основания; подходящую ширину brim выбирайте по сцеплению и профилю своего принтера.
В предпросмотре слоёв проверьте непрерывность тонких участков, отсутствие дыр и достаточное заполнение панели. Воздушные полости меняют изображение, поэтому ориентироваться только на внешний вид STL недостаточно. Посмотрите, как слайсер создаёт внутренние линии, и сравните несколько вариантов стенок и заполнения на небольшом образце. Универсального набора параметров для любой катушки и сопла здесь нет.
Массу и время получайте после нарезки в своём профиле. Учесть материал, электроэнергию и повторную попытку поможет расчёт стоимости печати по данным OrcaSlicer. Не используйте объём STL как готовое значение расхода: поддержки, brim и структура заполнения определяются отдельно.
Когда нужна нейросеть или фотограмметрия
Если хочется получить фигурку персонажа по одному изображению, изучите официальный процесс Image-to-3D в Meshy. Сервис строит предполагаемую объёмную форму. Для декоративного результата это может быть полезно, но размеры, обратная сторона и тонкие детали требуют проверки. Доступные форматы, ограничения и условия экспорта проверяйте в текущем интерфейсе сервиса.
Перед печатью нужен именно геометрический файл, а не только красивый просмотр с текстурой. Окраска и тени могут скрывать отсутствие реального рельефа. Проверьте замкнутость сетки, толщину элементов, отдельные висящие части и контакт с основанием. У Meshy есть отдельная инструкция по подготовке файлов для 3D-печати. Нейросетевая модель для этой статьи не создавалась: проверенный пример выше использует только яркость фотографии.
Для восстановления поверхности настоящего предмета снимайте его с нескольких перекрывающихся ракурсов. Освещение и положение объекта должны оставаться согласованными; прозрачные и зеркальные поверхности затрудняют сопоставление признаков. Масштаб задаётся по измеряемому ориентиру. Основы метода изложены в рекомендациях Agisoft по съёмке для фотограмметрии. Даже удачный скан обычно нуждается в очистке и проверке перед печатью.
Типичные ошибки и следующий шаг
- Ожидание точной копии по одному снимку. Литофания переносит яркость, нейросеть предполагает объём, а механические размеры требуют измерений.
- Слишком мелкий главный объект. Кадрируйте фото: разрешение исходника не компенсирует маленький объект и ограничения физической панели.
- Чтение рельефа без подсветки. Изображение должно проявляться в проходящем свете; обычная фотография поверхности выглядит иначе.
- Масштабирование без контроля толщины. Проверяйте миллиметры и минимальные стенки после каждого изменения размера.
- Печать без просмотра слоёв. Проверка сетки и проверка траекторий решают разные задачи; нужны обе.
- Покраска литофании плотной краской. Непрозрачное покрытие изменит светопропускание. Общие приёмы постобработки 3D-печати больше подходят для корпуса, рамки и обычных фигурок.
Для первого результата выберите один выразительный кадр, создайте STL и оцените небольшой образец с подсветкой. Для фигурки переходите к Image-to-3D с последующей проверкой геометрии. Для корпуса и точных посадок используйте CAD и измерения. Так способ обработки соответствует задаче, а скачанный файл становится понятным исходником для вашей печати.
Для рамки, основания или корпуса подсветки отдельно оцените выбор PLA или PETG по условиям работы. Материал панели и материал нагревающегося корпуса не обязательно должны совпадать.
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.