感悟
我們要查找的邊緣就是灰度變化最大的地方
灰度使用黑色調表示物體,即用黑色為基準色,不同的飽和度的黑色來顯示圖像。 每個灰度對象都具有從 0%(白色)到100%(黑色)的亮度值。
所以其實灰度是從HSL顏色空間,也就是亮度和飽和度的角度出發描述的顏色。它用黑色來表示了圖像上個像素的顏色差異。
因此第一步就是怎么找到灰度變化最大的地方咯
把灰度圖用灰度值描述每一個像素所構成的矩陣當做是一個離散函數
獲取一個函數的變化最大的地方該用什么方法怎么計算?
求導!
當然,需要復雜一點數學知識來求導矩陣。 (PS:寫了四年程序的大四狗怎么會記得泰勒展開具體誰是誰,矩陣求導的具體法則?? 不清楚的讀者請另行百度 附上一處資源)
一般Harris 經典的可以用 Prewwit算子進行濾波
Prewwit 算子由兩部分組成
水平方向為[-1 -1 -1; 0 0 0; 1 1 1]
豎直方向為[-1 0 1; -1 0 1; -1 0 1]
各種算子模版的比較
也就是以Prewwit算子為模板,與圖像矩陣進行卷積
把模板(n*n)放在矩陣上 (中心對準要處理的元素), 用模板的每個元素去乘矩陣中的的元素, 累加和等于這個元素, 依次計算每個元素的值,如果矩陣的中心在邊緣就要將原矩陣進行擴展,例如補0,或者直接規定模板的中心距離邊緣(n-1)/2個單位以上。
卷積過程
a*b卷積結果
卷積計算方法