Sobel算子的基础,Laplace算子就显得十分简单了。Sobel算子一般用来求一阶导数,而有些图像求一阶导数之后边缘也不一定十分清析,需要求其二阶导数,在计算机中,一般运算都用迭代法实现。同样,近似定义其二阶导数。
可以看出Δf=4×Z5-(Z2+Z4+Z6+Z8),以这种方式就能以二阶导数的方式找出图像的边界。这种方式有其优点也有其缺点,优点就是由于彩用了二阶导数,可以确定边界在亮边还是暗边,暗边>0,亮边<0,对边界响应很灵敏。但也就是因为采用了二阶导数,抗噪能力比较差,所以一般在采用Laplace算子之前要用高其函数对图像进行平滑处理。cvLaplce就很简单了,看下定就会用了。void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );src:输入图像;dst:输出图像;aperture_size:核大小 (也就是窗口矩阵阶数)。
下面看看Sobel对X方向,Sobel对Y方向和Laplace图像处理图像的效果吧。
由图可以看出Laplace算子的噪声明显比Sobel算子的噪声大,但其边缘比Sobel要细很多。