OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved.

图像梯度
图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。般情况下,图像梯度计算的是图像的边缘信息。
严格来讲,图像梯度计算需要求导数,但是图像梯度一般通过计算像素值的差来得到梯度的近似值(近似导数值)。

Sobel理论基础
Sobel算子是一种离 散的微分算子,该算子结合了高斯平滑和微分求导运算。该算子利用局部差分寻找边缘,计算所得的是一个梯度的近似值。
Sobel算子如下图所示
OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第1张图片

在OpenCV内,使用函数cv2.Sobel()实现Sobel算子运算,其语法形式为:
dst = cv2.Sobel( src, ddepth, dx, dy[,ksize[, scale[, delta[, borderType]]]] )式中:
dst代表目标图像.
src代表原始图像.
ddepth 代表输出图像的深度。其具体对应关系如下图所示,
OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第2张图片

dx代表x方向上的求导阶数。
dy代表y方向上的求导阶数。
ksize代表Sobel核的大小。该值为-1时,则会使用Scharr算子进行运算。
scale代表计算导数值时所采用的缩放因子,默认情况下该值是1,是没有缩放的。. delta代表加在目标图像dst上的值,该值是可选的,默认为0。
borderType代表边界样式。该参数的具体类型及值如下图所示。
OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第3张图片

Laplacian算子OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第4张图片 

OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第5张图片 

OpenCV轻松入门(面向Python)之图像梯度@Fu Xianjun. All Rights Reserved._第6张图片 

 

你可能感兴趣的:(opencv)