克希算子是一種非線性的邊緣檢測方式,於1960年代由美國科學家羅素.克希(Russell Kirsch)提出。有別於其他邊緣檢測算子,他能計算並找出影像中邊緣最明顯、清晰的方位,對細微的梯度變化非常敏感。
發展歷史
克希當時任職於美國國家標準局(今國家標準技術研究所),當時的電腦大多負責處理各式科學、數學、工程界的數字運算,並不需要接收太多的輸入資料。此時,他想將電腦的運算能力進一步用於商業活動,但受限於大量的資料,需發展出一個新的資料讀取方式,將影像轉化為適合存於硬體中的形式。
於1950年代末,他們成功做出世上第一台掃描器,連接當時實驗室中最強的電腦SEAC,產生第一張數位影像,是來自他剛出生孩子的照片。隨後,便開始研究數位影像,試圖設計演算法分析影像、標記邊緣、辨識及量測物件。經過幾年的研究,他們發展出一套「圖像語法」(picture grammar),能說明人們關於視覺世界的資訊,整理出眾多影像分析的方法和程式,對後續影像處理及其他領域的研究發展帶來深刻的影響。
運算架構
克希算子的理念是以當前畫素p為中心點,定義其鄰近畫素為a_i, i=0, 1, ...7, \begin{matrix} a_0 & a_1 & a_2 \\ a_7 & p & a_3 \\ a_6 & a_5 & a_4 \end{matrix}
透過對比度函數 \max \left[ 1, \max_{i=0}^{7} \left| 5(a_i + a_{i+1} + a_{i+2}) - 3(a_{i+3} + a_{i+4} + \cdots + a_{i+7}) \right| \right]
(註:此函數中的下標數字以同餘8的方式標記)
計算出對比度最大的方位。
又或者以較視覺化的方式呈現,使用八個代表不同方位的3x3矩陣,分別間隔45度,依序朝向北、西北、西、西南、南、東南、東、和東北。朝向該方位的三個元素為+5,中間元素為0,其餘為-3。矩陣命名方式從北方開始,逆時針旋轉。
g_0 = \begin{bmatrix} +5 & +5 & +5 \\ -3 & 0 & -3 \\ -3 & -3 & -3 \end{bmatrix} g_1 = \begin{bmatrix} +5 & +5 & -3 \\ +5 & 0 & -3 \\ -3 & -3 & -3 \end{bmatrix} g_2 = \begin{bmatrix} +5 & -3 & -3 \\ +5 & 0 & -3 \\ +5 & -3 & -3 \end{bmatrix} g_3 = \begin{bmatrix} -3 & -3 & -3 \\ +5 & 0 & -3 \\ +5 & +5 & -3 \end{bmatrix}
g_4 = \begin{bmatrix} -3 & -3 & -3 \\ -3 & 0 & -3 \\ +5 & +5 & +5 \end{bmatrix} g_5 = \begin{bmatrix} -3 & -3 & -3 \\ -3 & 0 & +5 \\ -3 & +5 & +5 \end{bmatrix} g_6 = \begin{bmatrix} -3 & -3 & +5 \\ -3 & 0 & +5 \\ -3 & -3 & +5 \end{bmatrix} g_7 = \begin{bmatrix} -3 & +5 & +5 \\ -3 & 0 & +5 \\ -3 & -3 & -3 \end{bmatrix}
藉此,可以計算出各個方位的邊緣強度,並找出對比度最大的方位。
應用
生物學
生物學可謂克希算子最早的實際應用。隱寫術是將秘密訊息隱藏的加密方式,對圖片而言,邊緣區域通常對雜訊的容忍度較高,因此微小的畫素改變不易被察覺;相反地,若將訊息置於平滑區域,則容易被發現。在加密時,能任意設定秘密訊息隱藏的位置閾值,以該閾值為密鑰,接收方便能順利解密。相較於其他常見的邊緣檢測算子,克希算子因考量更多方位的畫素計算,可產生更多、比重更重的邊緣畫素,進一步使得影像能承載更多秘密訊息。
參考資料
评论 (0)