拉普拉斯算子
拉普拉斯算子是二階導數濾波器:它衡量的不是亮度變化得多快(梯度),而是那個變化率本身又變化得多快,實際上就是一個像素與其鄰居平均值相差多少。它是等向性的,以單一純量值同時對各方向的強度變化作出反應,而非方向向量,這使它成為不在意方向的天然斑點與邊緣偵測器。
數學上,拉普拉斯是非混合二階偏導數之和,寫作 nabla 平方 f = d2f/dx2 + d2f/dy2。在像素格上它由各列為 [0, 1, 0]、[1, -4, 1]、[0, 1, 0] 的核(或含對角線的 [1, 1, 1]、[1, -8, 1]、[1, 1, 1])近似。關鍵的行為事實是:邊緣在拉普拉斯中並非以尖峰、而是以零交越(zero-crossing)出現:當你穿過一道邊緣,二階導數由強正擺向強負,恰在邊緣處交越零點。定位這些符號變化可得到次像素精度的邊緣位置,這是 Marr-Hildreth 邊緣偵測的基礎。
由於二階導數放大雜訊比一階導數更猛烈,原始拉普拉斯幾乎從不單獨使用。解法是先用高斯平滑,得到高斯拉普拉斯(LoG),這是一個形如墨西哥帽的單一核,同時模糊並取二階導數;其寬度 sigma 選定所偵測特徵的尺度。LoG 可由高斯差(DoG,相減兩張高斯模糊影像)緊密近似,這正是 SIFT 偵測器用來尋找尺度不變關鍵點的方法。拉普拉斯也驅動銳化:把帶比例的負拉普拉斯加回影像,output = f - c * nabla 平方 f,可增強邊緣。
越過一道柔和的由亮到暗斜坡,拉普拉斯在亮的肩部讀為正、在暗的肩部讀為負,並在反曲點恰為零,標出那個零交越,你便以次像素精度定位了邊緣。
陷阱:對帶雜訊影像直接套用裸露的拉普拉斯幾乎毫無用處,每一粒雜訊都會製造出假的零交越。請務必搭配平滑(使用 LoG/DoG),並記得邊緣是零交越處,而非亮或暗的極值,那兩者是邊緣的兩側。