文章目录

  • 前言
  • 一、一阶微分和二阶微分的定义
  • 二、一阶微分锐化滤波:梯度
    • 1.梯度
    • 2.sobel算子及MATLAB代码
  • 二、二阶微分锐化滤波:拉普拉斯算子
    • 1.拉普拉斯算子
    • 2.拉普拉斯算子MATLAB代码
  • 三、非锐化掩蔽 和 高提升滤波
    • 1.非锐化掩蔽 和 高提升滤波
    • 2.MATLAB代码
  • 总结

前言

锐化滤波的主要目的是突出灰度的过渡部分,比如图像中物体的边缘。


一、一阶微分和二阶微分的定义

一阶微分:
(1)在恒定灰度值得区域一阶微分值为零;
(2)在灰度变化的台阶以及斜坡处一阶微分值非零;
(3)沿着斜坡的一阶微分值非零。
对一维函数,公式定义如下:
∂ f ∂ x = f ( x + 1 ) − f ( x ) , ( 1 ) \frac{\partial{f}}{\partial{x}}=f(x+1)-f(x),(1) ∂x∂f​=f(x+1)−f(x),(1)


二阶微分:
(1)在恒定灰度值得区域二阶微分值为零;
(2)在灰度变化的台阶以及斜坡处起点的二阶微分值非零;
(3)沿着斜坡的二阶微分值为零。
公式定义如下:
∂ 2 f ∂ x 2 = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) , ( 2 ) \frac{\partial^2{f}}{\partial{x^2}}=f(x+1)+f(x-1)-2f(x),(2) ∂x2∂2f​=f(x+1)+f(x−1)−2f(x),(2)


具体如下图
图来自《数字图像处理》


二、一阶微分锐化滤波:梯度

1.梯度

图像中将一阶微分用梯度幅值定义,在坐标(x,y)处点的梯度定义为一个二维列向量:
∇ f ≡ g r a d ( f ) ≡ [ g x g y ] ≡ [ ∂ f ∂ x ∂ f ∂ y ] , ( 3 ) \nabla{f}\equiv grad(f) \equiv \left[ \begin{array}{cc} g_x\\ g_y \end{array} \right] \equiv \left[ \begin{array}{cc} \frac{\partial{f}}{\partial{x}}\\ \frac{\partial{f}}{\partial{y}} \end{array} \right],(3) ∇f≡grad(f)≡[gx​gy​​]≡[∂x∂f​∂y∂f​​],(3)
然后定义图像对应的梯度图像M(x,y),M(x,y)中的值为 ∇ f \nabla{f} ∇f的幅度值(长度):
M ( x , y ) = m a g ( ∇ f ) = g x 2 + g y 2 , ( 4 ) M(x,y)=mag(\nabla{f})=\sqrt{g_x^2+g_y^2},(4) M(x,y)=mag(∇f)=gx2​+gy2​ ​,(4)
或者
M ( x , y ) = m a g ( ∇ f ) = ∣ g x ∣ + ∣ g y ∣ , ( 5 ) M(x,y)=mag(\nabla{f})=|g_x|+|g_y|,(5) M(x,y)=mag(∇f)=∣gx​∣+∣gy​∣,(5)
由第一节的一阶微分定义:
当处于灰度值不变的区域中时, g x g_x gx​和 g y g_y gy​都是0,则梯度图像对应位置的灰度值大小也为0;
当处于沿x变化的过渡点时, g x g_x gx​非零, g y g_y gy​为零,则梯度图像在对应位置的大小为 ∣ g x ∣ |g_x| ∣gx​∣;
同理可推其他情况。


2.sobel算子及MATLAB代码

sobel算子如下:
分别为 g x g_x gx​和 g y g_y gy​的计算窗口

