opencv python 6 图像梯度
来源:互联网 发布:薪酬优化方案 编辑:程序博客网 时间:2024/05/16 14:53
opencv python 6 图像梯度
Sobel和scharr算子
cv2.Sobel()实现了带方向的图像梯度计算。
dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])
- dst:输出图像
- src:输入图像
- ddepth:输出图像深度
- dx:x方向上的求导阶数
- dy:y方向上的求导阶数
- ksize:算子宽度,默认为3
- scale:缩放比例,默认为1
- delta:输出结果时的附加值,默认为0
- borderType:边界模式,默认为BORDER_DEFAULT
import cv2 img = cv2.imread('a.jpg', 0)sx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize = 5)cv2.imshow('sobel', sx)cv2.waitKey()
若ksize为-1,则使用3x3的scharr算子:
(x方向,y方向则取转置)
否则使用普通的Sobel算子,如dx=1,dy=0,ksize=3时:
Laplacian算子
cv2.Laplacian()
dst = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])
- dst:输出图像
- src:输入图像
- ddepth:输出图像深度
- ksize:算子宽度,默认为1
- scale:缩放比例,默认为1
- delta:输出结果时的附加值,默认为0
- borderType:边界模式,默认为BORDER_DEFAULT
l = cv2.Laplacian(img, cv2.CV_64F)
若ksize为1,则使用:
否则对图像的x和y方向作Sobel操作后相加:
阅读全文