1. 簡介

本文件概述了一個專案,旨在製作 JDRF(青少年糖尿病研究基金會)標誌中顯著字母的 3D 列印版本。核心目標是展示一個可重現的流程,將稀疏的 2D 影像(即內部複雜度有限的影像)轉換為實體的 3D 物件。此方法利用 Mathematica 進行影像處理與高度場生成,最終建立一個可供 3D 列印的標準立體光刻(.stl)檔案。本文假設讀者熟悉基本的 3D 列印概念。

2. JDRF 標誌與專案緣由

JDRF 是一個專注於第一型糖尿病研究的領先慈善機構。本專案使用其標誌的灰階版本。選擇「JDRF」字樣作為 3D 列印目標,是因為其稀疏、邊緣清晰的特性,非常適合所描述的高度映射技術。較小的標語文字(「改善生活。治癒第一型糖尿病」)以及字母上下的漸層線條,為小尺寸列印帶來了特定挑戰,本方法透過定義的邏輯來處理這些挑戰。

專案範圍

目標: 標誌中的「JDRF」字母。

最終列印尺寸: 80mm(寬)x 28mm(深)x 5.2mm(高)。

關鍵挑戰: 處理灰階漸層以實現尺寸變化。

3. Mathematica 程式碼與方法論

此流程透過一個改編自先前學生研究的 Mathematica 腳本實現自動化。該流程將像素強度轉換為實體高度圖。

3.1. 影像匯入與預處理

載入影像並將其轉換為灰階矩陣。這確保每個像素具有單一的強度值(介於 0 到 1 之間),即使來源是彩色影像。

input = Import["C:\\data\\3d\\JDRF.jpg"];
image = ColorConvert[Image[input, "Real"], "Grayscale"];

3.2. 高度映射函數

分段函數 bound[x_] 將像素強度 x 映射到初步高度值:

  • 背景 (x > 0.9): 指定為低高度 (0.3)。
  • 字母內部 (x < 0.25): 指定為最大高度 (1.3)。
  • 漸層區域 (0.25 ≤ x ≤ 0.9): 高度線性變化:-0.5*x + 1.3

這些值稍後會乘以係數 4 進行縮放。

3.3. 資料矩陣生成與 STL 匯出

將函數套用至 image 矩陣中的每個像素。生成的資料陣列經過填充後,用於生成具有指定實際尺寸(80x28 mm)的 3D 圖形。最後將此圖形匯出為 .stl 檔案。

data = ArrayPad[Table[4*bound[ImageData[image][[i, j]]], ...], {1, 1}, 0];
Export["JDRF_print.stl", ListPlot3D[data, DataRange -> {{0, 80}, {0, 28}}]];

4. 技術細節與數學框架

此方法的核心是離散化的高度場 $z = f(I(x, y))$,其中 $I(x,y)$ 是像素座標 $(x, y)$ 處的灰階強度。函數 $f$ 定義如下:

$ f(I) = \begin{cases} h_{bg} & \text{if } I > T_{high} \quad \text{(背景)} \\ h_{max} & \text{if } I < T_{low} \quad \text{(前景/物件)} \\ m \cdot I + c & \text{otherwise} \quad \text{(漸層過渡)} \end{cases} $

在實作的腳本中,$T_{high}=0.9$,$T_{low}=0.25$,$h_{bg}=0.3$,$h_{max}=1.3$,$m = -0.5$,$c = 1.3$。最終高度為 $4 \cdot f(I)$。

5. 結果與輸出描述

腳本成功執行後,會產生一個代表 3D 模型的 .stl 檔案。該模型具有以下特徵:

  • 凸起字母: 「JDRF」文字高度為 5.2 mm。
  • 紋理基底: 背景平台高度為 1.2 mm。
  • 斜坡漸層: 灰色漸層線條轉換為平滑的斜坡,連接字母高度與背景高度。

此 .stl 檔案與所有 3D 列印切片軟體(例如 Ultimaker Cura、PrusaSlicer)相容,可用於生成 G-code 並進行後續的實體製作。

6. 分析框架:非程式碼案例研究