注: 教材中的坐标轴规定如下
以图像左上角为原点,x轴向下,y轴向右。
以3×3模板为例:
f ( x − 1 , y − 1 ) f ( x − 1 , y ) f ( x − 1 , y + 1 ) f ( x , y − 1 ) f ( x , y ) f ( x , y + 1 ) f ( x + 1 , y − 1 ) f ( x + 1 , y ) f ( x + 1 , y + 1 ) \begin{matrix} f(x-1,y-1) & f(x-1,y)& f(x-1,y+1) \\ f(x,y-1) & f(x,y) & f(x,y+1) \\ f(x+1,y-1)& f(x+1,y) & f(x+1,y+1) \\ \end{matrix} f(x−1,y−1)f(x,y−1)f(x+1,y−1)​f(x−1,y)f(x,y)f(x+1,y)​f(x−1,y+1)f(x,y+1)f(x+1,y+1)​


g x g_x gx​和 g y g_y gy​的计算公式分别为为:
g x = ∂ f ∂ x = [ f ( x + 1 , y − 1 ) + 2 f ( x + 1 , y ) + f ( x + 1 , y + 1 ) ] − [ f ( x − 1 , y − 1 ) + 2 f ( x − 1 , y ) + f ( x − 1 , y + 1 ) ] g_x=\frac{\partial{f}}{\partial{x}}=[f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)] gx​=∂x∂f​=[f(x+1,y−1)+2f(x+1,y)+f(x+1,y+1)]−[f(x−1,y−1)+2f(x−1,y)+f(x−1,y+1)]
g y = ∂ f ∂ y = [ f ( x − 1 , y + 1 ) + 2 f ( x , y + 1 ) + f ( x + 1 , y + 1 ) ] − [ f ( x − 1 , y − 1 ) + 2 f ( x , y − 1 ) + f ( x + 1 , y − 1 ) ] g_y=\frac{\partial{f}}{\partial{y}}=[f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)] gy​=∂y∂f​=[f(x−1,y+1)+2f(x,y+1)+f(x+1,y+1)]−[f(x−1,y−1)+2f(x,y−1)+f(x+1,y−1)]
则M(x,y)=| g x g_x gx​|+| g y g_y gy​|=…


MATLAB代码如下

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)f = padarray(im2,[1,1],'symmetric','both');
%此处是对原图矩阵扩充,因为处理窗口为3×3,
%要使图像最外层像素得到处理,则需要四边都向外面扩充一排,此处使用镜面扩充[m,n]=size(f);%获取矩阵大小
M=zeros(size(f));%提前定义梯度图像M,有利于提高运算速度for x=2:m-1for y=2:n-1gx=(f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)) - (f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1));gy=(f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)) - (f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1));%使用上面的公式计算gx,gy。其他算子类似。M(x,y)=abs(gx)+abs(gy);end
end
M=M(2:m-1,2:n-1);%去掉扩充的行列
figure
imshow(M)

二、二阶微分锐化滤波:拉普拉斯算子

1.拉普拉斯算子

与一阶微分相似,拉普拉斯对应的计算公式如下图:
图片来自数字图像处理

拉普拉斯算子模板如下:


2.拉普拉斯算子MATLAB代码

