简单人工智能技术应用 使用Python+OpenCV进行图像处理(14)

# Apply gradient filtering

sobel_x = cv2.Sobel(img , cv2.CV_64F , dx = 1 , dy = 0 , ksize = 5)

sobel_y = cv2.Sobel(img , cv2.CV_64F , dx = 0 , dy = 1 , ksize = 5)

blended = cv2.addWeighted(src1=sobel_x , alpha=0.5 , src2=sobel_y ,

beta=0.5 , gamma=0)

laplacian = cv2.Laplacian(img , cv2.CV_64F)

Sobel运算同时使用高斯平滑和微分 。 我们通过cv2.Sobel()函数使用它 , 可以定义两个不同的方向:垂直方向(sobelx)和水平方向(sobely) 。 dx和dy表示导数 。 当dx = 1时 , 通过计算像素值沿水平方向的导数 , 从而进行图像滤波 。

通过函数cv2.addWeighted()对sobelx和sobely的两种过滤器加权求和 , 可以实现两个方向上的梯度求解及图像滤波 。 上述代码中两种过滤器设定了相同的权重 。

推荐阅读