当前位置: 首页 > 图灵资讯 > 行业资讯> python中Sobel算子是什么

python中Sobel算子是什么

来源:图灵python
时间: 2024-07-04 14:38:03

说明

1、Sobel算子的中文名称是索贝尔算子,是一种用于边缘检测的离散微分算子。

它结合了高斯平滑和微分求导。

2、Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离对当前像素点有不同的影响。

像素点越近,对当前像素的影响就越大,从而锐化图像,突出边缘轮廓。

实例

importcv2ascv
importmatplotlib.pyplotasplt

#读取图像
img=cv.imread('data.jpg',cv.COLOR_BGR2GRAY)
rgb_img=cv.cvtColor(img,cv.COLOR_BGR2RGB)

#灰度化图像处理
grayImage=cv.cvtColor(img,cv.COLOR_BGR2GRAY)

#Sobel算子
x=cv.Sobel(grayImage,cv.CV_16S,1,0)
y=cv.Sobel(grayImage,cv.CV_16S,0,1)

#转uint8,图像融合
absX=cv.convertScaleAbs(x)
absY=cv.convertScaleAbs(y)
Sobel=cv.addWeighted(absX,0.5,absY,0.5,0)

#用于正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']

#显示图形
titles=['原始图像','Sobel算子']
images=[rgb_img,Sobel]

foriinrange(2):
plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()

以上就是Sobel算子在python中希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。