void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 )
src:輸入圖像;dst:輸出圖像;xorder:x 方向上的差分階數;yorder:y 方向上的差分階數;aperture_size 擴展 Sobel 核的大小(既窗口階數),必須是 1(註意這是壹個3×1或1×3向量而不是壹個方陣), 3, 5 或 7。
事實上計算機在求解析解要比求數值解麻煩得多,所以就想到了壹種替代的方式來求導數。就是用壹個3×3的窗口來對圖像進行近似求導。拿對X方向求導為例,某壹點的導數為第三行的元素之和減去第壹行元素之和,這樣就求得了某壹點的近似導數。其實也很好理解為什麽它就近似代表導數,導數就代表壹個變化率,從第壹行變為第三行,灰度值相減,當然就是壹個變化率了。這就是所謂的Prewitt算子。這樣近似X方向導數就求出來了。Y方向導數與X方向導數求法相似,只不過是用第三列元素之和減去第壹列元素之和。X方向和Y方向導數有了,那麽梯度也就出來了。