图像分割

在計算機視覺領域，**圖像分割**（segmentation）指的是將數字圖像細分為多個圖像子區域（像素的集合）（也被稱作超像素）的過程。圖像分割的目的是簡化或改變圖像的表示形式，使得圖像更容易理解和分析。圖像分割通常用於定位圖像中的物體和邊界（線，曲線等）。更精確的，圖像分割是對圖像中的每個像素加標籤的一個過程，這一過程使得具有相同標籤的像素具有某種共同視覺特性。

圖像分割的結果是圖像上子區域的集合（這些子區域的全體覆蓋了整個圖像），或是從圖像中提取的輪廓線的集合（例如邊緣檢測）。一個子區域中的每個像素在某種特性的度量下或是由計算得出的特性都是相似的，例如顏色、亮度、紋理。鄰接區域在某種特性的度量下有很大的不同。

## 圖像分割的應用

圖像分割在實際中的應用包括：

* 醫學影像，包括:
  * 腫瘤和其他病理的定位
  * 組織體積的測量
  * 計算機引導的手術
  * 診斷
  * 治療方案的定製
  * 解剖學結構的研究
* 在衛星圖像中定位物體（道路、森林等）
* 人臉識別
* 指紋識別
* 交通控制系統
* Brake light detection
* 機器視覺

現已有許多各種用途的圖像分割算法。對於圖像分割問題沒有統一的解決方法，這一技術通常要與相關領域的知識結合起來，這樣才能更有效的解決該領域中的圖像分割問題。

## 二值化

二值化（英語：thresholding）是最簡單的圖像分割方法，會根據特定的限幅值（英語：clip-value）將灰度圖轉換為黑白圖，該值也稱閾值（英語：threshold）。

該方法的關鍵在於如何選取閾值。工業上所採用的方法有很多，如大津算法和 K - 平均算法。

## 聚類法

K - 均值算法是一種將圖像分割成 K 個聚類的迭代技術。基本算法如下：

1. 首先從 n 個數據對象任意選擇 k 個對象作為初始聚類中心；
2. 對於所剩下其它對象，則根據它們與這些聚類中心的相似度（距離），分別將它們分配給與其最相似的（聚類中心所代表的）聚類；
3. 然後再計算每個所獲新聚類的聚類中心（該聚類中所有對象的均值）；
4. 重複第 2 和 3 步驟，直至收斂（聚類不再發生變化）。

這裡，距離指像素與聚類中心之間絕對偏差或偏差的平方。偏差通常用像素顏色、亮度、紋理、位置，或它們的加權組合。K 值可以手動選取、隨機選取、或其它方式得到。此算法保證收斂，但它可能不會返回最佳的解決方案。該解決方案的質量取決於最初的一組集群和 K 值。

## 直方圖法

相對於其他的圖像分割算法來說，基於直方圖的方法是一種效率非常高的方法，因為通常來說，該方法只需要對整幅圖片掃描一遍即可。該方法對於整幅圖像建立一張直方圖，並通過圖中的峰和谷來進行分類。顏色與灰度是通常進行直方圖統計的特徵。

## 邊緣檢測

邊緣檢測主要是圖像的灰度變化的度量、監測和定位，其實質就是提取圖像中不連續部分的特徵。邊緣檢測在圖像處理中比較重要，邊緣檢測的結果是圖像分割技術所依賴的重要特徵，因此邊緣檢測是圖像分割領域的一部分。邊緣檢測常用於計算機視覺、武器的跟蹤控制及自控制式的車船運動研究等領域。

首先介紹圖像邊緣檢測，具體就梯度算子、kirsch 算子、laplacian-gauss 算子、canny 算子、log 濾波算子、sobel 算子、Robert 算子、prewitt 算子邊緣檢測方法介紹檢測原理並通過編程實現，比較各種方法的處理結果。

## 區域生長

區域生長的基本思想是將具有相似性質的像素集合起來構成區域。具體先對每個需要分割的區域找一個種子像素作為生長的起點，然後將種子像素周圍鄰域中與種子像素具有相同或相似性質的像素（根據某種事先確定的生長或相似準則來判定）合併到種子像素所在的區域中。將這些新像素當做新的種子像素繼續進行上面的過程，直到再沒有滿足條件的像素可被包括進來，這樣，一個區域就長成了。

## 水平集方法

水平集方法最初由 Osher 和 Sethian 提出，目的是用於界面追蹤。在 90 年代末期被廣泛應用在各種圖像領域。這一方法能夠在隱式有效的應對曲線 / 曲面演化問題。基本思想是用一個符號函數表示演化中的輪廓（曲線或曲面），其中符號函數的零水平面對應於實際的輪廓。這樣對應於輪廓運動方程，可以容易的導出隱式曲線 / 曲面的相似曲線流，當應用在零水平面上將會反映輪廓自身的演化。水平集方法具有許多優點：它是隱式的，參數自由的，提供了一種估計演化中的幾何性質的直接方法，能夠改變拓撲結構並且是本質的。

## 小波變換方法

小波變換常被用來抽取影像的特徵，並能應用在去除雜訊、邊界偵測、辨識等問題，因此也能用來處理圖像分割的問題。Andrea Gavlasova 在 2006 年被提出的 Wavelet Based Image Segmentation，示範了小波變換用來處理圖像分割的流程，整個演算法的流程如下：

* 令原影像的大小為 NxN，對影像中每 4x4 的區域做使用哈爾變換的離散小波轉換，以抽取出影像的特徵。
* 計算抽取出的特徵的 energy 以及 contrast，作為新的特徵，計算公式如下:
   * $Energy=\sum _{i,j=1}^{N}C_{i,j}^{2}$
  * $Contrast=\sum _{i,j=1}^{N}(i-j)^{2}C_{i,j}$
* 對上一步所算出的特徵矩陣，計算縱軸和橫軸像素兩兩之間的差，藉此找出影像中的物體邊界，作為初步的分割結果。
* 在初步的分割結果會有瑕疵和雜點，這是因為上一步相減兩兩像素的結果。為了讓結果更平滑，就使用 circular averaging filter 來過濾分割的結果。
* 將輸出取閾值，變成能夠代表物體邊界的黑白影像，像素值為一的部份即代表物體邊界。
* 將黑白的分隔影像骨架化 (skeletonize)，讓輸出能以白色細線來表示要分割的物體邊界，完成影像分割。

## 請參閱

* 計算機視覺
* 數據聚類
* 圖論
* 直方圖
* 基於圖像的網格
* K - 均值算法
* Pulse-coupled networks
* Range image segmentation
* 區域生長
* 大津算法
* GrabCut

## 參考文獻

## 外部連結

* Some sample code that performs basic segmentation, by Syed Zainudeen. University Technology of Malaysia.
* Generalized Fast Marching method（頁面存檔備份，存於網際網路檔案館） by Forcadel et al. [2008] for applications in image segmentation.
* Image Processing Research Group（頁面存檔備份，存於網際網路檔案館） An Online Open Image Processing Research Community.
* Segmentation methods in image processing and analysis（頁面存檔備份，存於網際網路檔案館） and Minimizing energy to segment images（頁面存檔備份，存於網際網路檔案館） by Mathworks
* More image segmentation methods with detailed algorithms（頁面存檔備份，存於網際網路檔案館） by Yu-Hsiang Wang (王昱翔), National Taiwan University, Taipei, Taiwan, ROC
* Online demonstration of piecewise linear image segmentation（頁面存檔備份，存於網際網路檔案館） by IPOL Journal