图像锐化-梯度算子

本文详细介绍了图像锐化中梯度算子的概念,包括经典和Roberts梯度算法的计算,以及如何通过阈值处理增强边缘清晰度。探讨了梯度模在检测图像细节和边界的重要性,并展示了四种处理方法,如阈值选择和固定灰度替代,以减少信息损失并保持图像质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像锐化-梯度算子

原图
在这里插入图片描述

该博文参考《数字图像处理》-杨帆
在图像识别中,需要有边缘鲜明的图像,及图像锐化。。然而边缘模糊是图像处理中常见的图像问题,由此造成的轮廓不清晰,线条不鲜明,使图像特征提取、识别、理解难以进行。
根据图像信号的频率特性,大面积的背景区域和缓慢变化的部分代表图像的低频分量,而他的边缘、细节、跳跃部分等都代表了高频分量,利用这一特性,我们可基于高通滤波来增强细节信息从而达到锐化目的的本质。

1.梯度算子

图像锐化中最常用的方法市梯度法。对图像 f ( x , y ) {\color{Blue} f(x,y)} f(x,y),在点 ( x , y ) {\color{Blue} (x,y)} (x,y)上的梯度是一个二维向量,可定义为:
G [ f ( x , y ) ] = [ ∂ f ∂ x ∂ f ∂ y ] T {\color{Blue} G[f(x,y)]=\begin{bmatrix} \frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix}^{T}} G[f(x,y)]=[xfyf]T
对其取模:
∣ G [ f ( x , y ) ] ∣ = G x 2 + G y 2 = [ ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 ] 1 / 2 {\color{Blue} \left | G[f(x,y)] \right |=\sqrt{G_{x}^2+G_{y}^2}=[(\frac{\partial f}{\partial x})^2+(\frac{\partial f}{\partial y})^2]^{1/2}} G[f(x,y)]=Gx2+Gy2 =[(xf)2+(yf)2]1/2
不难证明,梯度的模是一个各向同性算子,并且是 f ( x , y ) {\color{Blue} f(x,y)} f(x,y)沿着G方向上的最大变化率。
对于数字图像处理,有两种二维梯度的计算方法:

(1)典型梯度算法

G x = Δ x f ( i , j ) = f ( i + 1 , j ) − f ( i , j ) {\color{Blue} G_{x}=\Delta _{x}f(i,j)=f(i+1,j)-f(i,j)} Gx=Δxf(i,j)=f(i+1,j)f(i,j)
G y = Δ x f ( i , j ) = f ( i , j + 1 ) − f ( i , j ) {\color{Blue} G_{y}=\Delta _{x}f(i,j)=f(i,j+1)-f(i,j)} Gy=Δxf(i,j)=f(i,j+1)f(i,j)
将其带入上述取模运算可得到典型梯度算法。

(2)Roberts梯度算法

G x = Δ x f ( i , j ) = f ( i + 1 , j + 1 ) − f ( i , j ) {\color{Blue} G_{x}=\Delta _{x}f(i,j)=f(i+1,j+1)-f(i,j)} Gx=Δxf(i,j)=f(i+1,j+1)f(i,j)
G y = Δ x f ( i , j ) = f ( i , j + 1 ) − f ( i + 1 , j ) {\color{Blue} G_{y}=\Delta _{x}f(i,j)=f(i,j+1)-f(i+1,j)} Gy=Δxf(i,j)=f(i,j+1)f(i+1,j)
将其带入上述取模运算可得到Roberts梯度算法。
我们将上述两种算法作图可直观展现:
在这里插入图片描述
由公式可见,梯度模相关与相邻像素灰度差值。在图像轮廓上,像素的灰度陡然变化,梯度值很大;在图像灰度相对平缓的区域梯度较小;而在等灰度区域,梯度值为0。由此可见,梯度算子对边界即灰度变化的区域具有偏好性,图像经过梯度运算之后可使细节清晰从而达到锐化的目的。
然而事实证明,对图像采用梯度运算之后,虽然能使图像细节清晰,但往往在灰度变化比较小的区域会丢失部分信息。我们需要采用某些手段去修正上述梯度算子。
下面介绍一些常用的方法:
1.
在这里插入图片描述
当梯度值超过某阈值T的像素,采用梯度值,而小于该阈值的梯度,选择用原图像的像素值。即适当的选用T,可以有效增强边界而不影响比较平滑的背景
2.
在这里插入图片描述
当梯度值超过某阈值T的像素时,选用固定灰度 L G L_{G} LG来代替,而小于该阈值T时,选用原图像像素。这种方法可以使边界清晰,同时又不损害灰度变化比较平缓的区域的图像特性。
3.
在这里插入图片描述
当梯度值超过某阈值T的像素时,选用梯度值,而小于该阈值T时,选用固定灰度 L B L_{B} LB。这种方法将背景用一个固定的灰度级 L B L_{B} LB表示,可用于分析边缘灰度的变化。

