网页设计网站模板网站建设网页模板,网站设置万事达u卡,网站如何做区域屏蔽代码,房屋设计图纸平面图目标 • 图像梯度#xff0c;图像边界等 • 使用到的函数有#xff1a;cv2.Sobel()#xff0c;cv2.Schar()#xff0c;cv2.Laplacian() 等 原理 梯度简单来说就是求导。 OpenCV 提供了三种不同的梯度滤波器#xff0c;或者说高通滤波器#xff1a;Sobel#xff0c;Schar…目标 • 图像梯度图像边界等 • 使用到的函数有cv2.Sobel()cv2.Schar()cv2.Laplacian() 等 原理 梯度简单来说就是求导。 OpenCV 提供了三种不同的梯度滤波器或者说高通滤波器SobelScharr 和 Laplacian。我们会意义介绍他们。 SobelScharr 其实就是求一阶或二阶导数。Scharr 是对 Sobel使用小的卷积核求解求解梯度角度时的优化。Laplacian 是求二阶导数。
1.Sobel 算子和 Scharr 算子 Sobel 算子是高斯平滑与微分操作的结合体所以它的抗噪声能力很好。 你可以设定求导的方向xorder 或 yorder。还可以设定使用的卷积核的大 小ksize。 import cv2
import numpy as np
# 读取灰度图像
img cv2.imread(rC:\Users\mzd\Desktop\opencv\images.jpg, cv2.IMREAD_GRAYSCALE)
# 计算水平方向的Sobel梯度
sobelx cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize3)
# 计算垂直方向的Sobel梯度
sobely cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize3)
# 显示原始图像和Sobel梯度图像
cv2.imshow(Original Image, img)
cv2.imshow(Sobel X, sobelx)
cv2.imshow(Sobel Y, sobely)
# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()图像梯度是图像中灰度变化的一种度量通常用于检测图像中的边缘或者区域的变化。在图像处理中常用的梯度计算方法包括Sobel、Scharr、Laplacian等。
Sobel算子
Sobel算子是一种常用的梯度计算方法分为水平和垂直两个方向。在OpenCV中cv2.Sobel() 函数用于计算图像的Sobel梯度。
基本语法如下
sobelx cv2.Sobel(src, ddepth, dx, dy, ksize[, dst[, scale[, delta[, borderType]]]])src: 输入图像。ddepth: 输出图像的深度通常使用 -1 表示与输入图像相同。dx 和 dy: 分别表示水平和垂直方向的梯度阶数。ksize: Sobel核的大小通常为1、3、5等奇数。dst可选: 输出图像。scale可选: 缩放因子通常为1。delta可选: 一个可选的增量将被加到输出。borderType可选: 边界处理的方式通常为默认值 cv2.BORDER_DEFAULT。
Laplacian算子
Laplacian算子用于计算图像的二阶导数从而得到图像的梯度。在OpenCV中cv2.Laplacian() 函数用于计算Laplacian梯度。
基本语法如下
laplacian cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])参数说明与Sobel类似其中 ksize 表示Laplacian核的大小。
import cv2
import numpy as np
# 读取灰度图像
img cv2.imread(rC:\Users\mzd\Desktop\opencv\images.jpg, cv2.IMREAD_GRAYSCALE)
# 计算Laplacian梯度
laplacian cv2.Laplacian(img, cv2.CV_64F)# 显示原始图像和Laplacian梯度图像
cv2.imshow(Original Image, img)
cv2.imshow(Laplacian, laplacian)# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()这些梯度计算方法可以帮助检测图像中的边缘和区域变化对于后续的图像分析和处理非常有用。