图像梯度——Sobel算子和Laplacian算子

article/2025/7/17 6:32:06

一、Sobel算子

1、定义

Sobel算子是一种离散的微分算子,结合了高斯平滑和微分求导运算,利用局部拆分寻找边缘,计算所得的是一个梯度的近似值。
Sobel算子=|左-右|/|下-上|
Scharr算子=|左-右|/|下-上|

2、原理

滤波器指由一幅图根据像素点(x,y)临近的区域计算得到另外一幅新图像的算法。滤波的目标像素点的值等于原始像素值及其周围像素值的加权和。

3、Sobel算子和Scharr算子比较

Sobel算子当其核结构较小时,精确度不高,而Scharr算子具有较高的精度。

4、代码

# 索贝尔算子:当边缘很多时用,但对噪声敏感
def sobel_demo(image):""":param image: Scharr(src, ddepth, dx, dy, dst=None, scale=None, delta=None, borderType=None):return: src:原始图像ddepth:输出图像深度dx:x方向上的倒数阶数dy:y方向上的倒数阶数dst:输出图像scale:计算导数值的缩放因子,可选,1表示没有缩放delta:加到目标图像上的亮度值,可选,默认0borderType:边界样式"""# 求x方向边缘梯度,dx=1,dy=0grad_x = cv.Scharr(image, cv.CV_32F, 1, 0)# 求y方向边缘梯度,dx=0,dy=1grad_y = cv.Scharr(image, cv.CV_32F, 0, 1)"""convertScaleAbs(src, dst=None, alpha=None, beta=None):对参数取绝对值,映射为8位类型src:原始图像dst:处理结果alpha:调节参数,可选,默认1beta:调节亮度值,可选,默认0"""gradx = cv.convertScaleAbs(grad_x)grady = cv.convertScaleAbs(grad_y)cv.imshow('gradient_x', gradx)cv.imshow('gradient_y', grady)# x和y方向的梯度集合gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0)cv.imshow('gradient', gradxy)
  • x和y方向梯度图像

在这里插入图片描述

  • x和y方向集合的梯度图像

在这里插入图片描述

二、Laplacian算子

拉普拉斯算子是一种二阶导数算子,具有旋转不变性,可以满足不同方向的图像边缘锐化(边缘检测)要求,其算子的系数之和为零。
在这里插入图片描述
Laplacian算子=|左-右|+|左-右|+|下-上|+|下-上|

# 拉普拉斯算子:
def lapalian_demo(image):# 第一种:拉普拉斯算子dst = cv.Laplacian(image, cv.CV_32F)# 第二种:自定义集合 kernel = np.array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])# filter2D:利用内核实现对图像的卷积运算。dst1 = cv.filter2D(image, cv.CV_32F, kernel=kernel)lpls = cv.convertScaleAbs(dst)lpls1 = cv.convertScaleAbs(dst1)cv.imshow('lapalian_demo', lpls)cv.imshow('lapalian_demo1', lpls1)

在这里插入图片描述


http://chatgpt.dhexx.cn/article/Q3BrpPbf.shtml

相关文章

sobel算子 拉普拉斯算子以及散度与梯度的概念

在ECBSR论文的代码研究中,我发现关于ECBSR提出的多分支重参数化模型中,代码用到了sobel算子与laplace算子,很难判断这两个算子是为了论文的创新点还是真的有用,这块只能等待后续的对比实验。 1、拉普拉斯算子 首先是散度与梯度的…

Python OpenCV Sobel 算子、Scharr 算子、laplacian 算子 复盘学习

Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。本篇博客是这个系列的第 46 篇。 该系列文章导航参考:https://blog.csdn.net/hihell/category_10688961.html Python OpenCV 基础知识铺垫Sobel 算子Scharr 算子laplacian 算子 橡皮擦的小节 …

矢量场分析

矢量分析 向量微分算子 ∇ [ ∂ ∂ x ∂ ∂ y ∂ ∂ z ] T \nabla\left[\frac{\partial}{\partial {x}} \frac{\partial}{\partial {y}} \frac{\partial}{\partial{z}}\right]^T ∇[∂x∂​∂y∂​∂z∂​]T算子是一个形式向量,它可以作用于标量 f f f与向量 F ⃗…

Laplace算子

背景简述 在图像处理,我们知道经常把Laplace算子作为边缘检测之一,也是工程数学中常用的一种积分变换。本节主要介绍Laplacian 算子相关的知识。 基本理论 首先,拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二…

使用二阶微分锐化图像(拉普拉斯算子)基本原理及Python实现

1. 拉普拉斯算子 1.1 简介 一种典型的各向同性的微分算子,可用于检测图像中灰度图片的区域 $$ \nabla^{2} f\frac{\partial^{2} f}{\partial x^{2}}\frac{\partial^{2} f}{\partial y^{2}} $$ 根据上述的差分近似可以推导出 $$ \nabla^{2} f(x, y)f(x1, y)f(x-1, y)…

卷积神经网络 作业

