Laplance算子
Laplace算子可以实现图像的锐化(通常称“高通滤波”),拉普拉斯是二阶导数算子,因此会突出图像中的急剧灰度过渡,并且不强调缓慢变化的灰度区域。
拉普拉斯是最简单的各向同性导数算子(这种核的响应与图像中灰度不连续的方向无关),对于两个变量的图像f(x,y),它定义为
公式(1)
公式(1)可以用图1中的核对图像进行卷积运算实现;
图1
Mat kernel=(Mat_<float>(3,3)<<0,-1,0,-1,4,-1,0,-1,0) //构建Laplane卷积核
filter2D(src,Laplacian_image,CV_8UC3,kernel,Point(-1,-1))//输入图像与Laplance进行卷积
/*void filter2D( InputArray src, OutputArray dst, int ddepth,
InputArray kernel, Point anchor = Point(-1,-1),
double delta = 0, int borderType = BORDER_DEFAULT );
*/
输入图像和输出结果
拉普拉斯算子产生的图像是叠加在暗色无特征背景上。将拉普拉斯图像与原图像相加,可以恢复背景特征,同时保留拉普拉斯的锐化效果。
addWeighted(src,0.5,Laplacian_image,8,0.5,dst)//将拉普拉斯图像与原图像相加
/*
addWeighted(InputArray src1, double alpha, InputArray src2,
double beta, double gamma, OutputArray dst, int dtype = -1)
*/
拉普拉斯图像与原图像相加
Sobel算子
Sobel算子和 Laplance算子都可以锐化图像,但Sobel算子是一阶导数(用梯度幅度实现)锐化图像。图像f在坐标(x,y)处梯度定义为二维向量:
这个向量在位置(x,y)处的重要几何性质是它指向f的最大变化率方向。
向量▽f的幅度(梯度方向变化率在(x,y)处的值)表示为M(x,y),其中: