回到首頁

從葉片學分析:空間校正、色彩空間與分割技巧

教學影片

本章節將以 ImageJ 內建的 Leaf 範例影像為核心,進行完整的影像分析流程。過程包括:

  1. 如何利用影像中的比例尺進行空間校正
  2. 理解 RGBHSB (HSV) 色彩空間的差異,以及為何後者更利於顏色分割。
  3. 使用 Color Threshold標準 Threshold 兩種方法來分割出目標物。
  4. 進行多種科學測量,包括面積周長,以及碎形分析

1. 開啟範例與空間校正

先賦予影像真實的物理單位。

  1. 開啟範例影像 File > Open Samples > Leaf (36K)
  2. 影像上方有一支尺。這就是我們校正的依據。
  3. 從工具列選擇直線工具 (Line Tool)
  4. 沿著 2 cm 的黑色線段,從一端精確地畫到另一端。
  5. 執行 Analyze > Set Scale...
  6. 在彈出的對話框中:
    • Distance in pixels: ImageJ 會自動填入你剛畫的線段長度。
    • Known distance: 輸入 2
    • Unit of length: 輸入 cm
    • Global: 不要勾選,這樣此校正只會應用於這張葉子影像。
    • 點擊 OK

現在,你的影像已經被校正。之後的所有測量單位都將是 cm

試試Global

  1. 開啟葉子和小丑的範例圖片,然後重複上述的步驟,只針對葉子做空間校正,但是勾選了Global,你會看到只進行葉子的校正,但小丑也被進行了。
  2. 如何取消特定圖片的空間校正呢?Image > Properties... 把校正的資訊都刪除就可以了,你也可以在這裡直接設定比例尺。

2. 認識色彩空間:為何需要 HSB?

我們要如何從影像中分離出「綠色」的葉子?在電腦中,顏色可以用以下模型來描述:

實作:分離所有通道並用直方圖評估

以下將葉片的 RGB 、HSB、Lab 通道全部拆分出來,並用直方圖來「定量」地觀察它們的差異。

  1. 確保 Leaf 影像是當前視窗。
  2. 分離 RGB 通道: 執行 Image > Type > RGB Stack。你會得到一個包含 Red, Green, Blue 三個灰階影像的堆疊。
  3. 觀察直方圖: 依序點選這三個灰階影像,執行 Analyze > Histogram (或按 Ctrl+H) 來查看其像素分佈。
  4. 重複上述步驟,執行Image > Type > HSB StackImage > Type > Lab Stack。你認為哪一個通道最適合將目標進行分割?

分割的原理與決策

影像分割 (Segmentation) 的核心原理是根據像素的某一項特徵將其分類。最簡單的方法是閾值分割 (Thresholding),即「設定一個值,高於此值的為目標,低於此值的為背景」。

一個好的分割策略,就是要選擇一個能最大化「目標」與「背景」差異的特徵。一個適合用來分割的通道,其直方圖應該呈現雙峰分佈 (Bimodal),且兩個峰之間有清晰、深邃的山谷。這個山谷就是設定閾值的最佳位置。

3. 分割葉片區域 (Segmentation)

方法一:Standard Threshold (在 8-bit影像上使用)

此方法是影像分割的經典流程:先將影像轉換為單一的灰階通道,然後再使用 Image > Adjust > Threshold... 進行分割。關鍵在於選擇一個最能凸顯目標的灰階通道。從我們先前的直方圖分析可知,Saturation 通道是不錯的選擇。

做法 A: 使用 Saturation 通道

  1. 使用我們在步驟2中產生的 HSB Stack 影像,或是也可以用彩色影像轉成的8-bit影像
  2. 點選 Saturation 通道的圖片將其複製一份Image > Duplictate...
  3. 執行 Image > Adjust > Threshold... (或按 Ctrl+Shift+T)。
  4. 拖動滑桿,將代表葉片的灰色區域選取起來。
  5. 點擊 Apply。影像會被轉換成一張黑白的二值化遮罩 (Binary Mask),白色代表目標區域(前景),黑色代表背景。
  6. maskselection可以互相轉換。
    1. mask可用Edit › Selection › Create Selection轉成selection。
    2. selection可以用 Edit › Selection › Create Mask轉成mask。

做法 B: 直接轉換為 8-bit 灰階影像

  1. 重新載入一張原始的 Leaf 影像。
  2. 執行 Image › Type › 8-bit
    • 原理說明: 這一步會將 RGB 彩色影像轉換為 8-bit 灰階影像。ImageJ 提供兩種轉換公式,可在 Edit > Options > Conversions... 中設定:
      • 平均法 (預設不勾選 "Weighted RGB to Grayscale Conversion"): 灰階值 = (紅 + 綠 + 藍) / 3
      • 加權法 (勾選 "Weighted RGB to Grayscale Conversion"): 這種方法更符合人眼對綠色的敏感度。 灰階值 = 0.299 * 紅 + 0.587 * 綠 + 0.114 * 藍
  3. 對這張新產生的 8-bit 灰階影像執行 Image > Adjust > Threshold...

方法二:Color Threshold (在原始RGB影像上)

此方法直接在彩色影像上操作,非常直觀。

  1. 開啟原始的 Leaf 影像。
  2. 執行 Image > Adjust > Color Threshold...
  3. Color Threshold 視窗中:
    • 下拉選單的Color Space可以選擇不同的色彩空間,例如HSB
    • 調整滑桿: 將代表綠色的區間選取起來。你會看到影像預覽中,只有葉子被標示為紅色。
    • 可以微調 Saturation 和 Brightness 滑桿來排除背景中的雜點。
    • 確認選取範圍無誤後,點擊視窗下方的 Select 按鈕。

此時,葉子的輪廓已經被建立成一個選區 (ROI)

4. 進行測量

現在我們有了葉子的選區或遮罩,可以開始測量了。若二值化遮罩影像有多個不相連的白色區域,可先使用工具列上的 魔術棒工具 (Wand Tool) (快捷鍵 W),在要測量的目標白色區域內點擊一下,系統會自動選取相連的白色區域,將之變成選取區

如何用seleciton進行測量

目前我們的selection在原始圖像上,如果只是要進行面積、周長等輪廓測量,則selecion在哪張影像上都無所謂。但如果要進行影像像素強度的測量,就要讓原始影像也有這個選取區。

你有兩種方式可以進行 1. 到原始影像上復原選取區Edit > Selection > Restore Selection 2. 將選區存在ROI manager

實作:測量形狀參數 (面積與周長)

測量面積與周長這類形狀參數時,我們關心的是物體的輪廓,而不是其內部像素的灰階值。因此,無論是直接分析二值化影像,還是在任意影像上使用由該輪廓建立的選區(ROI),得到的面積和周長結果都會是一樣的

先執行 Analyze > Set Measurements...,確保 AreaPerimeter 都已勾選。 參數說明

以下我們介紹兩種方法來測量。

方法 A: 使用 Analyze Particles... (推薦用於多物件分析)

此指令會掃描整張二值化影像,找出所有白色物體並逐一測量。

  1. 使用 二值化遮罩 影像。
  2. 執行 Analyze > Analyze Particles...
    • Size (cm^2): 可以設定一個最小值(如 0.1)來過濾掉可能的微小雜訊。
    • Show: 選擇 Outlines,這樣可以在新視窗中看到被測量的物體輪廓。
    • 勾選 Display resultsSummarize
  3. 點擊 OK
  4. 觀察結果: 在 "Results" 表格中,你會看到每個被偵測到的粒子(葉子)的 AreaPerimeter

方法 B: 使用 Analyze > Measure (推薦用於單一物件測量)

此指令只會測量當前作用中的選區

  1. 利用選區工具執行 Analyze > Set Measurements...,確保 AreaPerimeter 都已勾選。
  2. 執行 Analyze > Measure (或按 Ctrl+M)。

實作:進階測量 (碎形維度)

碎形維度 (Fractal Dimension) 是一個用來描述複雜、不規則邊界的指標。一個平滑的圓周長,其碎形維度接近1;而一個極度皺褶、複雜的海岸線,其維度會更高(例如1.2~1.3)。我們可以藉此量化葉緣的複雜程度。

碎形維度測量的意義與用途

傳統的歐幾里得幾何(如周長、面積)擅長描述規則形狀,但對於自然界中常見的複雜、不規則的結構(如海岸線、雲朵、血管網路)就顯得力不從心。碎形維度(D)提供了一個超越傳統整數維度(線=1D, 面=2D, 體=3D)的量化指標,用來描述一個物體「填充空間」的複雜程度

  1. 使用二值化遮罩影像。
  2. 執行 Analyze > Tools > Fractal Box Count...
  3. ImageJ 會產生一個圖表和一個 Log 視窗。在 Log 視窗中,你會看到 D=1.234 這樣的數值,這個 D 值就是葉緣的碎形維度。這個值越高,代表葉緣越不規則、越複雜。Box Counting細節說明