Opencv C++ Laplance算子、Sobel算子

Laplance算子

Laplace算子可以实现图像的锐化(通常称“高通滤波”),拉普拉斯是二阶导数算子,因此会突出图像中的急剧灰度过渡,并且不强调缓慢变化的灰度区域。

拉普拉斯是最简单的各向同性导数算子(这种核的响应与图像中灰度不连续的方向无关),对于两个变量的图像f(x,y),它定义为

1407e60bef43dfd3e3d96a1ca38ac194.png

公式(1)

 

公式(1)可以用图1中的核对图像进行卷积运算实现;

37ee1565344e051c014dc8e67300a0ce.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

输入图像和输出结果

 

拉普拉斯算子产生的图像是叠加在暗色无特征背景上。将拉普拉斯图像与原图像相加,可以恢复背景特征,同时保留拉普拉斯的锐化效果。


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

拉普拉斯图像与原图像相加

 

Sobel算子

Sobel算子和 Laplance算子都可以锐化图像,但Sobel算子是一阶导数(用梯度幅度实现)锐化图像。图像f在坐标(x,y)处梯度定义为二维向量:

19bb2426cd9f448e669d8e065b0b5645.png

这个向量在位置(x,y)处的重要几何性质是它指向f的最大变化率方向。

向量▽f的幅度(梯度方向变化率在(x,y)处的值)表示为M(x,y),其中:

606d89fe0d9ebe1b4bb3ffef82a07ea6.png

 

 

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我就是不按套路出牌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值