在處理圖像時,為了提取特征,經常用各種核函數和圖像進行卷積,其實就是通過一個矩陣以滑窗的形式與原圖像進行點乘求和,可以看作對一個像素和附近像素進行了加權平均。

比如經常用3x3的近似高斯卷積核
0 1 0
1 2 1
0 1 0

其實就是這幅圖的俯視圖中z值(高度)的近似,中間最高,邊緣低。可見原來的一個像素現在經過卷積由周圍的像素加權構成,所以以高斯為例,高斯有平滑效果。
但是剛才的舉例是近似的於真正的高斯分布還有差距,我們怎么用matlab產生真正的高斯核呢?
fspecial函數:
可以在matlab的命令行輸入help fspecial來查看用法
使用 h = fspecial('gaussian', hsize,sigma); 就可以產生一個高斯核,其中hsize是卷積核的大小,默認3x3,sigma是高斯核的方差
在用 filteredI = imfilter(I, h); 對原圖像用剛才生成的和進行卷積就可以得到卷積后的圖像。
fspecial還可以生成其他核,都很常用,各有用途。
'average' 'disk' 'laplacian' 'log' 'motion' 'prewitt' 'sobel' 'unsharp' 。
但有的時候需要自定義一個函數來通過滑窗處理圖像,matlab也有相關的函數 -------- blockproc
B = blockproc(A,[M N],fun)
A是要處理的矩陣,[M N]是滑窗大小,fun是處理時執行的函數
