opencv-图像梯度

目标

• 图像梯度,图像边界等

• 使用到的函数有:cv2.Sobel(),cv2.Schar(),cv2.Laplacian() 等
原理
梯度简单来说就是求导。

OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr 和 Laplacian。我们会意义介绍他们。

Sobel,Scharr 其实就是求一阶或二阶导数。Scharr 是对 Sobel(使用小的卷积核求解求解梯度角度时)的优化。Laplacian 是求二阶导数。

1.Sobel 算子和 Scharr 算子

Sobel 算子是高斯平滑与微分操作的结合体,所以它的抗噪声能力很好。 你可以设定求导的方向(xorder 或

yorder)。还可以设定使用的卷积核的大 小(ksize)。

python 复制代码
import cv2
import numpy as np
# 读取灰度图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg", cv2.IMREAD_GRAYSCALE)
# 计算水平方向的Sobel梯度
sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
# 计算垂直方向的Sobel梯度
sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
# 显示原始图像和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梯度。

基本语法如下:

python 复制代码
sobelx = cv2.Sobel(src, ddepth, dx, dy, ksize[, dst[, scale[, delta[, borderType]]]])
  • src: 输入图像。
  • ddepth: 输出图像的深度,通常使用 -1 表示与输入图像相同。
  • dxdy: 分别表示水平和垂直方向的梯度阶数。
  • ksize: Sobel核的大小,通常为1、3、5等奇数。
  • dst(可选): 输出图像。
  • scale(可选): 缩放因子,通常为1。
  • delta(可选): 一个可选的增量,将被加到输出。
  • borderType(可选): 边界处理的方式,通常为默认值 cv2.BORDER_DEFAULT
  1. Laplacian算子:

Laplacian算子用于计算图像的二阶导数,从而得到图像的梯度。在OpenCV中,cv2.Laplacian() 函数用于计算Laplacian梯度。

基本语法如下:

python 复制代码
laplacian = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])

参数说明与Sobel类似,其中 ksize 表示Laplacian核的大小。

python 复制代码
import cv2
import numpy as np
# 读取灰度图像
img = cv2.imread(r"C:\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()

这些梯度计算方法可以帮助检测图像中的边缘和区域变化,对于后续的图像分析和处理非常有用。

相关推荐
槐夏十八4 分钟前
Suno API 的对接和使用
人工智能
guidovans7 分钟前
Crawl4AI精准提取结构化数据
人工智能·python·tensorflow
虫无涯33 分钟前
Dify调用硅基流动中模型时,流程编排中运行模型不显示思考过程,如何解决?
人工智能
猫天意37 分钟前
【CVPR2025-DEIM】基础课程二十:顶会中的Partial创新思想,随意包装你想包装的!
图像处理·人工智能·yolo·计算机视觉·matlab
DDC楼宇自控与IBMS集成系统解读40 分钟前
IBMS智能化集成系统:构建建筑全场景协同管控中枢
大数据·网络·人工智能·能耗监测系统·ibms智能化集成系统·楼宇自控系统·智能照明系统
SimonSkywalke1 小时前
STS_Root_Cause_Analysis_Error.ipynb 工作流程解析
运维·人工智能
shao9185161 小时前
Gradio全解11——Streaming:流式传输的视频应用(5)——RT-DETR:实时端到端检测模型
人工智能·nms·objects365·rt-detr·rt-detrv2·高效混合编码器·iou交并比
chanalbert1 小时前
信息检索技术综述:从传统稀疏检索到现代深度学习方法
人工智能·深度学习·全文检索
vivo互联网技术1 小时前
聚焦结构化注意力,探索提升多模态大模型文档问答性能
人工智能
慧星云1 小时前
魔多 AI 支持 Kontext 在线训练 :超高角色一致性助您创作
人工智能·云计算·aigc