第三章 空间域图像增强
第3章 空域图像增强技术

s T (r )
两个常用的灰度级变换函数:对照度拉伸和阈值函数
3.2 一些基本的灰度变换
3.2.1 负变换
S=L-1-r, 这里图像的灰度范围为[0, L-1]
3.2.2 对数变换
s c log(1 r ),r 0
其将使比较狭窄的低灰度级范围变得更宽,而较宽的高灰度级范围变得更窄, 同时能够压缩象素值变化范围很大的图像,使之象素值分布范围更小。
p(rk) 0.19 0.25 0.21 0.16 0.08 0.06 0.03 0.02
sk计算 0.19 0.44 0.65 0.81 0.89 0.95 0.98 1.00
sk舍入 1/7 3/7 5/7 6/7 6/7 1 1 1
例
3. 重新命名sk,归并相同灰度 级的象素数。
rk r0=0 r1=1/7 r2=2/7 r3=3/7 r4=4/7 r5=5/7 r6=6/7 r7=1
3.3.2 直方图匹配/规定(specification)
另外,直方图的规定没有什么规则可循。一般,可以根据特定的 增强任务,采用试错的方法来得到想要的直方图规定。
连续灰度的直方图原图
连续灰度的直方图规定
令P(r) 为原始图象的灰度密度函 数,P(z)是期望通过匹配的图象灰 度密度函数。对P(r) 及P(z) 作直方 图均衡变换,通过直方图均衡为 桥梁,实现P(r) 与P(z) 变换。
离散灰度级情况: 由(1)、(2)计算得两张表, 从中选取一对 vk, sj, 使 vk≈sj , 并 从两张表中查得对应的rj,zk。于 是,原始图象中灰度级为 rj 的所 有象素均映射成灰度级 zk 。最终 得到所期望的图象。
3.3.3 局部增强
前面所说的两种处理技术都是全局处理,用于整体增强。在某些情况下,用于增 强某个小区域细节的局部增强技术是需要的。局部增强其实就是基于邻域的空间 域操作(更详细的讨论在3.5节),前面的方法同样可以使用,但此时处理的是 一副图像中的某个子区域。 简单实例:
第三章 空域图像增强

•由于我们处理的是数字量,最大灰度级的变化是有 限的,变换发生的最短距离是在两个相邻像素之间. • 用差分定义一元函数 f ( x ) 一阶微分:
f f ( x 1) f ( x) (3.6 1) x ( f ( x) ——前向差分)
•用差分定义一元函数的二阶微分:
2 f f ( x 1) f ( x 1) 2 f ( x) (3.6 2) 2 x
灰度映射原理
映射函数:t = T(s)
灰度差增大,对比增强
第3章
3.1 灰度映射
灰度映射原理
由上可见,利用一个映射函数可将原始图像 中每个像素的灰度都映射到新的灰度。如果恰当 的设计映射函数的曲线形状就可以通过统一的运 算得到所需要的增强效果。
灰度映射的关键是根据增强要求设计映射函 数。
第3章
3.1 灰度映射
灰度统计直方图
直方图是图象的一种统计表达 直方图反映了图中灰度的分布情况 1-D的离散函数
提供了图象象素的灰度值分布情况
计算:
设置一个
有 L 个元素的数 组,对原图的灰 度值进行统计
3.2 直方图修正
直方图均衡化
主要用于增强动态范围偏小的图像的反差。 基本思想是把原始图的直方图变换为在整个灰度 范围内均匀分布的形式,增加了像素灰度值的动 态范围,从而达到增强图像整体对比度的效果
第3章
空域图像增强
3.1 灰度映射 3.2 图像运算
3.3 直方图修正
3.4 空域滤波
3.1 灰度映射
一幅灰度图像的视觉效果取决于该图像中各 个像素的灰度。灰度映射通过改变图像中所有或 部分像素的灰度来达到改善图像视觉效果的目的 。
第3章
3.1 灰度映射
第三章 空间域图像增强

当K增加时,在各个(x,y)位置上像素值的噪声 变化率将减少.意味着随着在图像均值处理中 (a) NGCC 3314星团对图像 噪声图像使用量的增加, g ( x) 越来越趋近于f(x,y) (b) 高斯噪声污染的图像 (c-f) 分别用8,16,64,128个带 噪声的图像取平均值的结果
3.5 空间滤波基础
(a)原图 (b)全局均衡化的结果 (c) 对每一个像素用7X7邻域局部增强均衡化的结果
3.4 用算术/逻辑操作增强
图像中的算术/逻辑操作主要以像素对像素为基础在两幅或多幅图像间进行.
逻辑:与、非、或
与操作
或操作
3.4 用算术/逻辑操作增强
图像中的算术/逻辑操作主要以像素对像素为基础在两幅或多幅图像间进行.
第三章
空间域图像增强
背景知识 基本灰度变换 直方图处理 算术/逻辑增强 空间滤波基础 平滑空间滤波器 锐化空间滤波器 混合空间增强法
图像增强的主要目标是处理图像,以便处理结果图像比原图像更适 合于特定的应用。 特定意味着增强方法针对特定的问题,不同的问题适合采用不同的 增强方法。 没有一个图像增强的统一理论,如何评价图像增强的结果好坏也没 有统一的标准。 主观标准:人 客观标准:结果 图像增强的方法分为两大类:空间域方法和频域方法。 “空间域”是指图像平面自身,这类方法是以对图像的象素直接处 理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。
对数变换 s c log(1 r )
幂次变换 s cr
对比拉伸 灰度切割 位图切割
3.2 基本灰度变换
反转变换 适于处理增强嵌入于图像暗色区域的白色或灰色细节,特别是当 黑色面积占主导地位时.
s L 1 r
灰度反转图像
第3章-图像增强(空间域)

ps(s)
面积 1
面积 2
1
1
0r
r 1
原图像的直方图
0
s
s 1
均衡后图像的直方图
问题归结为: 在 “面积 1 = 面积 2 ” 的前提下,给定 r ,求 s 应该是多少。 由于 ps(s)=1, 有:
s
r
r
1 ds 0
0
pr (r)dr
s 0 pr (r)dr
3.2
这就是我们需要的变换关系式
其中: k b a , c a k a ba
若 k >1,对比度拉伸,若 k <1,对比度压缩。 b’
注意: if ( g ( x, y)<0) g(x,y)=0;
0
a
if ( g ( x, y)>255) g(x,y)=255;
f b
例:线性变换举例
原图像及直方图,灰度范围约为 0 ~ 30, 取a=0, b=30
部分频率,以达到增强图像的目的。运算较复杂。
两种方法各有特点,都是图像处理与分析中的重要方法。本章将讨 论空间域增强法。频率域增强法将在下一章详细讨论。
此外,还有彩色增强、代数运算等方法。主要用于标示特定的目标, 引起注意。本课程不作讨论。
图像在空间域上的表示
像素的值是空间坐标的函数。在直角坐标系中,一幅图像可表示为: f ( x , y ) , 0≤x<M, 0≤y<N
s
r
0 ps (s)ds 0 pr (r)dr
3.1
上式表明,对于原直方图上的任一点 r ,要求在新直方图上找到一点 s ,使: pr(r) 在[ 0, r ]区间的面积 = ps(s) 在[ 0, s ]区间的面积
3.1 式的几何解释:
第3章空间域图像增强1——点、直方图处理

(3) 位图切割
• 可以对特定位提高亮度。 • 分析每一位在图像中的相对重要性
—— 量化位数是否充足
数字图像处理
图3.9 8比特图像的位平面表示
数字图像处理
图3.10 8比特图 像的不同位平面 图片 (a) 256级灰度图 (b)~(i) 最高位到 最低位(0位) 的位平面图
较高阶(特别 是前四位)包含 大多数在视觉上 很重要的数据。
p(rk)=nk /n
n为图像像素的总数
p(rk)给出了灰 度级为rk发生的概 率估计值。
• 图像直方图反映了 图像的基本灰度级 特征(暗、亮、低 对比度和高对比 度)。
数字图像处理
数字图像处理
• 从概率的观点来理解,灰度出现的频率可看作其出现 的概率,这样直方图就对应于概率密度函数pdf (probability density function),而概率分布函数就是直方 图的累积和,即概率密度函数的积分。如下图所示:
• 两个基本方法:
– 在所关心的范围 内为所有灰度指定 一个较高值,其他 地方指定一个较低 值。如图(c)(产生 一个二进制图像。
– (b)是(a)使用(c)变 换的结果。
– 将所需范围的灰度 变亮,保持图像背 景和灰度色调。如 图(d)。
数字图像处理 (a) (b) (c) (d)
图3.8 图像灰度切割示例
(a)(b) (c)(d)
图3.6 压缩灰度 实例, > 1
(a)航空图像;
(b)~(d) c =1,
分别取3.0, 4.0, 5.0时使用 s = cr 变换 的 结
果 ( =5.0 时有
左上角细节丢 失)
数字图像处理
数字图像处理
4. 分段线性变换函数
数字图像处理第三章空间域图像增强

n次方根 n次幂
s
正比
反对数
输入灰度级,r
图像反转
灰度级范围为[0,L-1]的图像反转可 定义为:
s= L – 1 - r
原图
反转变换结果图
图像反转
原图
反转变换结果图
图像反转
用这种方式倒转图像的强度,可以产生 图像反转的对等图像。
反转变换适用于增强嵌入于图像暗色区域 的白色或灰色细节,特别是当黑色面积占主 导地位时
当 γ <1 时,把输入高值映射为宽带
对于各种γ值时的曲线
输 出
L-1
灰
度
级
s
=0.04 =0.1 =0.4
L/2
=1
=2.5 =10.0
=25.0
0
L/2
L-1
输入灰度级r
图6-23 不同的s=cr曲线及图像变换结果
=1.5 =0.66
(a)人的 脊椎骨的 MR图像 (b)~(d) 应用于幂次 变换并且 c=1,γ分别 为
任一幅图像,都能惟一地确定出一幅与它对应的 直方图, 但不同的图像,可能有相同的直方图。
由于直方图是对具有相同灰度值的像素统计得到
的, 因此,一幅图像各子区的直方图之和就等于
该图(a)像(全a) 图的直方图 (b)
(b) (c)
直方图的计算
为了有利于数字图像处理,必须引入离散形式。
用rk代表离散灰度级,并且有下式成立:
P(rk)
0r1
在灰度级中,r=0 代表黑,1/6 2/6 3/6 4/6 5/6 6/6 r
r=1 代表白。
灰度直方图
直方图处理
对于一幅给定的图像来说,每一个像素取得 [0,1]区间内的灰度级是随机的,也就是说 r 是 一个随机变量。假定对每一瞬间它们是连续的随 机变量,那么,就可以用概率密度函数 p (rk) 来表示原始图像的灰度分布。
第三章-数字图像处理--空域图像增强

(2) 变换后图像的灰度动态范围应与变换 前的图像的灰度值动态范围保持一致。
3.3 直方图修正
2、直方图的应用——直方图均衡化
满足上述2个条件并能将f中的原始分布转换 为g中的均匀分布的函数关系可由原始图像f(x, y) 的累积直方图得到,从 f 到 g 的变换为:
则线性变换可表示为 :
g(x, y) d c [ f (x, y) a] c ba
2、分段灰度线性变换
对灰度区间 [0, a]和[b, Mf]加以压缩,对灰度 区间[a, b]进行扩展。通过调整折线拐点的位置及控制
分段直线的斜率,可对任一灰度区间进行扩展或压缩。这 种变换适用于在黑色或白色附近有噪声干扰的情况。
不同图像对应相同的直方图
a) 图像的直方图 b) 对应的几种不同的图像
(a)
(b )
(c)
灰度直方图的用途举例1
用于判断图像量化是否恰当:直方图给出 了一个简单可见的指示,用来判断一幅图象是否 合理的利用了全部被允许的灰度级范围。一般一 幅图应该利用全部或几乎全部可能的灰度级,否 则等于增加了量化间隔。丢失的信息将不能恢复。
主要应用举例
合并子图像
=
3.2.1 图象运算:逻辑运算
与运算的定义
g(x,y) = f(x,y) h(x,y)
主要应用举例
求两个子图像的相交子图
=
3.3 直方图修正---直方图定义
如果将图像中像素亮度(灰度级别)看成是一 个随机变量, 则其分布情况就反映了图像的统计 特 性 , 这 可 用 Probability Density Function (PDF) 来 刻 画 和 描 述 , 表 现 为 灰 度 直 方 图 (Histogram)。灰度直方图是灰度级的函数,它 表示图像中具有某种灰度级的像素的个数,反映了 图像中每种灰度出现的频率。灰度直方图的横坐标 是灰度级,纵坐标是该灰度级出现的频度,它是图 像最基本的统计特征。
3空域图像增强

SEIE-TJU
15
对数变换 Log Transformations
图3.5(a) 原始图像: 傅里叶频谱值为0~1.5106
应用是傅里叶频谱图像。
• 对数变换表达式:s = c log(1+r)
– 其中:c 是常数,且 r 0 s – 低灰度图像扩展暗像素值,压缩亮像素值。
对数
• 反对数变换表达式:
r 10 c 1
反对数
– 高灰度图像 扩展亮像素值,压缩暗像素值。
• 又称为“动态范围压缩/扩展” • 典型应用:傅立叶频谱
SEIE-TJU
6
背景知识
灰度级函数变换示例
• 这种变换将会产生比原始图像 更高的对比度。
– 原始图像中灰度级低于 m 时,输 出图像变暗; – 原始图像中灰度级高于 m 时,输 出图像变亮。
• 在对比度扩展技术里,在 m 以 下的 r 值将被变换函数 T 压缩 在 s 的较窄范围内,接近黑色, 对 m 以上的 r 值进行相反的操 作。
图3.2(b) 对比度增强的灰度变换函数
SEIE-TJU 8
背景知识
• 更大的邻域有更多的灵活性 ! • 一般方法:利用点 (x,y) 邻域里的 f 函数值,决定 g(x,y) 的值,以模板 (也指滤波器、核或窗口) 为 基础。
– 模板是一个小的 (例如 33) 二维阵列; – 模板的系数值决定了处理的性质(图像锐化/高通、模 糊/低通等);
第三章 空间域图像增强 Image Enhancement in Spatial Domain
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 图像增强燕山大学电气工程学院 赵彦涛3.1图像增强的概念对于一般可理解的图像增强,是指使经过增强处理后的图像其视觉效果更好,如对于某些图像看起来比较灰暗,增强处理后使其亮度增强,人眼看起来更舒服;也就是说,改善曝光不足或曝光过度对图像的影响。
淡化背景,强化前景;广义的图像增强指处理后的图像比原始图像更适合于特定应用,更有利于后续图像处理,消除噪声干扰,强化有用信息等都可认为为后续的计算机处理、分析更有利。
根据其处理数据所进行空间不同,图像增强的方法可分为空域(空间域)图像增强方法和变换域(频域)增强方法。
空域图像增强方法是直接处理构成图像的像素点的灰度值,而变换域图像增强方法是经过图像变换后,增强方法在其变换域中间接进行。
图像增强是与具体问题紧密相联系的,增强的目的不同,图像类型不同,采用的方法也不同,没有一种增强算法能适用于所有的应用场合。
3.2图像增强的点运算所谓点运算就是输出图像上的每个像素的灰度值仅由相应输入像素点的值确定。
空域方法是指直接对图像的像素点的灰度值进行操作,空域处理可定义为)),((),(y x f T y x g = (1)式中,),(y x f 是输入图像,),(y x g 是处理后的图像,T 是一种操作方法。
3.2.1 直接灰度变换直接进行灰度变换是图像增强最简单的一类方法,设处理前后的图像的像素点的灰度值分别为r 和s ,变换方式为)(r T s = (2)式中,T 是把灰度值r 变换为s 的映射。
由于处理的是数字量,变换函数的值通常存储在一个一维向量中,通过函数或者查表将灰度值r 映射为s 。
对于8比特的灰度值,一个包含这种映射的查找表要有256个记录。
3.2.1.1 图像的直方图图像的直方图表示图像中各种灰度级的个数(或概率),反映了一幅图像中灰度级与出现这种灰度级的概率之间的关系。
对于一个8 bit (有256个灰度等级)的图像,直方图就是Nn r p k k =)( (4) 式中,k r 是第k 个灰度等级, k n 为图像中灰度等级为k r 的像素点的个数,N 是该图像中所有像素点的个数,这里]255,0[ k ,)(k r p 代表原始图像第k 个灰度级出现的概率。
例如,如果有一个图像为图**:v 0=5/64v 1=12/64v 2=18/64v 3=8/64v 4=1/64v 5=5/64v 6=8/64v 7=5/64 该图像像元总数为8*8=64, 灰度值的范围为[0,7],则其直方图计算结果为图*,直方图为图*。
图像直方图是图像明暗信息的统计结果,给出了图像中灰度级分布的全局描述。
如果图像的灰度级是狭窄的,说明图像中像素点的灰度级集中在一小段,那么就意味着图像的对比度较差(图b 中可看出其灰度等级多集中在比较灰度值比较小的区域内,这样的图像看起来比较暗),而广泛分布的直方图意味着图像中像素点的灰度值几乎分布在灰度级的整个区间里面,因此对比度很好(图a ),通过直方图修改可实现图像增强。
3.2.1.2 EmguCV 直方图显示在EmguCV 中,直方图显示的控件为HistogramBox ,要显示直方图,还用到类DenseHistogram 。
首先从工具栏中将控件HistogramBox 添加到主程序面板中,然后在HelloWorld 例程中直接修改ImageGrabbed()函数:050100150200250050010001500200025003000050100150200250020040060080010001200void _capture_ImageGrabbed(object sender, EventArgs e){Image<Gray, Byte> image = _capture.RetrieveGrayFrame();int rBins = 256;RangeF rRange = new RangeF(0f, 255f);histogramBox1.ClearHistogram();DenseHistogram hist = new DenseHistogram(rBins, rRange);hist.Calculate(new IImage[] { image }, false, null);histogramBox1.AddHistogram("直方图", Color.Red, hist);imageBox1.Image = image;histogramBox1.Refresh();}首先要创建一个DenseHistogram对象hist,然后通过其成员函数Calculate()计算图像的直方图,然后把hist添加到histogramBox1的直方图显示。
如果得到是视频,可以通过成员函数ClearHistogram()清除直方图、通过Refresh()刷新显示,结果如图*所示。
由于_capture_ImageGrabbed()函数分属不同线程,为解决此问题,可在构造函数Form1()中添加代码:CheckForIllegalCrossThreadCalls = false;3.2.1.3 直方图均衡化直方图均衡化通过调整图像灰度级,使图像的直方图均匀的分布在灰度级的整个区域,实现增加像素灰度值的动态范围,从而达到增强图像整体对比度的效果,直方图均衡化的目的如图*所示,a 输入图像直方图b均衡化后图像直方图图直方图均衡化的目的EmguCV中,类Image有一个成员函数可直接实现其均衡化void _EqualizeHist()需要注意的是该函数的返回值为空,该函数直接原始图像变量。
Image<Bgr, byte> frame = new Image<Bgr, byte>(‘”Lena.jpg”);frame._EqualizeHist();将彩色图像frame进行直方图均衡化后的结果直接反映在图像frame上。
图*为均衡化结果,左侧图为原始图像,右侧为均衡化后的图像。
3.2 图像空域滤波增强空域滤波是直接针对图像中的像素点的灰度值借助模板进行邻域操作,按照其特点,空间滤波的方法可分为线性滤波和非线性滤波两大类。
线性滤波的概念源于频域中信号处理所使用的傅立叶变换,非线性空间滤波则一般只能在空域中进行,即直接对邻域进行操作。
图像空域滤波方法根据功能划分,主要分为图像平滑和图像锐化。
图像平滑可以减弱或消除傅立叶空间的高频分量,但不影响低频分量。
由于图像经傅立叶变换后的高频部分对应原始图像的边缘部分,而低频部分对应图像的平滑部分,高频分量滤除后相当于去除了图像的边缘,使图像模糊,图像的平滑的作用主要是模糊和噪声消除。
3.2.1 邻域平均法设有一幅N×N的图像f(x,y),若平滑图像为g(x,y),则有式中 x,y =0,1,…,N-1;s 为(x,y )邻域内像素坐标的集合;M 表示集合s 内像素的总数。
可见邻域平均法就是将当前像素邻域内各像素的灰度平均值作为其输出值的去噪方法。
• 邻域平滑特点:• (1)算法简单。
• (2)降低噪声的同时使图像产生模糊,特别在边缘和细节处。
而且邻域越大,在去噪能力增强的同时模糊程度越严重。
模板操作是数字图像处理中常用的一种运算方式,图像的平滑、锐化等都要用到模板操作。
其实现的方法为图*所示,不失一般性,假设要计算像素点P5用所给3×3模板的滤波过程为:P 5new = Pi ∗Hi 9i =1H1H4H7H2H5H8H3H6H93×3邻域3×3模板P1.H1+P2.H2+P3.H3+P4.H4+P5.H5+P6.H6+P7.H7+P8.H8+P9.H9=P5的新值从图像的左上角,依次向右向下移动,一直运算到图像的右下角,计算出原始图像中所有的像素点的值(边缘点不处理,或需要特殊处理)。
空域低通滤波(图像平滑)的模板有:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=111111111911H ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1111211111012H ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1212421211613H空域高通滤波(图像锐化)常用的模板有:EmguCV 中,图像平滑的函数有很多,都属于类Image 的成员函数,主要有三个: SmoothBilatral(int kernelSize,int colorSigma, int spaceSigma)moothBlur(int width, int height) (有重载函数)SmoothGaussian(int kernelSize) (有重载函数)例如代码:Image<Gray, Byte> frame = _capture.RetrieveGrayFrame();Image<Gray, Byte> SmoothFrame = frame.SmoothGaussian(3);可以实现3*3大小的高斯平滑滤波。
由于各种图像传感器都存在噪声,消除这种噪声的最好的方法是计算多幅相同背景图像的均值,但有时多幅相同背景图像不易得到,常用相邻像素点实现图像的平滑运算,平滑滤波的主要作用是消除图像噪声,但在消除噪声的同时,也使图像变得模糊。
通常在进行边缘检测时,首先应对图像进行平滑滤波,以消除噪声对于边缘检测结果的影响。
3.3 中值滤波中值滤波是一种典型的非线性滤波方法。
中值滤波就是用一个奇数点的移动窗口, 先将小窗口内的所有像素的灰度按从大到小的顺序排列,将中间值作为该像素点的灰度值。
其代码为:Image<Gray, Byte> SmoothFrame =frame.SmoothMedian(5);可实现窗口大小为5*5的中值滤波,中值滤波在消除噪声的同时,可较好地保持图像边缘,对于椒盐噪声消除的效果非常好。
3.4 卷积在Emgucv 中,图像的卷积已经将其变为操作符 *,其原型为:public static Image <TColor, float > operator *(Image <TColor, TDepth> image,ConvolutionKernelF kernel)其中kernel 为卷积的变换核,例如可以定义:float[,] kernel = { { 0, 2, 0 }, { 2, 4, 2 }, { 0, 2, 0 } };ConvolutionKernelF mykernel = new ConvolutionKernelF(kernel);FrameOut=frame * mykernel例如:float [,] kernel = { { 0, -1, 0 }, { -1,5, -1 }, { 0, -1, 0 } };ConvolutionKernelF mykernel = new ConvolutionKernelF (kernel);imageBox1.Image = frame* mykernel;imageBox2.Image = frame.Convert<Gray , byte >();textBox1.Text = (frame * mykernel).AbsDiff(new Bgr (0,0,0))[100, 100].ToString();textBox2.Text = (frame.Convert<Gray , byte >())[100, 100].ToString();3.3 图像锐化及边缘检测3.3.1 常用边缘检测算子图像锐化可用高通滤波实现,即保留高频部分,滤除其低频部分。