在这里插入图片描述
当梯度值超过某阈值T的像素时,选用固定灰度 L G L_{G} LG,而小于该阈值T时,选用固定灰度 L B L_{B} LB。这种方法生成二值图像。

[I,map]=imread('zzpic2648.jpg'); %读入原图像
figure(1),imshow(I,map); %显示原图像
I=double(I);

[IX,IY]=gradient(I);
GM=sqrt(IX.*IX+IY.*IY); %计算梯度模值
OUT1=GM;
figure(2),imshow(OUT1,map) %显示未经处理的锐化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OUT2=I;
J=find(GM>=10);          %阈值T=10
OUT2(J)=GM(J);           
figure(3),imshow(OUT2,map) %显示第一种处理的锐化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OUT3=I;
J=find(GM>=10);
OUT3(J)=255;
figure(4),imshow(OUT3,map) %显示第二种处理的锐化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%
OUT4=I;
J=find(GM<=10);
OUT4(J)=255;
figure(5),imshow(OUT4,map) %显示第三种处理的锐化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OUT5=I;
J=find(GM>=10);
OUT5(J)=255;
Q=find(GM<10);
OUT5(Q)=0;
figure(6),imshow(OUT5,map)%显示第四种处理的锐化

在这里插入图片描述

### IntelliJ IDEA 中通义 AI 功能介绍 IntelliJ IDEA 提供了一系列强大的工具来增强开发体验,其中包括与通义 AI 相关的功能。这些功能可以帮助开发者更高效地编写代并提高生产力。 #### 安装通义插件 为了使用通义的相关特性,在 IntelliJ IDEA 中需要先安装对应的插件: 1. 打开 **Settings/Preferences** 对话框 (Ctrl+Alt+S 或 Cmd+, on macOS)。 2. 导航到 `Plugins` 页面[^1]。 3. 在 Marketplace 中搜索 "通义" 并点击安装按钮。 4. 完成安装后重启 IDE 使更改生效。 #### 配置通义服务 成功安装插件之后,还需要配置通义的服务连接信息以便正常使用其提供的各项能力: - 进入设置中的 `Tools | Qwen Coding Assistant` 菜单项[^2]。 - 填写 API Key 和其他必要的认证参数。 - 测试连接以确认配置无误。 #### 使用通义辅助编程 一旦完成上述准备工作,就可以利用通义来进行智能编支持了。具体操作如下所示: ##### 自动补全代片段 当输入部分语句时,IDE 将自动提示可能的后续逻辑,并允许一键插入完整的实现方案[^3]。 ```java // 输入 while 循环条件前半部分... while (!list.isEmpty()) { // 激活建议列表选择合适的循环体内容 } ``` ##### 解释现有代含义 选中某段复杂的表达式或函数调用,右键菜单里会有选项可以请求通义解析这段代的作用以及优化意见。 ##### 生产测试案例 对于已有的业务逻辑模块,借助于通义能够快速生成单元测试框架及初始断言集,减少手动构建的成本。 ```python def test_addition(): result = add(2, 3) assert result == 5, f"Expected 5 but got {result}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值