考慮將此框架應用於大學徽章,以製作紀念牌匾。

  1. 輸入分析: 徽章包含實心徽章區域(適合最大高度)、紋理盾牌背景(適合中等固定高度或雜訊)以及精細的格言文字(可能需要省略或大幅加粗以確保可列印性)。
  2. 函數設計: 定義閾值:$T_{low}$ 用於實心徽章,$T_{high}$ 用於空白背景。紋理盾牌區域的強度介於閾值之間,可映射到固定的中間高度或簡單函數,如 $f(I) = 0.5$。
  3. 輸出驗證: 必須檢查生成的 3D 預覽圖的結構完整性(例如,陡峭斜坡產生的懸空部分)以及最小特徵尺寸(格言文字)。

這個邏輯框架——分析、映射、驗證——適用於任何稀疏影像,無需編寫新程式碼,只需調整分段函數中的參數即可。

7. 產業分析師觀點

核心洞察: 本文的重點不在於突破性的人工智慧,而在於實用的數位化。它展示了易於使用的計算工具(Mathematica)如何彌合 2D 數位資產與 3D 實體現實之間的差距,使非專業人士也能接觸到製造業的利基領域。其真正價值在於清晰、參數化的工作流程。

邏輯流程: 邏輯流程非常線性:影像 → 灰階矩陣 → 高度圖 → 3D 網格 → 實體列印。它遵循經典的 CAD 流程,但根據影像資料自動化了初始建模步驟,概念上類似於電腦圖學中早期的高度場地形生成。

優點與缺陷: 其優點在於對特定類別「稀疏」影像的無可否認的簡單性和可重現性。然而,缺陷在於其脆弱性。它是一個客製化腳本,而非穩健的應用程式。對於複雜影像(例如照片),簡單的強度閾值無法區分物件時,它就會失敗。它缺乏現代的影像分割技術——與基於深度學習的方法(例如使用 U-Net 架構的方法,Ronneberger 等人,2015)相比,後者能精確隔離物件,這對於細節豐富的標誌是必要的。手動調整閾值($0.25$、$0.9$)是一個主要限制,需要使用者反覆試驗。

可行建議: 對於研究人員或創客而言,這是一個完美的建構模板。立即的下一步是用自適應閾值(例如 Otsu 方法)取代固定閾值。更大的機會是將此腳本整合為一個更大、更使用者友善的應用程式的前端模組,該應用程式應包含影像預處理(分割、向量化)和可列印性分析。與 Adobe Substance 3DBlender 的紋理到網格工作流程等平台合作或研究,揭示了產業方向:基於雲端、AI 輔助,並與更廣泛的設計生態系統整合。

8. 未來應用與方向

  • 無障礙與教育: 透過將視覺資訊轉換為高度場,為視障學生創建觸覺學習輔具,例如 3D 列印地圖、圖表或圖解。
  • 客製化品牌與商品: 直接從品牌資產自動化創建客製化標誌鑰匙圈、獎項或建築標誌。
  • 與進階建模整合: 在專業 CAD 或動畫軟體中,將生成的高度場用作更複雜 3D 模型的位移貼圖。
  • 演算法增強: 以邊緣檢測演算法(Canny、Sobel)或機器學習分割技術取代簡單的閾值處理,以處理更複雜、非稀疏的影像。探索非線性高度映射函數以實現藝術效果。
  • 網頁工具: 將核心邏輯移植到 JavaScript/WebGL,創建基於瀏覽器的工具,可從上傳的影像即時生成 3D 模型,進一步降低使用門檻。

9. 參考文獻

  1. Aboufadel, E. (2014). 3D Printing the Big Letters in the JDRF Logo. arXiv:1408.0198.
  2. Ronneberger, O., Fischer, P., & Brox, T. (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation. In Medical Image Computing and Computer-Assisted Intervention (MICCAI) (pp. 234–241). Springer.
  3. Otsu, N. (1979). A Threshold Selection Method from Gray-Level Histograms. IEEE Transactions on Systems, Man, and Cybernetics, 9(1), 62–66.
  4. MakerBot Industries. (2023). What is an STL File? Retrieved from makerbot.com.
  5. Wolfram Research. (2023). Mathematica Documentation: Image Processing. Retrieved from wolfram.com.