空间域锐化滤波器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cjsh_123456/article/details/79265730

关于图像锐化

图像锐化的目的是突出图像中突出灰度的过渡部分,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。图像的模糊主要通过积分来实现(均值与积分类似),而图像的锐化处理可由空间微分来实现。本文主要介绍3中方法:拉普拉斯算子(二阶微分)、非锐化掩蔽、一阶微分(包括罗伯特交叉梯度算子和Soble算子)。不涉及这些方法的推导。

拉普拉斯算子(线性):

拉普拉斯算子的应用强调的是图像中灰度的突变,并不强调灰度级缓慢变化的区域。

对90°增幅的结果各向同性的模板。            对45°增幅的结果各向同性的模板

               


非锐化掩蔽和高提升滤波

步骤1:模糊原图像;步骤2:从原图像中减去模糊图像,差值图像称为模板
步骤3:原图像加上模板得到锐化图像。
步骤3中相加时模板有一个参数k(k≥0),k = 1时就是非锐化掩蔽,k>1时称为高提升滤波,k<1时,则不强调非锐化模板的贡献。k越大对细节增强越明显。

拉普拉斯算子和非锐化掩蔽的代码及运行结果如下:

close all;
clear all;
clc;

image = imread('1.bmp');

% 拉普拉斯90度各向同性模板
A = [0,-1,0;-1,4,-1;0,-1,0];
% 拉普拉斯45度各向同性模板
B = [-1,-1,-1;-1,8,-1;-1,-1,-1];
% 利用拉普拉斯算子锐化图像
temp1 = filter2(A, double(image));
temp2 = filter2(B, double(image));
image2 = uint8(double(image) + temp1);
image3 = uint8(double(image) + temp2);

% 非锐化掩蔽
mean_filter = ones(3, 3) / 9;
temp3 = filter2(mean_filter, image);
diff = double(image) - double(temp3);
image4 = uint8(double(image) + diff);

figure;
subplot(1, 4, 1), imshow(image), title('原图像');
subplot(1, 4, 2), imshow(image2), title('普通拉普拉斯锐化图像');
subplot(1, 4, 3), imshow(image3), title('带对角拉普拉斯锐化图像');
subplot(1, 4, 4), imshow(image4), title('非锐化掩蔽图像');
结果如下:


一阶微分对图像进行锐化


罗伯特(Roberts)算子:

Sobel算子:

Sobel算子系数对应的模板如下:


Roberts算子和Sobel算子计算得到的梯度图像M(x, y)展示的是原图像的边缘。

猜你喜欢

转载自blog.csdn.net/cjsh_123456/article/details/79265730