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

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

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

语法

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

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

参数

  • 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
Python

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

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

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

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

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

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

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

示例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()
Python

我们将使用以下图片 ” 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(imgcv2.CV_64F10)

#计算y方向的1级Sobel导数
scharry = cv2.Scharr(imgcv2.CV_64F01)

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

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

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

输出

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

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

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV

登录

注册