如何使用OpenCV Python中的Scharr算子查找图像梯度?

如何使用OpenCV Python中的Scharr算子查找图像梯度?

使用Scharr算子,我们可以使用一阶导数在水平和垂直方向上计算图像梯度。梯度是针对灰度图像计算的。您可以使用方法cv2.scharr() 在图像上应用Scharr运算。

语法

使用Scharr导数计算图像梯度的语法如下 –

cv2.Scharr(img, ddepth, xorder, yorder)

参数

  • 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 。确保您已经安装它。

import cv2

使用 cv2.imread() 读取输入图像作为灰度图像。

img = cv2.imread('lines.jpg',0)

使用 cv2.Scharr() 计算Sobel或Laplacian导数。 此导数是指图像梯度。

scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)

使用 cv2.imshow() 方法显示图像梯度。

cv2.imshow("Scharr X", scharrx)
cv2.waitKey(0)
cv2.destroyAllWindows()

让我们查看更多示例以更清晰的理解。

示例1

在以下Python示例中,我们使用Scharr算子在X(水平)和Y(垂直)方向上计算图像梯度。

#导入所需库
import cv2

#使用灰度图像读取输入图像
img = cv2.imread('window.jpg',0)

#计算x方向上的一阶Sobel导数
scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)

#计算y方向上的一阶Sobel导数
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)

#显示scharrx和scharry
cv2.imshow("Scharr X", scharrx)
cv2.waitKey(0)
cv2.imshow("Scharr Y", scharry)
cv2.waitKey(0)
cv2.destroyAllWindows()

我们将使用以下图片 ” window.jpg ” 作为 输入文件 在上述程序中。

如何使用OpenCV Python中的Scharr算子查找图像梯度?

输出

当您执行上述程序时,它将生成以下 两个输出 窗口 - “Scharr X” 和 “Scharr Y”。

如何使用OpenCV Python中的Scharr算子查找图像梯度?

如何使用OpenCV Python中的Scharr算子查找图像梯度?

示例2

在下面的Python示例中,我们使用Scharr算子在X(水平)和Y(垂直)方向上计算图像梯度。

#导入所需的库
import cv2

#将输入图像读取为灰度图像
img = cv2.imread('tutorialspoint.png',0)

#计算x方向的1级Sobel导数
scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)

#计算y方向的1级Sobel导数
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)

#显示scharrx和scharry
cv2.imshow("Scharr X",scharrx)
cv2.waitKey(0)
cv2.imshow("Scharr Y",scharry)
cv2.waitKey(0)
cv2.destroyAllWindows()

我们将使用这张图片“ tutorialspoint.png ”作为上述程序中的 输入文件

如何使用OpenCV Python中的Scharr算子查找图像梯度?

输出

执行上述程序将产生以下两个输出窗口。

如何使用OpenCV Python中的Scharr算子查找图像梯度?

如何使用OpenCV Python中的Scharr算子查找图像梯度?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV