![](https://habrastorage.org/files/0b6/14f/936/0b614f9360af4ee4b0a1d57fb79155a3.jpg)
На сайте Instructables опубликована инструкция, как собрать самый простой и дешёвый 3D-сканер из подручных средств. Автор проекта GotMesh подсмотрел идею использовать молоко у коллег из проекта Milkscanner, которые применили его для создания сложных 3D-моделей ещё до того, как 3D-печать пошла в массы. Новый способ намного проще, автоматизирован с помощью скрипта и OpenCV, а также оптимизирован конкретно для 3D-печати отсканированного предмета.
Суть метода заключается в том, что молоко медленно вытекает из ёмкости, проявляя контуры объекта.
В контейнерах просверливается небольшое отверстие для перетекания молока, а в в верхнем контейнере нужно сделать удерживающее устройство для смартфона. Процесс снимается на камеру смартфона/фотоаппарата/etc., в режиме time-lapse, то есть покадровой съёмки.
![](https://habrastorage.org/files/e7b/500/4f4/e7b5004f40054f9b82056869e79c1312.jpg)
Затем сделанные фотографии копируются в отдельную папку на компьютере. Питоновский скрипт обрабатывает фотографии, используя библиотеку OpenCV для преобразования набора фотографий в набор вершин — файл в формате .xyz. Репозиторий со скриптом здесь.
Чёрный экран с белыми контурами на экране отображает работу детектора границ Канни — функция Canny в OpenCV.
![](https://habrastorage.org/files/3a4/f9d/cfb/3a4f9dcfbfd842d18be1a03fe51898cd.png)
Созданный файл конвертируется в полноценную 3D-модель .stl в программе MeshLab. Перед этим можно очистить модель от ненужных артефактов, удалив лишние вершины (Edit --> Select Vertexes).
![](https://habrastorage.org/files/df7/a96/fcc/df7a96fcc4bc4b75a16fd978ff0dee9e.png)
И всё. Действительно, проще некуда. Если жалко денег на 5 литров молока, то можно взять любую другую непрозрачную жидкость. Главное, чтобы она отличалась по цвету от сканируемого предмета. Но автор говорит, что перепробовал много жидкостей, в том числе разбавленную краску, соду и пищевые красители, и понял, что молоко подходит лучше всего.
Стоимость такого сканера равна стоимости двух пластиковых контейнеров, то есть менее 12 долларов. Ну и сами контейнеры пригодны для многоразового использования.