Matlab图像处理—锐化滤波器
锐化滤波器
锐化处理的主要目的是,突出灰度的过渡部分,增强图像中的细节。空间域像素邻域*均法可以使图像变模糊,均值处理与积分类似,所以锐化处理可以用空间微分(差分)来完成。
对比模糊:
模糊(*滑)是去除图像的细节,均值处理。
锐化是突出图像的细节,微分(差分)处理。
锐化滤波器主要有两种锐化方法:
1. 使用二阶微分的图像锐化:拉普拉斯锐化
2. 使用一阶微分的图像锐化:梯度锐化
Part1. 拉普拉斯锐化
用算子产生的图像暗色背景叠加浅灰色边及突变点明显。
拉普拉斯算子锐化图像的后处理(背景和边缘):
由于拉普拉斯是一种微分算子,拉普拉斯图像强调原图中的灰度突变区域,衰减灰度变化慢区域,恒定区域变为0。
将原始图像和拉普拉斯图像叠加在一起的简单方法可以保护拉普拉斯锐化处理的效果,同时又能复原背景信息。所以适用拉普拉斯变换对图像锐化增强的基本方法可表示为:
插入介绍 图像的算术的操作:
就是阵列操作,图像可以等价的被看成是矩阵,包含一幅或多幅图像的,阵列操作是以逐个像素为基础执行的。算术操作如下:
图像算术操作涉及相同大小的图像。
回到拉普拉斯锐化
拉普拉斯算子是常用的边缘增强算子,是一种各向同性的线性运算(旋转不变性),这种滤波器的响应与滤波器作用的图像的突变方向无关,也就是各向同性滤波器是旋转不变的。
以90度为增量进行旋转各向同性。c的取值要合理,如果c过大,图像轮廓边缘会产生过冲;而过小,锐化效果就不明显。
另外,对角线也可以这样组成:在下式中添入两项,即两个对角线方向各加1个。由于每个对角线方向上的项还包含一个-2f(x,y),所以总共应减去-8f(x,y)。得到的新模板对450增幅的结果是各向同性的。如下所示
做一比对:
Part2. 梯度锐化
假设M(x,y)是与原图像大小相同的图,称为该图像的梯度图像,可简称为梯度。
梯度向量的分量是微分,是线性算子,但梯度的幅值不是线性算子,是做了*方和方根。
梯度的偏微分不是旋转不变的,梯度向量的幅值是旋转不变的。有时计算用绝对值来*似*方和方根。
这中方法保留了灰度的相对变化,但丢失了各向同向特性。
(1)离散情况下,对一阶微分的最简单的*似:
(2)交叉微分:
交叉梯度算子有一个缺陷:偶数尺寸不太容易实现。
(3)3×3*似:
Sobel算子:
则梯度幅值为:
示例效果图:
小结:
梯度锐化
去除变化慢的背景
在灰度*坦区域中增强细小的突变
突出灰度图像中看不见的斑点
拉普拉斯锐化
增强灰度突变处的对比度,形成细节比较好
大多数应用中,对图像增强来说二阶微分处理比一阶微分好,因为形成细节的能力强, 而一阶微分处理主要用于提取边缘。
示例:
matlab:
%%%锐化%%%%
f_average = fspecial(\'average\',[3 3])
f_sobel = fspecial(\'sobel\')
f_laplacian = fspecial(\'laplacian\',0)
A = mat2gray(imread(\'moon.tif\'));
B1 = imfilter(A,f_average);
B2 = imfilter(A,f_sobel);
B3 = imfilter(A,f_laplacian);
figure;
subplot(221);imshow(A);
subplot(222);imshow(B1);
subplot(223);imshow(B2);
subplot(224);imshow(-B3);
figure;
subplot(221);imshow(A);
subplot(222);imshow(A-B1);
subplot(223);imshow(A-B2);
subplot(224);imshow(A-B3);
%%选择图片%%
[file, path] = uigetfile({\'*.jpg\'; \'*.bmp\'; \'*.gif\'; \'*.png\' }, \'选择图片\');
A = imread([path, file]);
结果:
reference:
李卫军,肖宛昂,董肖莉,覃鸿老师《视觉信息处理及FPGA实现》课程等
越是憧憬,越要风雨兼程。