以上图最左边模板为例:

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)f = padarray(im2,[1,1],'symmetric','both');
%此处是对原图矩阵扩充,因为处理窗口为3×3,
%要使图像最外层像素得到处理,则需要四边都向外面扩充一排,此处使用镜面扩充[m,n]=size(f);%获取矩阵大小
M=zeros(size(f));%提前定义梯度图像M,有利于提高运算速度for x=2:m-1for y=2:n-1M(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4*f(x,y);%以3.6-6的公式计算,其他算子模板类似end
end
M=M(2:m-1,2:n-1);%去掉扩充的行列
figure
imshow(M)

三、非锐化掩蔽 和 高提升滤波

1.非锐化掩蔽 和 高提升滤波

非锐化掩蔽:从原图减去一个非锐化(平滑过的)图像。
步骤如下:
(1)模糊原图像(比如平滑滤波);
(2)原图减去模糊图像,得到的差值图像成为模板;
(3)将模板加到原图像上得到锐化图像。

公式如下:
g m a s k ( x , y ) = f ( x , y ) − f ′ ( x , y ) g_{mask}(x,y)=f(x,y)-f'(x,y) gmask​(x,y)=f(x,y)−f′(x,y)
其中f(x,y)为原图,f’(x,y)为模糊图像, g m a s k ( x , y ) g_{mask}(x,y) gmask​(x,y)为模板
则锐化图像g(x,y):
g ( x , y ) = f ( x , y ) + k ∗ g m a s k ( x , y ) g(x,y)=f(x,y)+k*g_{mask}(x,y) g(x,y)=f(x,y)+k∗gmask​(x,y)

其中k为权重(>0),当k>1时成为高提升滤波,当k<1时则不强调模板的贡献


2.MATLAB代码

模糊方法以高斯模糊为例

clc;clear;close all
im1=imread('1.jpg');  %读取图像:彩色图
figure
imshow(im1)im2=rgb2gray(im1);    %获得灰度图
figure
imshow(im2)w=fspecial('gaussian',[5 5],5);
im3=imfilter(im2,w);  %高斯模糊,也可以使用其他平滑算法
figure
imshow(im3);g=im2-im3;    %模板im4=im2+g;    %锐化图像
figure
imshow(im4)

总结

MATLAB代码经MATLAB R2019a实现。

数字图像处理学习笔记4:图像增强之空间滤波2(一阶微分锐化滤波(梯度),二阶微分锐化(拉普拉斯),非锐化掩蔽)相关推荐

  1. 数字图像处理学习笔记(十)——空间滤波

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  2. 数字图像处理学习笔记(八)——图像增强处理方法之点处理

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  3. 数字图像处理学习笔记 六 彩色图像处理

    目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...

  4. 数字图像处理学习笔记(十五)——图像复原与重建

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  5. 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF

    数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...

  6. 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法

    数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 一.概述: 提到特征点算法,首先就是大名鼎鼎的SIFT算法了.SIFT的全称是Scale Invariant Feature Transf ...

  7. 数字图像处理学习笔记(一):特征检测和匹配概述

    数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...

  8. 数字图像处理学习笔记(三)——空间分辨率和灰度分辨率、等偏爱曲线

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  9. 基于python的数字图像处理--学习笔记(三)

    基于python的数字图像处理--学习笔记(三) 前言 一.灰度拉伸 二.幂律(伽马)变换 三.对数变换 前言 进入冈萨雷斯的第三章内容,并用python实现功能.我更改了代码源,之前找到太烂了,代码 ...

  10. 数字图像处理学习笔记(六)——数字图像处理中用到的数学操作

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

最新文章

  1. 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
  2. IOS开发基础之大转盘案例
  3. kail利用msf工具对ms11-003漏洞入侵渗透Win7
  4. Python——正则表达式特殊符号及用法
  5. zTree加Layui 实现增加和删除,有子节点不允许删除
  6. 9 个小技巧让你的 if else 看起来更优雅!
  7. 跨账号迁移阿里云镜像
  8. 计算机网络的地址三类,计算机网络中有几种地址格式
  9. 中国人的英文名和外国人的中文名
  10. 研究生毕业论文如何选题
  11. MySQL数据库——MySQL是什么?它有什么优势?
  12. ContraD论文部分翻译与解读(Training GANs with Stronger Augmentations via Contrastive Discriminator)
  13. http_proxy设置
  14. 经济学硕士毕业论文题目【282个】
  15. 中国互联网2010年最佳阵容(漫画版)
  16. 温度上报实时监控项目——客户端
  17. COGNEX扫码枪IO接线
  18. 对shell脚本赋予可执行权限
  19. obs linux编译,obs-studio模块分析与源码编译
  20. Activiti的使用 idea的bpmn插件

热门文章

  1. CG100-9S12HA32 13年东南菱悦V3
  2. linux magento,linux开发magento2 常用命令
  3. Vue.js高效前端开发 • 【Ant Design of Vue框架进阶】
  4. PIM-DM与SM对比
  5. spring-基于注释(Annotation)的配置(转) 4
  6. 昨天才提醒,今天就有网友点击QQ信息中的网址,中Worm Viking pk/Worm Win32 Viking jg了
  7. 2018年各省省会GDP与平均GDP的倍数
  8. 世界php占比,我国2017年GDP占世界比重15% 稳居世界第二
  9. vim切换tab标签快捷键
  10. 松柏先生: 这16条品牌秘笈一定要抢在你的竞争对手之前学会!