梯度和Sobel導數

2021-07-17 00:03:13 字數 1126 閱讀 1365

乙個最重要並且最基本的卷積是導數的計算(或者是其近似值)。

用來表達微分的最常用的操作是sobel微分運算元。sobel運算元包含任意階的微分及融合偏導。sobel導數可以定義任意大小的核,而且這些核可以用快速且迭代的方式構造,大核對導數有更好的逼近,因為小核對雜訊更敏感。

必須認識到,sobel導數並不是真正的導數,因為sobel運算元定義在乙個離散的空間上。sobel運算元真正表示的是多項式擬合。

以3×3的模板為例:

函式形式:

void cvsobel( const cvarr* src, cvarr* dst, int xorder, int yorder, int aperture_size=3 );

src

輸入影象.

dst

輸出影象.

xorder

x 方向上的差分階數

yorder

y 方向上的差分階數

aperture_size

引數是方形濾波器的寬(或高)並且應該是奇數。目前支援1,3,5,7.

xorder和yorder通常只可能用到0,1,最多2。

例項**:

#include 

#include

int main(int argc, char** argv)

執行結果如下:

注意:如果源影象是8位的,為避免溢位,目標影象的深度必須是ipl_depth_16s。但是,影象顯示是以8位無符號顯示的,現在是16位有符號的,所以我們需要將16位的再轉換為8位的來顯示,可以使用函式cvconvertscaleabs()進行轉換,然後再顯示即可。

方向導數和梯度

之前用過幾次梯度下降演算法來求解一些優化問題,但對梯度的具體意義並不是很理解。前一段時間翻了一遍高教的 簡明微積分 對梯度概念總算有了些理解,在這記錄一下。推薦下 簡明微積分 這本書,我向來對帶有 簡明 二字的書抱有極大的好感。偶然的機會在豆瓣上看到有人推薦這本書,作者是龔公升先生。龔公升先生是中國...

方向導數和梯度

我覺得我有必要把工數再看一遍 都忘記了 在微積分課程中,我們知道函式在某一點的導數 微商 代表了函式在該點的變化率。微分和積分,它們的定義都是建立在極限的基礎上。對於單變數函式f x 它在x0處導數是 當x趨近於x0時,函式的改變量與自變數的改變量的比值的極限,即微商 導數 等於差商的極限 f x0...

方向導數和梯度

之前用過幾次梯度下降演算法來求解一些優化問題,但對梯度的具體意義並不是很理解。前一段時間翻了一遍高教的 簡明微積分 對梯度概念總算有了些理解,在這記錄一下。推薦下 簡明微積分 這本書,我向來對帶有 簡明 二字的書抱有極大的好感。偶然的機會在豆瓣上看到有人推薦這本書,作者是龔公升先生。龔公升先生是中國...