文章目录 卷积神经网络 作业1. 高斯拉普拉斯算子(边缘检测)1.1 简介1.2 拉普拉斯算子1.3 高斯拉普拉斯算子1.3 LoG使用指南1.4 总结1.5 代码实现 2. 使用LeNet网络,输出特征图2.1 作业要求2.2 代码实现 卷积神经网络 作业 1. 高斯拉普拉斯算子(边缘检测) 作业要求…

深度学习传统CV算法——二阶微分边缘算子

二阶微分边缘算子 二阶微分边缘算子二阶微分边缘算子基本思想Laplace 算子拉普拉斯表达式图像中的Laplace 算子Laplace算法过程Laplace算子的旋转不变性证明Laplace算子优缺点 LOG算子LoG解决的问题LoG算子的计算过程LoG的卷积模板LoG算法过程DoG与LoGLoG算子优缺点 Canny算子C…

MATLAB - 拉普拉斯算子可视化

1、拉普拉斯算子 ∇ 2 \nabla^ 2 ∇2 拉普拉斯算子有很多用途,在物理中常用于波动方程、热传导方程和亥姆霍兹方程的数学模型;在静电学中,拉普拉斯方程和泊松方程的应用随处可见;在数学中,经拉普拉斯算子运算运算为零…

一文读懂Nabla算子

文章目录 ∇ \nabla ∇算子的介绍梯度、散度和旋度不同坐标系下 ∇ \nabla ∇算子的形式 ∇ \nabla ∇算子运算律 ∇ \nabla ∇算子常用公式补充内容 参考文献及视频 ∇ \nabla ∇算子的介绍 ∇ \nabla ∇称作Nabla算子或del算子(算子是一种映射,可以理解…

【CSS 表格属性(Table)】

CSS 表格属性 Table 1. border-collapse 属性: 单元格/表格 边框 合并2. border-spacing 属性: 设置 表格/单元格 边框间距 /间隔距离 (搭配 border-collapse 属性 )3. caption-side 属性: 设置 表格标题的位置4. empty-cells 属性: 设置 表格 空单元格的显示 (空单…

html里table属性值,html——table标签属性总结

table标签属性 table标签 border border标签属性:设定围绕表格的边框的宽度:table 111111111border标签属性不仅设置围绕表格边框的宽度,还为每个单元格添加宽度为1px的边框 实际开发中不建议使用border标签属性实现边框效果,建议通过为table、th和td设定border样式属性实现…

css table属性

表格边框 指定CSS表格边框,使用border属性。 下面的例子指定了一个表格的th和td元素的黑色边框: 在上面的例子中的表格有双边框。这是因为表和th/ td元素有独立的边界。 为了显示一个表的单个边框,使用 border-collapse属性 折叠边框 border-…

elementUI表格table的列内置样式修改方法/对比template,列属性class-name,table属性cell-class-name

1,table属性cell-class-name的使用可以作用到某一行,或者某一列等等。但是在style标签中要去掉scoped,不然无效。 (在elementUI中,row-class-name、row-style、cell-class-name等属性要想生效必须使用全局class才能生…

html中table标签及属性

table表格 HTML表格由table标签以及多个tr、th和td标签组成table表示表格&#xff0c;整个表格要包含在<table></table>标签中tr表示表格中的行&#xff0c;是单元格的容器&#xff0c;一行可以包括多个单元格th表示表格中的单元格&#xff0c;我理解为列,th放在t…

Antd 3.0 table,表格组件(Table属性,Column属性,RowSelection属性)

Antd 3.0 table&#xff0c;表格组件&#xff08;Table属性&#xff0c;Column属性&#xff0c;RowSelection属性&#xff09; 一、Table属性 ​ 常用参数说明&#xff1a; 参数说明类型默认dataSource数据数组any[]columns表格列的配置描述&#xff0c;具体项见下表ColumnP…

<table>标签的属性

1.border border属性用于设置表格的边框&#xff0c;默认值为0。 2.cellspacing cellspacing属性用于设置单元格于单元格之间的空间&#xff0c;默认值为2px。 3.cellpadding cellpadding属性用于设置单元格于单元格之间的空白间距&#xff0c;默认值为1px。 4.width、h…

html-table标签属性总结

table标签属性 table标签borderwidthborder-spacingborder-collapsemargin tr标签heightbackground-colortext-alignvertical-align td标签合并单元格合并行单元格rowspan合并列单元格colspan table标签 border border标签属性&#xff1a;设定围绕表格的边框的宽度&#xff…

2.9CSS table属性

表格边框 指定CSS表格边框&#xff0c;使用border属性。 下面的例子指定了一个表格的Th和TD元素的黑色边框&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>菜鸟教程(runoob.com)</title><style&g…

Vue+Element el-table属性row-class-name用法及踩坑

el-table属性row-class-name用法及踩坑 需求前提&#xff1a;想要给表格的某一行加上不同的background&#xff0c;用来区分当前行的状态 根据官方给出的文档官方文档 在el-table中绑定自定义属性row-class-name <el-table:data"tableData"style"width: 10…

HTML中的table标签属性

表格 表格是由行和列排列而成的一种结构 HTML表格由table标签以及一个或多个tr、th或td标签组成&#xff1a; table标签用来定义表格&#xff0c;整个表格包含在<table>和</table>标签中&#xff1b; tr标签用来定义表格中一个行&#xff0c;它是单元格的容器&…