图像锐化

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

图像边缘分析

边缘定义为图像中亮度突变的区域,分为:细线型边缘、突变型边缘和渐变型边缘
1)突变型边缘位于图像中具有不同灰度值的相邻区域之间,对应于一阶导数的极值和二阶导数的过零点
2)细线型边缘对应于灰度变化曲线的极值,对应于一阶导数的过零点和二阶微分的极值点
2)渐进型边缘因变化缓慢,没有明确的边界点

一阶微分算子

一、梯度算子

图像处理中应用微分最常用的方法是计算梯度,梯度是方向导数取最大值的方向的向量
梯度定义为:
G[f(x,y)]= fxfy
用其幅度代替:
G[f(x,y)]=[(fx)2+(fy)2]12
为计算方便,也常用绝对值代替
G[f(x,y)]=|fx|+|fy|
最后用差分代替微分
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('锐化图像');

图像锐化_第1张图片
图像锐化_第2张图片
图像锐化_第3张图片

二、Robert算子

Robert算子是通过交叉求微分实现边缘检测
G[f(x,y)]=|f(x,y)f(x+1,y+1)|+|f(x+1,y)f(x,y+1)|
模板表示:
H1=[ 1001]

H1=[ 0110]
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锐化图像');

图像锐化_第4张图片
图像锐化_第5张图片

三、Sobel算子

Sobel算子是一种 3×3 模板下的微分算子,定义如下:
Sx=|f(x1,y+1)+2f(x,y+1)+f(x+1,y+1)| -
|f(x1,y1)+2f(x,y1)+f(x+1,y1)|
Sy=|f(x+1,y1)+2f(x+1,y)+f(x+1,y+1)| -
|f(x1,y1)+2f(x1,y)+f(x1,y+1)|
g=|Sx|+|Sy|
模板来表示:

Hx= 101202101

Hy= 121000121

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锐化图像');



图像锐化_第6张图片

四、Prewitt算子

Prewitt算子与Sobel算子思路类似,但模板系数不同
Sx=|f(x1,y+1)+f(x,y+1)+f(x+1,y+1)| -
|f(x1,y1)+f(x,y1)+f(x+1,y1)|
Sy=|f(x+1,y1)+f(x+1,y)+f(x+1,y+1)| -
|f(x1,y1)+f(x1,y)+f(x1,y+1)|
g=|Sx|+|Sy|
模板来表示:

Hx= 101101101

Hy= 111000111

%%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锐化图像');


图像锐化_第7张图片

二阶微分算子

拉普拉斯算子为二阶微分算子,定义如下:
2f=2fx2+2fy2
化简:
2f=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)
模板:
H1= 010141010

H1= 010141010

拉普拉斯算子对图像增强基本方法
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('拉普拉斯锐化图像');


图像锐化_第8张图片

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

高斯滤波和边缘检测

一、高斯函数

二、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)=2gx2+2gy2=1πσ4(x2+y22σ21)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*7LOG模板,标准差为1
R=imfilter(I,H);
edgeI=abs(R);
figure;
imshow(edgeI),title('LOG滤波图像');
sharpI=I+edgeI;
figure;
imshow(sharpI),title('LOG锐化图像');

图像锐化_第9张图片
图像锐化_第10张图片
图像锐化_第11张图片

三、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边缘检测');

图像锐化_第12张图片

频域高通滤波

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

你可能感兴趣的:(图像锐化)