图像锐化

  • 图像边缘分析
  • 一阶微分算子
    • 一梯度算子
    • 二Robert算子
    • 三Sobel算子
    • 四Prewitt算子
  • 二阶微分算子
  • 高斯滤波和边缘检测
    • 一高斯函数
    • 二LOG算子
    • 三Canny算子
  • 频域高通滤波

图像边缘分析

边缘定义为图像中亮度突变的区域,分为:细线型边缘、突变型边缘和渐变型边缘

1)突变型边缘位于图像中具有不同灰度值的相邻区域之间,对应于一阶导数的极值和二阶导数的过零点

2)细线型边缘对应于灰度变化曲线的极值,对应于一阶导数的过零点和二阶微分的极值点

2)渐进型边缘因变化缓慢,没有明确的边界点


一阶微分算子

一、梯度算子

图像处理中应用微分最常用的方法是计算梯度,梯度是方向导数取最大值的方向的向量

梯度定义为:

G[f(x,y)]=?? ?f?x?f?y??

用其幅度代替:

G[f(x,y)]=[(?f?x)2+(?f?y)2]12

为计算方便,也常用绝对值代替

G[f(x,y)]=|?f?x|+|?f?y|

最后用差分代替微分

G[f(x,y)]=|f(x+1,y)?f(x,y)|+|f(x,y+1)=f(x,y)|

I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
[h w]=size(I);
edgeI=zeros(h,w);
for x=1:w-1;
    for y=1:h-1
        edgeI(y,x)=abs(I(y,x+1)-I(y,x))+abs(I(y+1,x)-I(y,x));%梯度运算
    end
end
figure;
imshow(edgeI),title(‘边缘图像‘);
sharpI=I+edgeI;
figure;
imshow(sharpI),title(‘锐化图像‘);


二、Robert算子

Robert算子是通过交叉求微分实现边缘检测

G[f(x,y)]=|f(x,y)?f(x+1,y+1)|+|f(x+1,y)?f(x,y+1)|

模板表示:

H1=[ 100?1]

H1=[ 0?110]

Matlab提供函数:

BW=edge(I,type,parameters)

I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
BW=edge(I,‘roberts‘);
H1=[1 0;0 -1];H2=[0 1;-1 0];
R1=imfilter(I,H1);
R2=imfilter(I,H2);
edgeI=abs(R1)+abs(R2);
figure;
imshow(edgeI),title(‘Robert梯度图像‘);
sharpI=I+edgeI;
figure;
imshow(sharpI),title(‘Robert锐化图像‘);


三、Sobel算子

Sobel算子是一种3×3模板下的微分算子,定义如下:

Sx=|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)|

Sy=|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=|Sx|+|Sy|

模板来表示:

Hx=??? ?101?202?101???

Hy=??? ?1?2?1000121???

I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
BW=edge(I,‘roberts‘);
figure,imshow(BW),title(‘Sobel边缘检测‘)
H1=[1 0;0 -1];H2=[0 1;-1 0];
R1=imfilter(I,H1);
R2=imfilter(I,H2);
edgeI=abs(R1)+abs(R2);
figure;
imshow(edgeI),title(‘Robert梯度图像‘);
sharpI=I+edgeI;
figure;
imshow(sharpI),title(‘Robert锐化图像‘);



四、Prewitt算子

Prewitt算子与Sobel算子思路类似,但模板系数不同

Sx=|f(x?1,y+1)+f(x,y+1)+f(x+1,y+1)|-

|f(x?1,y?1)+f(x,y?1)+f(x+1,y?1)|

Sy=|f(x+1,y?1)+f(x+1,y)+f(x+1,y+1)|-

|f(x?1,y?1)+f(x?1,y)+f(x?1,y+1)|

g=|Sx|+|Sy|

模板来表示:

Hx=??? ?101?101?101???

Hy=??? ?1?1?1000111???

%%Prewitt算子
I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
BW=edge(I,‘Prewitt‘);
figure,imshow(BW),title(‘Prewitt边缘检测‘)
H1=[-1 -1 -1;0 0 0;1 1 1];H2=[-1 0 1;-1 0 1;-1 0 1];
R1=imfilter(I,H1);
R2=imfilter(I,H2);
edgeI=abs(R1)+abs(R2);
figure;
imshow(edgeI),title(‘Prewitt梯度图像‘);
sharpI=I+edgeI;
figure;
imshow(sharpI),title(‘Prewitt锐化图像‘);


二阶微分算子

拉普拉斯算子为二阶微分算子,定义如下:

?2f=?2f?x2+?2f?y2

化简:

?2f=f(x+1,y)+f(x?1,y)+f(x,y+1)+f(x,y?1)?4f(x,y)

模板:

H1=??? 0101?41010???

H1=??? 0?10?14?10?10???



拉普拉斯算子对图像增强基本方法

g(x,y)={ f(x,y)?△2f(x,y)f(x,y)+△2f(x,y)拉普拉斯模板中心系数为负数拉普拉斯模板中心系数为正数

I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
H=fspecial(‘laplacian‘,0);%生成拉普拉斯模板
R=imfilter(I,H);%拉普拉斯算子滤波
edgeI=abs(R);%获取拉普拉斯算子滤波图像
figure,imshow(edgeI),title(‘拉普拉斯边缘图像‘)
H1=[0 -1 0;-1 5 -1;0 -1 0];
SharpI=imfilter(I,H1);
figure;
imshow(sharpI),title(‘拉普拉斯锐化图像‘);



一阶微分算子获得的边界是比较粗略的边界,反映的边界信息较少,但是所反映的边界比较清晰;二阶微分算子获得的边界是比较细致的边界。反映的边界信息包括了许多的细节信息,但是所反映的边界不是太清晰。


高斯滤波和边缘检测

一、高斯函数

二、LOG算子

图像常常受到随机噪声干扰,在其上执行边缘检测的结果常将噪声当作边缘点而检测出来,而真正的边缘则由于受噪声干扰而没能检测出来

用高斯函数g(x,y)先对图像作平滑,将高斯函数g(x,y)与图像函数f(x,y)$ 卷积,得到一个图像函数,对该函数做拉普拉斯运算,提取边缘

可以证明:

?2[f(x,y)?g(x,y)]=f(x,y)??2g(x,y)

?2g(x,y)=?2g?x2+?2g?y2=1πσ4(x2+y22σ2?1)exp(?x2+y22σ2)

?2g(x,y)为LOG滤波器。σ称为尺度因子,大的值可以检测模糊的边缘,小的值可以检测聚焦良好的图像细节

%%LOG算子
I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
BW=edge(I,‘log‘);%使用LOG算子进行边缘检测,得到二值边界图像
figure,imshow(BW),title(‘LOG边缘检测‘)
H=fspecial(‘log‘,7,1);%生成7*7的LOG模板,标准差为1
R=imfilter(I,H);
edgeI=abs(R);
figure;
imshow(edgeI),title(‘LOG滤波图像‘);
sharpI=I+edgeI;
figure;
imshow(sharpI),title(‘LOG锐化图像‘);



三、Canny算子

多级边缘检测算法,被很多人认为是边缘检测最优算法

最优边缘检测的三个主要评价标准:

1)低错误率,更多的实际边缘,更少的噪声误报

2)对边缘的准确定位

3)最小响应,图中的边缘最好只标识一次



主要步骤

1)高斯平滑滤波器卷积降噪

2)平滑后图像的梯度幅值和方向的计算,可采用不同的梯度算子

3)对梯度幅值应用非极大抑制,其过程是找出图像梯度中局部极大值,将其他非局部极大值点置零

4)使用双阈值检测和连接边缘

I=im2double(rgb2gray(imread(‘106.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
BW=edge(I,‘canny‘);
figure,imshow(BW),title(‘Canny边缘检测‘);



频域高通滤波

由于图像边缘对应于高频分量,因此图象锐化可采用高通滤波器,关键之处为选择合适的高通滤波系统传递函数 H(u,v)

1)理想高通滤波器

2)巴特沃斯高通滤波器

3)指数高通滤波器

时间: 2024-10-10 22:23:14

图像锐化的相关文章

中值滤波与图像锐化

本文主要包括以下内容 中值滤波及其改进算法 图像锐化, 包括梯度算子.拉普拉斯算子.高提升滤波和高斯-拉普拉斯变换 本章的典型囊例分析 对椒盐噪声的平滑效果比较 Laplacian与LoG算子的锐化效果比较 中值滤波 中值滤波本质上是一种统计排序滤波器. 对于原图像中某点(i,j), 中值滤波以该点为中 心的邻域内的所有像素的统计排序中值作为(i, j) 点的响应. 中值不同于均值, 是指排序队列中位于中间位置的元素的值,例如=采用3x3 中值滤披 器, 某点.(i,j) 的8 个邻域的一系列像

彩色图像--图像增强 图像锐化

学习DIP第72天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 今天写的博客有点多,因为这里的理论只是在前面已经详细介绍过了,所以多写点,好有时间来学习模式分类和图像特征点部分,请大家多多指教. 算法说明 彩色图像锐化用到的算法还是灰度图像中所用的算法,在彩色图像中的应用可以直接对RGB三通道分别锐化然

图像锐化与直方图均衡化

图像锐化和直方图均衡化虽然效果上都是增强对比度的,都是图像增强,但是还是有一些区别的. 图像锐化 图像锐化是突出图像的边缘(高频部分),增强边界像素的对比度,使边缘处像素黑的更黑,白的跟白 因此简单的锐化就是      原图像 + 边缘图像*系数 锐化的模板的所有系数相加要等于1 比如可以使用模板 或者 其中可以简单的看成是8领域的拉普拉斯算子的边缘图+原图,因为中心系数加1表示加上了原图的像素值.所以该模板就等于原图像 + 边缘图像*1 直方图均衡化 在我的博客http://blog.csdn

数字图像处理,图像锐化算法的C++实现

http://blog.csdn.net/ebowtang/article/details/38961399 之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度, 就变成了模糊. 今天我们反其道行之, 我们看看锐化是怎么做的. 这里的锐化, 还是的从平滑谈开去.我们先来观察原来的图像和平滑图像的区别: 原图 raw: 模糊图 blur: _________________________________________________________ 源图

【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑.高斯平滑.不同算子的图像锐化知识.希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生. [数字图像处理]一.MFC详解显示BMP格式图片 [数字图像处理]二.MFC单文档分割窗口显示图片 [数字图像处理]三.MFC实现图像灰度.采样和量化功能详解 [数字图像处理]四.MFC对话框绘制灰度直方图 [数字图像

图像的锐化

1.图像锐化概念原理 图像锐化是一种突出和加强图像中景物的边缘和轮廓的技术.图像锐化的本质是增加邻域间像素的差值,使图像的突变部分变得更加明显. 图像的卷积计算除了可以完成模糊去噪.边缘检测等任务外,还可以实现图像锐化/增强的功能.一般也通过Laplacian滤波加原图权重像素叠加锐化空间滤波器用来增强图像的突变信息,图像的细节和边缘信息. 补充:低通滤波器和高通滤波器 平滑滤波器主要是使用邻域的均值(或者中值.积分)来代替模板中心的像素,消弱和邻域间的差别,以达到平滑图像和抑制噪声的目的:模糊

图像算法---基于局部均值的锐化算法研究

图像锐化算法是图像处理中经常用到的基础算法,在Photoshop中,使用的是USM锐化,但是这种锐化速度比较慢,今天,介绍一种很简单的锐化算法:基于均值滤波的锐化算法. 本文要介绍的这个算法,来源于论文<Digital image enhancement and noise fitering by using local statistics>. 算法过程如下: 1,计算窗口范围内的均值: 其中公式(1)为均值计算公式 ,公式(2)为方差计算公式,公式(2)暂时没有用到. 2,锐化公式: 2.

图像卷积与滤波

一.线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果.做法很简单.首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像.然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值.这样就完成了滤波过程. 对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关.卷积和协相关的差别是,卷积

灰度图像--图像增强 锐化基础

学习DIP第33天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro