Laplance算子
Laplace算子可以实现图像的锐化(通常称“高通滤波”),拉普拉斯是二阶导数算子,因此会突出图像中的急剧灰度过渡,并且不强调缓慢变化的灰度区域。
拉普拉斯是最简单的各向同性导数算子(这种核的响应与图像中灰度不连续的方向无关),对于两个变量的图像f(x,y),它定义为
![1407e60bef43dfd3e3d96a1ca38ac194.png](https://i-blog.csdnimg.cn/blog_migrate/d34f1990972eba0285f5c2c21e23fa58.png)
公式(1)
公式(1)可以用图1中的核对图像进行卷积运算实现;
![37ee1565344e051c014dc8e67300a0ce.png](https://i-blog.csdnimg.cn/blog_migrate/a6a68edbb40ce9b760aaf0d0099ce816.png)
图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 );
*/
![a3ae9e854f69536b651e331b18b1928a.png](https://i-blog.csdnimg.cn/blog_migrate/7df61129e233db0494e34fa2cc0ae880.png)
输入图像和输出结果
拉普拉斯算子产生的图像是叠加在暗色无特征背景上。将拉普拉斯图像与原图像相加,可以恢复背景特征,同时保留拉普拉斯的锐化效果。
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)
*/
![5b105a342cf92729603dcb051cc0e19a.png](https://i-blog.csdnimg.cn/blog_migrate/59c53cbb6c5a664e58b61599ae3fb231.png)
拉普拉斯图像与原图像相加
Sobel算子
Sobel算子和 Laplance算子都可以锐化图像,但Sobel算子是一阶导数(用梯度幅度实现)锐化图像。图像f在坐标(x,y)处梯度定义为二维向量:
![19bb2426cd9f448e669d8e065b0b5645.png](https://i-blog.csdnimg.cn/blog_migrate/e33175ea3a33ddad3a0d041ac95c6968.png)
这个向量在位置(x,y)处的重要几何性质是它指向f的最大变化率方向。
向量▽f的幅度(梯度方向变化率在(x,y)处的值)表示为M(x,y),其中:
![606d89fe0d9ebe1b4bb3ffef82a07ea6.png](https://i-blog.csdnimg.cn/blog_migrate/7eabdd17c838a7aec980375ba4992c73.png)