三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

从一张照片到一件浮雕:用ImageToSTL完成图片转STL的全过程

从一张照片到一件浮雕:用ImageToSTL完成图片转STL的全过程

从一张照片到一件浮雕:用ImageToSTL完成图片转STL的全过程

【免费下载链接】ImageToSTLThis tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side.项目地址: https://gitcode.com/gh_mirrors/im/ImageToSTL

去年母亲节前,我一度想把一张全家福变成能摆在桌上的实物。打开3D建模软件十分钟就放弃了——坐标、拉伸、布尔运算,光是把图片"放进"模型里,就足够劝退一个零基础的人。后来朋友推荐了 ImageToSTL,我才明白:拦路的从来不是建模能力,而是没选对工具。它是一个开源程序,功能只有一条:把任意图片转换成可直接3D打印的STL模型文件,模型表面会在左侧灯光的照射下浮现出原图,像一件立体的浮雕摆件。

先看它和常见浮雕哪里不一样

市面上很多"照片浮雕"是背光式的——模型本身是一块薄片,靠背面打光才能看清画面,灯一关就只是一块白板。ImageToSTL 走的是另一条路:画面直接雕在模型表面,光从左侧打过来就能看见

因为它的高度图把明暗信息刻进了表面起伏里,而不是藏进厚度里,所以这件浮雕不依赖背光,放在窗边、台灯下,只要光源在左,画面就自然浮现。也正因如此,它打印出来不是一块平板,而是有真实凹凸手感的立体摆件。

选图、填参数、生成:图片转STL的完整操作

界面简洁得近乎"简陋",一共三个输入框,选图到出文件只需四步。

  1. 点 Browse 选择一张图片(JPG、PNG、BMP 等常见格式都行);
  2. 再点 Browse 选择 STL 文件的保存位置;
  3. 填入模型宽度和高度(单位毫米),只填一个即可——程序会按原图比例自动算出另一边,不用担心拉变形;
  4. 填入打印层高(默认 0.2mm),点 Generate STL。

等两秒,界面提示 "STL File Generated!",imagename.stl就出现在你选的文件夹里了。

这里有个值得说清的细节:层高不只是打印参数,它也决定模型精度。程序会按"模型高度 ÷ 层高"把图片重新切分(见src/utils/image_processing.py里的auto_scale_img_values),层高越小,表面网格越密、画面细节越丰富,代价是文件更大、打印更久。想先快速预览效果,用默认的 0.2mm 就够了。

界面之下:灰度、高度图与三角形网格

你可能好奇,一张平面图片是怎么"立"起来的?关键在src/utils/下两个模块的分工:

  • image_processing.py负责把图片翻译成高度图。它先把图片转成灰度,并做 1.5 倍对比度增强——因为对比度越高,明暗差越大,最终模型的高低起伏越明显;再把每个像素的亮度归一化到 0~1,逐行累积成高度曲线,得到整张"地形图"。
  • mesh_processing.py负责把高度图变成实体模型。它为每个像素分配一个三维顶点,用三角形把相邻顶点连成网格;为了让模型真的能打印,它还会生成边框、把背面缝合起来(厚度取模型宽度的 1/40),封成一个没有破洞的实心体。

所以"图片转STL模型"的本质是一条清晰的链路:亮度 → 高度 → 三角形 → 实体。这也是为什么对比度高的图片效果更好——明暗区间拉得开,起伏才够立体。

让第一件作品顺利上机:打印参数这样调

模型生成只是第一步,能不能漂亮地打出来,还看这几项设置(项目 README 里写得很明确):

项目建议原因
模型方向垂直放置STL 已按此朝向生成,横放会让画面变形
支撑结构用 brim(边缘裙边)底部接触面积小,裙边能防止翘边脱落
填充率0% 即可表面是浮雕,内部无需填充,省料省时
Z 缝位置放在最尖锐的角落避免接缝横穿画面,影响观感

如果打出来发现画面"太扁平",先别怀疑打印机——多半是原图对比度不足,灰度范围拉不开,高度差自然就小。换一张明暗分明的图,或者先用编辑软件提高图片对比度,再生成一次,区别立刻可见。

现在就动手:运行、转换、打印你的第一件作品

如果你用 Windows,可以直接下载编译好的 ImageToSTL.exe,双击即用。想从源码跑也很简单:

git clone https://gitcode.com/gh_mirrors/im/ImageToSTL python -m pip install -r requirements.txt python src/main.py

依赖只有四个:numpy、numpy-stl、Pillow、PySimpleGUI,装完即走,不占什么系统资源。

给你的下一步建议:别一上来就挑战全家福。先拿一张黑白、高对比、边界清晰的简单图形——比如公司 Logo、孩子的简笔画——走一遍完整流程,熟悉界面和参数手感;确认第一件作品打印成功之后,再回头处理彩色照片和复杂人像。你会发现,从"照片"到"能摸到的浮雕",中间其实只隔着一个 ImageToSTL 和一次点击。

【免费下载链接】ImageToSTLThis tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side.项目地址: https://gitcode.com/gh_mirrors/im/ImageToSTL

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表