python中Sobel算子是什么
发布时间: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电脑。
