当前位置: 首页 > news >正文

【数字图像处理+MATLAB】基于 Sobel 算子计算图像梯度并进行边缘增强:使用 imgradientxy 函数

引言

在图像处理中,边缘通常是图像中像素强度变化最大的地方,这种变化可以通过计算图像的梯度来量化。梯度是一个向量,它的方向指向像素强度增加最快的方向,它的大小(或者说幅度)表示像素强度增加的速度。因此,梯度的幅度可以用来检测图像中的边缘:梯度的幅度大的地方就是边缘。

Sobel算子是一种用于计算图像梯度的算子。它通过计算图像在水平方向和垂直方向上的差分来估计图像的梯度。Sobel算子会分别计算图像在x方向和y方向上的差分,这两个差分就构成了梯度的两个分量。

计算出梯度后,可以通过计算梯度的幅度来检测边缘。梯度的幅度是通过下面的公式计算的:

G m a g = G x 2 + G y 2 Gmag = \sqrt{Gx^2 + Gy^2} Gmag=Gx2+Gy2

在这里, G x Gx Gx G y Gy Gy是梯度在x方向和y方向上的分量。这个公式来自于向量的幅度的定义。


函数详解

imgradientxy 是 MATLAB 的一个函数,用于计算图像的梯度。这个函数会分别计算图像在 x 方向和 y 方向上的梯度。

基本语法:

[Gx, Gy] = imgradientxy(I)
[Gx, Gy] = imgradientxy(I, method)

参数详解:

  • I:这是一个二维的图像矩阵,需要计算梯度的图像。

  • method:这是一个可选参数,用于指定计算梯度的方法。可以是 ‘sobel’(使用 Sobel 滤波器),‘prewitt’(使用 Prewitt 滤波器),‘central’(使用中心差分),‘intermediate’(使用中间差分)等。如果省略此参数,那么默认的方法是 ‘sobel’。

返回值详解:

  • Gx:这是一个与输入图像 I 同样大小的矩阵,表示图像在 x 方向上的梯度。

  • Gy:这是一个与输入图像 I 同样大小的矩阵,表示图像在 y 方向上的梯度。


应用案例

% 读取图像
img1 = imread("Fig0342(a)(contact_lens_original).tif");% 显示原始图像
figure;
subplot(1, 2, 1);
imshow(img1, []);% 使用Sobel算子计算图像的x方向和y方向的梯度
[Gx, Gy] = imgradientxy(img1, "sobel");% 计算梯度幅度
img2 = sqrt(Gx.^2 + Gy.^2);% 显示梯度幅度图像
subplot(1, 2, 2);
imshow(img2, []);

http://www.lryc.cn/news/484321.html

相关文章:

  • P10901 [蓝桥杯 2024 省 C] 封闭图形个数
  • ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 手机直连卫星NTN通信初步研究
  • 蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
  • Android加载pdf
  • IOT物联网低代码可视化大屏解决方案汇总
  • Python的面向对象day7
  • 计算机网络(11)和流量控制补充
  • Rust 所有权机制
  • Pwn VM writeup
  • LSTM(长短期记忆网络)详解
  • 机器学习 贝叶斯公式
  • Scala-注释、标识符、变量与常量-用法详解
  • 大数据学习14之Scala面向对象--至简原则
  • docker 安装之 windows安装
  • JS 实现游戏流畅移动与按键立即响应
  • LabVIEW大数据处理
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势
  • 海思3403对RTSP进行目标检测
  • Vue之插槽(slot)
  • 分布式服务高可用实现:复制
  • 基于yolov8、yolov5的车型检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 机器学习—决定下一步做什么
  • Java Optional详解:避免空指针异常的优雅方式
  • SpringBoot开发——整合EasyExcel实现百万级数据导入导出功能
  • AcWing 1097 池塘计数 flood fill bfs搜索
  • R门 - rust第一课陈天 -内存知识学习笔记
  • java itext后端生成pdf导出
  • 信号-3-信号处理
  • 38配置管理工具(如Ansible、Puppet、Chef)