图像sobel梯度详细计算过程_干货|西大学长教你玩转计算机07——图像导数实战...

b2939ad9735a0d06f93533c8646fa566.png

图源网络

锵锵锵,大家好,每周一度的马学长课堂又开课啦!今天,是Python图像处理系列的最后一课啦,相信大家通过之前的学习,都对Python图像处理有了系统的了解,并形成了自己的学习方法。下面让我们一起进入今天的课堂吧!

6dd7ab89b8a0da367ac324a88974212f.png

上节为大家介绍了SciPy库的使用以及图像高斯模糊实战,这一次继续为大家详细讲解SciPy库的使用以及图像导数实战

SciPy

SciPy是建立在NumPy基础上,用于数值运算的开源工具包。SciPy提供很多高效的操作,可以实现数值优化、统计、信号、积分处理,以及最重要的图像处理功能。接下来,本节会介绍SciPy中大量有用的模块。

图像导数

在整个图像处理的学习过程中可以看到,在很多应用中图像强度的变化情况是非常重要的信息。强度的变化可以用灰度图像I(对于彩色图像,通常对每个颜色通道分别计算导数)的Ix和Iy的方向导数和进行描述。

图像的梯度向量:

ad4cb7a959bed6151cba0979f1f888d1.png

梯度有两个重要的属性,一个是梯度的大小:

28a04e54c6501b019714a76873b6fb56.png

它描述了图像变化的强弱,一是梯度的角度:

b09c415ca13f904dd9254ca4adca8d81.png

角度的变化区间为

c928f8db0ecfda9e5c397625812c9237.png

卷积简单实现

f35688347f349d182be907082360dbb3.png

Prewitt滤波器:

9d686a4799acaf25d422547542845670.png

Prewitt边缘算子是一种边缘样板算子,对噪声具有平滑作用。由于边缘点像素的灰度值与其领域点像素的灰度值有显著不同,在实际应用中通常采用微分算子模板配匹方法检测图像的边缘。

这里使用 ROF(Rudin-Osher-Fatemi)去噪模型。Sobel滤波器,Sobel算法是一种较成熟的微分边缘检测算法,它计算简单,且能产生较好的检测效果,对噪声具有平滑作用,可以提供较为精确的边缘方向信息。

d845d078aeb94eaa099b0477d62cc9a9.png

其实图像的梯度可以用一阶导数二阶偏导数来求解。但是图像以矩阵的形式存储的,不能像数学理论中对直线或者曲线求导一样,对一幅图像的求导相当于对一个平面、曲面求导。对图像的操作,我们采用模板对原图像进行卷积运算,从而达到我们想要的效果。

而获取一幅图像的梯度就转化为:模板(Roberts、Prewitt、Sobel、Lapacian算子)对原图像进行卷积,不过这里的模板并不是随便设计的,而是根据数学中求导理论推导出来的。

导数滤波器可以使用scipy.ndimage.filters模块的标准卷积操作来简单地实现。

代码为:

原始灰度图像、x导数图像、y导数图像、梯度大小图像

0086dcab7a1fd5588834f95751b0b885.gif

本次有关Python图像处理的分享到这里就结束了。希望大家能多加练习,争取早日成为技术大牛哦!

58709b785aff1c14a681b23183c7e95c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值