matlab核函數與滑窗


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

比如經常用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是處理時執行的函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM