数字图像处理笔记-02(图像空域增强技术及联合运用)

数字图像处理笔记-02(图像空域增强技术及联合运用)

(一) 图像增强

1.1 基本概念

由于图像在传输或者处理过程中会引入噪声或使图像变模糊,从而降低了图像质量,甚至淹没了特 征,给分析带来了困难。 所以图像增强是要突出图像中的某些信息,同时削弱或去除某些不需要信息 的一种处理方法,以得到对具体应用来说视觉效果更“好”,或更“有用”的图像的技术。

图像增强的基本方法主要有:

  1. 空间域处理:对图像像素直接处理 如:
  • 点处理(图像灰度变换);
  • 直方图均衡化;
  • 领域处理(线性、非线性平滑和锐化等)
  1. 频域处理 :修改图像的傅里叶变换 如:高、低通滤波、同态滤波等

1.2 空间域处理

空间域方法是直接对像素进行操作的过程,定义:g(x,y)=T[f(x,y)]
T 是对 f 的一种操作,其定义在(x,y)邻域。邻域可以为正方形、矩形和圆形,则称为模板处理或滤波。邻域为单个像素,则称为点运算,如亮度调整、对比度拉伸、灰度级切片。
在这里插入图片描述
为简便起见,令 r 和 s 所定义的变量 , 分别是 f ( x,y ) 和 g ( x,y ) 在任意点 ( x,y ) 的灰度级, 则 T 操作成为灰度级变换函数,形式为:s = T ( r );

(二)基本灰度变换

在这里插入图片描述

2.1 灰度反转: s =L -1- r

用这种方式倒转图像的强度,可以产生图像反转的对等图像; 用途:反转变换适用于增强嵌入于图像暗色区域的白色或灰色细节 , 特别是当黑色面积占主导地位时。

2.2 对数变换

表达式为: s = c log( 1 + r );
c 是一个常数,假设 r ≥0使一窄带低灰度输入图像值映射为一宽带输出值,使低灰度范围得以扩展,高灰度范围得以压缩 作用:将暗的部分扩展,而亮的部分抑制。 用途:可以用于扩展图像中的暗像素;

2.3 幂次变换

表达式为:s=c*r^γ(其中 c 和γ为正常数)
幂次曲线中的γ值决定了是把输入窄带暗值映射到宽带输出值还是把输入窄带亮值映射到宽带输出。
其中 c 和 γ 为正常数。幂律方程中的指数称为伽马(γ),用于校正这些幂律响应现象的处理称为伽马校正。 有时考虑到偏移量(即输入为 0 时的一个可度量输出),公式也可写为 s = c(r + ε)γ
①当γ<1 时,该变换将低灰度值(暗值)进行拉伸,提高灰度级,使图像变亮
②当γ>1 时,改变换将高灰度值(亮值)进行拉伸,降低灰度级,使图像变暗
在这里插入图片描述
用途:幂次变换用于对比度增强

2.4 分段线性变换函数

如:对比度拉伸 由于照明不足、成像传感器动态范围小或者在图像获取过程中镜头光圈设置错误引起的低对比度, 可以进行对比度拉伸来扩展图像灰度级动态范围。

(三)直方图处理

  • 直方图: h(rk ) = nk 其中:rk∈[0=L-1]–灰度级;nk灰度级为 rk 的像素个数;
  • 归一化直方图:在这里插入图片描述
    pr (rk)为原始图像灰度分布的概率密度函数

3.1 直方图均衡化处理

直方图均衡化是一种简单有效的图像增强技术,通过改变图像的直方图来改变图像中各像素的灰 度,主要用于增强动态范围偏小的图像的对比度。原始图像由于其灰度分布可能集中在较窄的区间,造 成图像不够清晰。
例如,过曝光图像的灰度级集中在高亮度范围内,而曝光不足将使图像灰度级集中在 低亮度范围内。采用直方图均衡化,可以把原始图像的直方图变换为均匀分布(均衡)的形式,这样就 增加了像素之间灰度值差别的动态范围,从而达到增强图像整体对比度的效果。
换言之,直方图均衡化的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素 个数少的灰度值(即对画面不起主要作用的灰度值)进行归并,从而增大对比度,使图像清晰,达到增 强 的 目 的 。
举 个 例 子 , 如 图 1 所 示 , 左 图 为 原 始 图 像 , 右 图 为 直 方 图 均 衡 化 后 的 图 像 。
在这里插入图片描述

3.1.1 直方图的概念

对一幅灰度图像,其直方图反映了该图像中不同灰度级出现的统计情况。图 2 给出了一个直方图的 示例,其中图(a)是一幅图像,其灰度直方图可表示为图(b),其中横轴表示图像的各灰度级,纵轴表示图 像中各灰度级像素的个数。(需要注意,灰度直方图表示了在图像中各个单独灰度级的分布,而图像对 比度则取决于相邻近像素之间灰度级的关系。)
在这里插入图片描述
在 MATLAB 中可以使用函数 imhist()来计算灰度图像的直方图。我们计算一下图 1 中左图的灰度直 方图,结果如图 3 所示。

I = imread('pout.tif'); 
figure; 
subplot(121), imshow(I); 
subplot(122), imhist(I); 
axis([0, 256, 0, 4000]);

在这里插入图片描述
我们以图 1 中左图为例,计算其归一化的直方图,结果如图 4 所示。

I = imread('pout.tif'); 
N = numel(I); % 求图像像素的总数 
Pr = imhist(I) / N; 
k = 0 : 255;

在这里插入图片描述

3.1.1 MATLAB 上实现直方图均衡化

在 MATLAB 中提供了现成的函数 histeq()来实现灰度图像的直方图均衡化,如下例所示:

close all; 
clear; 
clc; 
I = imread('pout.tif'); 
J = histeq(I,256); 
imshowpair(I,J,'montage');

在这里插入图片描述

3.1.3 直方图均衡化的缺点

如果一幅图像整体偏暗或者偏亮,那么直方图均衡化的方法很适用。但直方图均衡化是一种全局处 理方式,它对处理的数据不加选择,可能会增加背景干扰信息的对比度并且降低有用信号的对比度(如 果图像某些区域对比度很好,而另一些区域对比度不好,那采用直方图均衡化就不一定适用)。
此外,均衡化后图像的灰度级减少,某些细节将会消失;某些图像(如直方图有高峰),经过均衡 化后对比度不自然的过分增强。针对直方图均衡化的缺点,已经有局部的直方图均衡化方法出现。

(四)领域处理

4.1 空间域滤波基础

空间域图像增强是基于图像中每个小范围(邻域)内的像素进行灰度变换运算,某个点变换之后的 灰度由该点邻域之内的那些点的灰度值共同决定,因此空间域增强也称为邻域运算或邻域滤波。
(1)图像的平滑、锐化都是利用掩模操作来完成的。通过掩模操作实现一种邻域运算,待处理像 素点的结果由邻域的图像像素以及相应的与邻域有相同维数的子图像得到。这些子图像被称为滤波器、 掩模、核、模板或窗口;
(2)掩模运算的数学含义是卷积(或互相关)运算;
(3)掩模子图像中的值是系数值,而不是灰度值;

4.1.1 空间域滤波

(1)滤波:是信号处理中的一个概念,是将信号中特定波段频率滤除的操作,在数字信号处理中 通常通过傅里叶变换及其逆变换实现。
(2)边界处理:执行滤波操作要注意的一点是当模板位于图像边缘时,会产生模板的某个元素很 可能位于图像之外的情况,这时对于在边缘附近执行滤波操作需要单独处理,以避免引用到不属于图像 的无意义的值。
(3)解决边界问题的方法:
①收缩处理范围:处理时忽略位于图像 f 边界附近会引起问题的那些点;
②使用常数填充图像:根据模板形状为图像 f 虚拟出边界,虚拟边界像素值为指定的常数,如 0, 得到虚拟图像 f1,保证模板在移动过程中始终不会超过 f1 边界;
③使用复制像素的方法填充图像:和(2)基本相同,只是用来填充虚拟边界像素值的不是固定的 常数,而是复制图像 f 本身边界的模式。

4.1.2 滤波函数

(1)imfilter()原型如下
g=imfilter(f,w,option1,option2,…)

  • f 是要进行滤波操作的图像 w 时滤波操作所使用的模板,为一个二维数组 ;
  • option1,option2,…是可选项,具体可以包括以下内容:边界选项、尺寸选项、模式选项
    Matlab 实现:
f=imread('pout.tif');%读入图像 
imshow(f); w=[1 1 1;1 1 1;1 1 1]/9 %滤波模板 
g=imfilter(f,w,'corr','replicate');%滤波 
figure,imshow(g);

(2)二维滤波器 fsspecial()原型如下:
** h=fspecial(type,parameters)**

  • type:指定了滤波器的类型
    在这里插入图片描述
    可选输入 parameters:是和所选定的滤波器类型 type 相关的配置参数,如尺寸和标准差等,如果不 提供则函数使用该类型的默认参数配置
    返回时 h:为特定的滤波器

4.2 图像平滑

4.2.1 平滑线性滤波器

定义:图像平滑是一种可以减少和抑制图像噪声的使用数字图像处理技术,在空间域中一般可以采 用邻域平均来达到平滑的目的。
原理:用包含在滤波掩模邻域内的像素的平均灰度值去代替每个像素点的值。又叫:均值滤波器
在这里插入图片描述
matlab 实现

I=imread('D:\matlab r2019a\bin\数字图像处理 matlab 版\MATLAB 课本各章图片(冈萨雷 斯)\dipum_images_ch04\Fig0413(a)(original_test_pattern).tif'); figure,subplot(141);imshow(I);title('原图')%原图 
h=fspecial('average',3);%3x3 平均模板 
I3=imfilter(I,h,'corr','replicate');%相关滤波,重复填充边界
subplot(142),imshow(I3);title('3x3 平均滤波后图像') 
h=fspecial('average',5)%5x5 平均模板 
I5=imfilter(I,h,'corr','replicate'); 
subplot(143),imshow(I5);title('5x5 平均滤波后图像') 
h=fspecial('average',7);%7x7 平均模板 
I7=imfilter(I,h,'corr','replicate'); 
subplot(144),imshow(I7);title('7x7 平均滤波后图像 ')

在这里插入图片描述

4.2.2 高斯平滑

  • 高斯平滑定义:平均平滑对于邻域内的像素一视同仁,为了减少平滑处理过程中的模糊,得到更自 然的平滑效果,很自然的想到适当加大模板中心点的权重,随着距离中心点的距离增大,权重迅速减小, 从而可以确保中心点看起来更接近于与它距离更近的点,基于这样的考虑得到的模板即为高斯模板。
    matlab 实现:
I=imread('baby_noise.bmp'); 
subplot(2,3,1),imshow(I),title('原图像'); 
h3_5=fspecial('gaussian',3,0.5);%sigma=0.5 的 3x3 高斯模板
I3_5=imfilter(I,h3_5); 
subplot(2,3,2),imshow(I3_5),title('3x0.5'); 
h3_8=fspecial('gaussian',3,0.8);%sigma=0.8 的 3x3 高斯模板 
I3_8=imfilter(I,h3_8); 
subplot(2,3,3),imshow(I3_8),title('3x0.8'); 
h3_18=fspecial('gaussian',3,1.8);%sigma=1.8 的 3x3 高斯模板,接近于平均模板 
I3_18=imfilter(I,h3_18); 
subplot(2,3,4),imshow(I3_18),title('3x1.8'); 
h5_8=fspecial('gaussian',5,0.8);%sigma=0.8 的 3x3 高斯模板
I5_8=imfilter(I,h5_8); 
subplot(2,3,5),imshow(I3_8),title('5x0.8'); 
imwrite(I5_8,'baby5_8.bmp'); 
h7_12=fspecial('gaussian',7,1.2);%sigma=0.8 的 3x3 高斯模板 
I7_12=imfilter(I,h7_12); 
subplot(2,3,6),imshow(I7_12),title('7x1.2'); 
imwrite(I7_12,'baby7_12.bmp');

在这里插入图片描述

4.3 中值滤波

  • 定义:中值滤波本质上是一种统计排序滤波器。中值是指排序队列中位于中间位置的元素的值

  • 主要功能:使拥有不同灰度的点看起来更接近于它的邻近值。

  • 性能比较: 中值滤波对于某些类型的随机噪声具有非常理想的降噪能力,能够有效去除脉冲噪声:以黑白点叠 加在图像上;对于线性平滑滤波而言,在处理的像素邻域之类包含噪声点时,噪声的存在总会或多 或少影响该点像素值的计算(对于高斯平滑,影响程度同噪声点到中心点的距离成正比),但在中值滤波中,噪声点则常常是直接被忽略掉的,在去除噪音的同时,可以比较好地保留边的锐度和图像的细节 (优于均值滤波器);而且同线性平滑滤波器相比,中值滤波在降噪的同时引起的模糊效应较低。中值 滤波的一种典型应用是消除椒盐噪声。

  • 算法:先将掩模内欲求的像素及其领域的像素值排序(升序或降序),确定出中值,并将中值赋予该像素点。

  • 噪声模型
    ①图片加噪声 J=imnoise(I,type,parameters)
    type:噪声类型
    ②中值滤波原型:
    I2=medfilt2(I1,[m,n])
    I1 是原图矩阵
    m 和 n 是中值滤波处理的模板大小,默认 3x3
    输出 I2 是中值滤波后的图像矩阵
    matlab 实现:

I=imread('D:\matlab r2019a\bin\数字图像处理 matlab 版\MATLAB 课本各章图片(冈萨雷 斯)\dipum_images_ch05\girl.jpg'); 
subplot(2,3,1),imshow(I),title('原图像'); 
I = rgb2gray(I); 
subplot(2,3,2),imshow(I),title('灰度图'); 
J=imnoise(I,'salt & pepper'); %为图像叠加椒盐噪声 
subplot(2,3,3),imshow(J),title('原图像叠加椒盐噪声'); 
w=[1 2 1;2 4 2;1 2 1]/9; 
J1=imfilter(J,w,'corr','replicate');%高斯平滑 
subplot(2,3,4),imshow(J1),title('高斯平滑'); 
w=[1 1 1;1 1 1;1 1 1]/9; 
J2=imfilter(J,w,'corr','replicate');%平均平滑 
subplot(2,3,5),imshow(J2),title('平均平滑'); 
J3=medfilt2(J,[3,3]);%中值滤波 
subplot(2,3,6),imshow(J3),title('中值滤波');

在这里插入图片描述

4.4 空间锐化滤波器

锐化处理的目的:是突出图像中的细节或者增强被模糊了的细节。
锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域。我们最感兴趣的是微分算子在①恒定灰度 区域(平坦段)、②突变的开头与结尾(阶梯与斜坡突变)以及③沿着灰度级斜坡处的特性
在这里插入图片描述
(1)对于一阶微分必须保证: 平坦段微分值为零 在灰度阶梯或斜坡的起点处微分值非零 沿着斜坡面微分值非零 ;
(2)对于二阶微分必须保证: 在平坦区微分值为零 在灰度阶梯或斜坡的起始点处微分值非零 沿着斜坡面微分值为零。

一阶微分和二阶微分的区别:
(1)一阶微分处理通常会产生较宽的边缘 ;
(2)二阶微分处理对细节有较强的响应,如细线和孤立点 ;
(3)一阶微分处理一般对灰度阶梯有较强的响应;
(4)二阶微分处理对灰度级阶梯变化产生双响应 ;
(5)二阶微分在图像中灰度值变化相似时,对线的响应要比对阶梯强,且点比线强.。
大多数应用中,对图像增强来说,二阶微分处理比一阶微分好,因为形成细节的能力强.。而一阶微分处理主要用于提取边缘。

4.4.1 基于一阶微分的图像增强—— 梯度算子(图像锐化)

(1)Prewitt 梯度算子:
在这里插入图片描述
(2)Sobel 梯度算子:
在这里插入图片描述
使用权重 2 的目的:突出中心点的作用以达到平滑的目的
(3)Robert 交叉梯度算子:
在这里插入图片描述
微分掩模的所有系数之和为 0 保证了灰度恒定区域的响应为 0(微分算子要求的)
作用:①突出小缺陷;②去除慢变化背景;

梯度算子经常用于工业检测、辅助人工检测缺陷,或者是更为通用的自动检测的预处理。
Robert 交叉梯度图像锐化
matlab 实现

I=imread('D:\matlab r2019a\bin\数字图像处理 matlab 版\MATLAB 课本各章图片(冈萨雷斯)\dipum_images_ch05\rice.tif');
subplot(2,2,1),imshow(I),title('原图像');
I=double(I);%转换为 double 型,这样可以保存负值,否则 unite8 型会把负值截掉
w1=[-1 0;0 1];
w2=[0 -1;1 0];
G1=imfilter(I,w1,'corr','replicate'); 
G2=imfilter(I,w2,'corr','replicate'); 
G=abs(G1)+abs(G2);%计算 Robert 梯度
subplot(2,2,2),imshow(G,[]),title('Robert 交叉梯度图像');
subplot(2,2,3),imshow(abs(G1),[]),title('w1 滤波后取绝对值并重新标定');
subplot(2,2,4),imshow(abs(G2),[]),title('w2 滤波后取绝对值并重新标定');

在这里插入图片描述

4.4.2基于二阶微分的图像增强——拉普拉斯算子

拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变化的区域。这将产生一幅把浅灰色边线、突变点叠加到暗背景中的图像。
在这里插入图片描述

将原始图像和拉普拉斯图像叠加在一起的简单方法可以保护拉普拉斯锐化处理的效果,同时又能复原背景信息。因此拉普拉斯算子用于图像增强的基本方法如下:
在这里插入图片描述
在这里插入图片描述
作用:①增强灰度突变处的对比度;
MATLAB 实现

f=imread('moon.tif'); 
w4=fspecial('laplacian',0) 
w8=[1 1 1;1 -8 1;1 1 1]
f=im2double(f);
g=imfilter(f,w4,'replicate');%未标定拉普拉斯算子滤波; 
figure(1),imshow(g);
g4=f-g;%原图加上拉普拉斯变换过的图,因为拉普拉斯运算中心是负号; 
g8=f-imfilter(f,w8,'replicate');%  标定拉普拉斯算子滤波 ; 
figure(2),imshow(f);
figure(3),imshow(g4);
figure(4),imshow(g8)

在这里插入图片描述
在这里插入图片描述
拉普拉斯算子对于接近水平和接近竖直方向的边缘都有很好的增强,从而也就避免读者在使用梯度算子时要进行两次滤波的麻烦。

4.5高提升滤波及其实现

原理:无论基于一阶微分的 Robert、sobel 模板还是基于二阶微分的拉普拉斯模板,其中各系数和均为零。这说明算子在灰度恒定区域的响应为 0,即在锐化处理后的图像中,原图像的平滑区域近乎于黑色,而原图中所有的边缘、细节和灰度跳变点都作为黑色背景中高灰度部分突出显示。在基于锐化的图像增强中常常希望在增强边缘和细节的同时仍然保留原图像中的信息,而不是将平滑区域的信息丢失。因此可以把原图像加上锐化后的图像得到比较理想的结果。

注意:具有正的中心系数和具有负的中心系数的模板之间的差别,对于中心系数为负的模板,要达到上述的增强效果,显然应当让原图像 f(i,j)减去锐化算子直接处理后的图像。为正的模板就加。

4.6高斯——拉普拉斯变换

matlab 实现:

I=imread('baby.bmp'); 
subplot(2,2,1),imshow(I),title('原图像');
Id=double(I);
h_lap=[-1 -1 -1;-1 8 -1;-1 -1 -1]%拉普拉斯算子
I_lap=imfilter(Id,h_lap,'corr','replicate');
subplot(2,2,2),imshow(uint8(abs(I_lap)),[]),title('Laplacian 锐化图像,噪声较明显');%取绝对值,并将255 以上的响应截断
h_log=fspecial('log',5,0.5);%大小为 5,sigma 为 0.5 的 LoG 算子I_log=imfilter(Id,h_log,'corr','replicate'); 
subplot(2,2,3),imshow(uint8(abs(I_log)),[]),title('经 LoG 处理后的图像,sigma=0.5'); 
h_log=fspecial('log',5,2);
I_log=imfilter(Id,h_log,'corr','replicate');
subplot(2,2,4),imshow(uint8(abs(I_log)),[]),title('经 LoG 处理后的图像,sigma=2');

在这里插入图片描述

(五)将下列图,运用综合的图像的空间域增强进行增强,以方便医生观察骨骼情况

在这里插入图片描述
观原图像是人体骨骼核扫描图像,我们的目的是通过图像锐化突出骨骼的更多细节来增强图像。由于图像灰度的动态范围很窄并且有很高的噪声内容,所以很难对其进行增强。
对此我们采取的策略是,首先用拉普拉斯法突出图像中的小细节,然后用梯度法突出其边。平滑过的梯度图像将用于掩蔽拉普拉斯图像。最后,我们将试图试用灰度变换来增强图像的灰度动态范围。
在这里插入图片描述

%骨骼图像增强
clear all;clc;
im=imread('D:\matlab r2019a\bin\数字图像处理matlab 版\MATLAB 课本各章图片(冈萨雷斯)\dipum_images_ch03\Fig0306(a)(bone-scan-GE).tif'); 
im=im2double(im);
%---原始图像
subplot(2,4,1); 
imshow(im);
title('1:原始图像');
%---为图 2,使用模板为[-1,-1,-1;-1,8,-1;-1,-1,-1]的滤波器对原图像进行拉普拉斯操作,为了便于显示,对图像进行了标定,这一步先对图像进行初步的锐化滤波。
subplot(2,4,2);
h=[-1,-1,-1;-1,8,-1;-1,-1,-1];
im1=imfilter(im,h); 
imshow(im1);
title('2:拉普拉斯操作后图像');
%---3,由于使用的模板如上,让常数 c=1,简单的将原图和图 2 相加就可以得到一幅经过锐化过的图像。
subplot(2,4,3); 
im2=im+im1; 
imshow(im2)
title('3:1 图和 2 图相加后图像');
%---4,对原图像试用 Sobel 梯度操作,分量gx 为[-1,-2,-1;0,0,0;1,2,1],而分量gy 为[-1,0,1;-2,0,2;-1,0,1]的模板
subplot(2,4,4);
hx=[-1,-2,-1;0,0,0;1,2,1];%生产sobel 垂直梯度模板
hy=[-1,0,1;-2,0,2;-1,0,1];%生产sobel 水平梯度模板
gradx=filter2(hx,im,'same'); gradx=abs(gradx);%计算图像的sobel 垂直梯度grady=filter2(hy,im,'same'); grady=abs(grady);%计算图像的sobel 水平梯度
im3=gradx+grady;%得到图像的sobel 梯度
imshow(im3,[]);
title('4:1 图sobel 梯度处理后图像');
%?---5,使用大小为 5*5 的一个均值滤波器得到平滑后的Sobel 梯度图像。
subplot(2,4,5); 
h1=fspecial('average',5); 
im4=imfilter(im3,h1); 
imshow(im4);
title('5:使用 5*5 均值滤波器平滑后的 sobel 图像');
%?--6,将拉普拉斯图像(即图 3)与平滑后的梯度图像(即图 5)进行点乘。
subplot(2,4,6);
%?im5=immultiply(im2,im4); 
im5=im2.*im4;  
imshow(im5);
title('6:3 图和 5 图相乘相乘的掩蔽图像');
%?--7,将乘积图像(即图 6)与原图像相加就产生一幅需要的锐化图像。
subplot(2,4,7);
im6=im+im5; 
imshow(im6);
title('7:1 图和 6 图求和得到的锐化图像');
%--8,我们希望扩展灰度范围,对图 7 进行幂率变换处理,r=0.5,c=1,然后即可对图像进行幂率变换
subplot(2,4,8); 
gamma=0.5;  
c=1;
im7=c.*im6.^gamma; 
imshow(im7);
title('8:图 7 进行幂率变换后的最终图像');

在这里插入图片描述
1、 此为图 2,使用模板为[-1,-1,-1;-1,8,-1;-1,-1,-1]的滤波器对原图像进行拉普拉斯操作, 为了便于显示,对图像进行了标定,这一步先对图像进行初步的锐化滤波。
2、 此为图 3,由于使用的模板如上,让常数 c=1,简单的将原图和图 2 相加就可以得到一幅经过锐化过的图像。
(而这个时候看到图 2 的噪声水平,将图 1 和图 2 相加之后也必然会有很多的噪声。拉普拉斯操作作为一种二阶微分算子,能很好的增强细节,但也产生更多的噪声。
而降低噪声的一种方法就是使用中值滤波器,但属于非线性滤波器的中值滤波器有可能改变图像的性质,所以不可取。所以采取另一种方法,使用原图像梯度操作的平滑形式所形成的一个模板。)
3、 此为图 4,对原图像试用 Sobel 梯度操作,分量 gx 为[-1,-2,-1;0,0,0;1,2,1],而分量 gy 为[-1,0,1;-2,0,2;-1,0,1]的模板。
(梯度变换在灰度斜坡或台阶的平均相应要比拉普拉斯操作的更强烈,而对噪声和小细节的响应要比拉普拉斯操作的相应弱,而且可以通过均值滤波器对其进行平滑处理可以进一步降低, 此时看图像中的边缘要比拉普拉斯图像(即图 3)中的边缘要突出许多)
4、 此为图 5,使用大小为 5*5 的一个均值滤波器得到平滑后的 Sobel 梯度图像。
(图 4,5 要比图 2 亮表明具有重要边缘内容的梯度图像的值一般要比拉普拉斯图像的值高)
5、 此为图 6,将拉普拉斯图像(即图 3)与平滑后的梯度图像(即图 5)进行点乘。
(此时看到强边缘的优势和可见噪声的相对减少,用平滑后的梯度图像来掩蔽拉普拉斯图像的目的达到了)
6、 此为图 7,将乘积图像(即图 6)与原图像相加就产生一幅需要的锐化图像。
(与原图像相比,该图像中大部分细节的清晰度的增加都很明显,所以我们才需要综合多种的方法对图像进行处理,单独使用一种方法根本不可能达到这么好的效果,只需要看相对应的图像进行对比即可知道)
7、 此为图 8,我们希望扩展灰度范围,对图 7 进行幂率变换处理,r=0.5,c=1,然后即可对图像进行幂率变换
(此时需要增大锐化后图像的动态范围,即使有很多种这样效果的灰度变换函数,但是用幂率变换处理更好,直方图均衡和规定化的效果都不太好)

此时人体的轮廓的清晰度虽然还是不高,因为扩大的灰度动态范围的同时也增大了噪声,但是相比原图还是有相当大幅度的提高的。

ps:以上是在学习数字图像处理课程时的笔记和一些运行程序,有些后期整理的时候参考了一些资料,具体源自于哪里有点遗忘了,侵删。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值