如何使用OpenCV Python中的Scharr算子查找图像梯度?
使用Scharr算子,我们可以使用一阶导数在水平和垂直方向上计算图像梯度。梯度是针对灰度图像计算的。您可以使用方法cv2.scharr() 在图像上应用Scharr运算。
语法
使用Scharr导数计算图像梯度的语法如下 –
参数
- img − 原始输入图像。
-
ddepth − 输出图像的期望深度。它包含关于输出图像中存储的数据类型的信息。 我们使用 cv2.CV_64F 作为ddepth。它是一个64位浮点型Opencv。
-
xorder − 水平方向(X方向)上的导数次数。将xorder=1、yorder=0设置为X方向上的一阶导数。
-
Yorder − 垂直方向(Y方向)上的导数次数。将xorder=0、yorder=1设置为Y方向上的一阶导数。
步骤
您可以使用以下步骤使用Scharr导数查找图像梯度 –
导入所需库。在所有以下Python示例中,所需的Python库是 OpenCV 。确保您已经安装它。
使用 cv2.imread() 读取输入图像作为灰度图像。
使用 cv2.Scharr() 计算Sobel或Laplacian导数。 此导数是指图像梯度。
使用 cv2.imshow() 方法显示图像梯度。
让我们查看更多示例以更清晰的理解。
示例1
在以下Python示例中,我们使用Scharr算子在X(水平)和Y(垂直)方向上计算图像梯度。
我们将使用以下图片 ” window.jpg ” 作为 输入文件 在上述程序中。
输出
当您执行上述程序时,它将生成以下 两个输出 窗口 - “Scharr X” 和 “Scharr Y”。
示例2
在下面的Python示例中,我们使用Scharr算子在X(水平)和Y(垂直)方向上计算图像梯度。
我们将使用这张图片“ tutorialspoint.png ”作为上述程序中的 输入文件 。
输出
执行上述程序将产生以下两个输出窗口。