图像梯度

图像梯度-Sobel算子¶

图像梯度可以用于检测边缘,A是选取图片上3*3的区域。x是右减左,y是下减上

图像梯度_第1张图片

dst = cv2.Sobel(src, ddepth, dx, dy, ksize)

  • ddepth:图像的深度
  • dx和dy分别表示水平和竖直方向
  • ksize是Sobel算子的大小

有正有负,负数会被截断,所以要取绝对值

     cv2.convertScaleAbs(sobelx)

图像梯度_第2张图片

不建议直接将dx和dy同时设置成1,达不到整个边界的检测效果。

图像梯度_第3张图片

可先分别计算dx和dy,然后用 cv2.addWeighted(sobelx,0.5,sobely,0.5,0)将两者相加

图像梯度_第4张图片

 

图像梯度-Scharr算子

图像梯度_第5张图片

图像梯度-laplacian算子

    理论和应用见:https://www.cnblogs.com/dengdan890730/p/6145709.html 

图像梯度_第6张图片

三种算子比较 :scharr算子提取的细节更多,sobel粗边界更明显,laplacian算子效果不好

图像梯度_第7张图片

你可能感兴趣的:(opencv,图像处理,机器学习)