实验内容:
1.从硬盘中读取需进行增强的人体骨骼图像; 2.求原图像的Laplacian变换,对图像进行锐化处理; 3.用Sobel算子计算原图像的梯度图像; 4.图像的算术运算,包括加和乘; 5.图像的平滑处理去除噪声; 6.图像灰度的幂律变换,以加强图像的对照度
实验流程:
实验任务:
1.从硬盘中读取需进行增强的人体骨骼图像;
观原图像是人体骨骼核扫描图像,我们的目的是通过图像锐化突出骨骼的更多细节来增强图像。由于图像灰度的动态范围很窄并且有很高的噪声内容,所以很难对其进行增强。 对此我们采取的策略是,首先用拉普拉斯法突出图像中的小细节,然后用梯度法突出其边。平滑过的梯度图像将用于掩蔽拉普拉斯图像。最后,我们将试图试用灰度变换来增强图像的灰度动态范围。实验代码如下:
2.求原图像的Laplacian变换,对图像进行锐化处理 拉普拉斯锐化图像是根据图像某个像素的周围像素到此像素的突变程度有关,也就是说它的依据是图像像素的变化程度。我们知道,一个函数的一阶微分描述了函数图像是朝哪里变化的,即增长或者降低;而二阶微分描述的则是图像变化的速度,急剧增长下降还是平缓的增长下降。那么据此我们可以猜测出依据二阶微分能够找到图像的色素的过渡程度,例如白色到黑色的过渡就是比较急剧的。 拉普拉斯变换 [2] 是对于t≥0函数值不为零的连续时间函数x(t)通过关系式
(式中-st为自然对数底e的指数)变换为复变量s的函数X(s)。它也是时间函数x(t)的“复频域”表示方式 先看一阶偏微分和推出的二元函数微分:
一阶微分法能够用来检测边缘是否存在。那么二阶微分法,也就是拉普拉斯算子就可以确定边缘的位置。
拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变化的区域。这将产生一幅把浅灰色边线、突变点叠加到暗背景中的图像。
将原始图像和拉普拉斯图像叠加在一起的简单方法可以保护拉普拉斯锐化处理的效果,同时又能复原背景信息。因此拉普拉斯算子用于图像增强的基本方法如下:
作用:增强灰度突变处的对比度; MATLAB 实现:
拉普拉斯算子对于接近水平和接近竖直方向的边缘都有很好的增强,从而也就避免读者在使用梯度算子时要进行两次滤波的麻烦。 第一个参数:输入图像,即源图像,填Mat类的对象即可,且需为单通道8位图像。 第二个参数:输出图像,需要和原图像有一样的尺寸和通道数 第三个参数:int类型的ddept,目标图像的深度 第四个参数:int类型的ksize,用于计算二阶导数的滤波器的孔径尺寸,大小必须为正奇数,且有默认值1。 第五个参数:double类型的scale,计算拉普拉斯值的时候可选的比例因子,有默认值1 第六个参数:double类型的delta,表示在结果存入目标图(第二个参数dst)之前可选的delta值,有默认值0 第七个参数: int类型的borderType,边界模式,默认值为BORDER_DEFAULT 函数如下:
3.用Sobel算子计算原图像的梯度图像; Sobel算子主要用于边缘检测,在技术上它是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值, Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。Sobel算子是在Prewitt算子的基础上改进的,在中心系数上使用一个权值,与Prewitt算子、Roberts算子相比因此效果更好,能较好的抑制(平滑)噪声。 (1)Prewitt 梯度算子:
(2)Sobel 梯度算子:
使用权重2的目的:突出中心点的作用以达到平滑的目的 (3)Robert 交叉梯度算子:
微分掩模的所有系数之和为0保证了灰度恒定区域的响应为0(微分算子要求的) 作用:①突出小缺陷;②去除慢变化背景; 梯度算子经常用于工业检测、辅助人工检测缺陷,或者是更为通用的自动检测的预处理。 matlab实现:
Robert交叉梯度图像锐化:
实验代码:
4.图像的算术运算,包括加和乘; 加法实现代码:
乘法实现代码:
5.图像的平滑处理去除噪声; 5.1平滑线性滤波器 定义:图像平滑是一种可以减少和抑制图像噪声的使用数字图像处理技术,在空间域中一般可以采用邻域平均来达到平滑的目的。 原理:用包含在滤波掩模邻域内的像素的平均灰度值去代替每个像素点的值。又叫:均值滤波器。
matlab实现:
实现代码:
5.2高斯平滑 定义:平均平滑对于邻域内的像素一视同仁,为了减少平滑处理过程中的模糊,得到更自然的平滑效果,很自然的想到适当加大模板中心点的权重,随着距离中心点的距离增大,权重迅速减小,从而可以确保中心点看起来更接近于与它距离更近的点,基于这样的考虑得到的模板即为高斯模板。 matlab实现:
5.3中值滤波 定义:中值滤波本质上是一种统计排序滤波器。中值是指排序队列中位于中间位置的元素的值。 主要功能:使拥有不同灰度的点看起来更接近于它的邻近值。 性能比较:中值滤波对于某些类型的随机噪声具有非常理想的降噪能力,能够有效去除脉冲噪声:以黑白点叠加在图像上;对于线性平滑滤波而言,在处理的像素邻域之类包含噪声点时,噪声的存在总会或多或少影响该点像素值的计算(对于高斯平滑,影响程度同噪声点到中心点的距离成正比),但在中值滤波中,噪声点则常常是直接被忽略掉的,在去除噪音的同时,可以比较好地保留边的锐度和图像的细节(优于均值滤波器);而且同线性平滑滤波器相比,中值滤波在降噪的同时引起的模糊效应较低。中值滤波的一种典型应用是消除椒盐噪声。 算法:先将掩模内欲求的像素及其领域的像素值排序(升序或降序),确定出中值,并将中值赋予该像素点。 噪声模型: ①图片加噪声 J=imnoise(I,type,parameters) Type:噪声类型 ②中值滤波原型: I2=medfilt2(I1,[m,n]) I1是原图矩阵 m和n是中值滤波处理的模板大小,默认3x3 输出I2是中值滤波后的图像矩阵 matlab 实现:
5.4空间锐化滤波器 锐化处理的目的:是突出图像中的细节或者增强被模糊了的细节。 锐化处理可以用空间微分来完成. 微分算子的响应强度与图像在该点的突变程度有关,图像微分增强了边缘和其他突变(如噪声)而消弱了灰度变化缓慢的区域。我们最感兴趣的是微分算子在①恒定灰度区域(平坦段)、②突变的开头与结尾(阶梯与斜坡突变)以及③沿着灰度级斜坡处的特性。
(1)对于一阶微分必须保证:平坦段微分值为零 在灰度阶梯或斜坡的起点处微分值非零沿着斜坡面微分值非零; (2)对于二阶微分必须保证: 在平坦区微分值为零在灰度阶梯或斜坡的起始点处微分值非零沿着斜坡面微分值为零。 一阶微分和二阶微分的区别: (1)一阶微分处理通常会产生较宽的边缘 ; (2)二阶微分处理对细节有较强的响应,如细线和孤立点 ; (3)一阶微分处理一般对灰度阶梯有较强的响应; (4)二阶微分处理对灰度级阶梯变化产生双响应 ; (5)二阶微分在图像中灰度值变化相似时,对线的响应要比对阶梯强,且点比线强.。 大多数应用中,对图像增强来说,二阶微分处理比一阶微分好,因为形成细节的能力强。而一阶微分处理主要用于提取边缘。
6.图像灰度的幂律计算,以加强图像的对照度 6.1基本灰度变换
6.2灰度反转:s =L-1- r 用这种方式倒转图像的强度,可以产生图像反转的对等图像; 用途:反转变换适用于增强嵌入于图像暗色区域的白色或灰色细节,特别是当黑色面积占主导地位时。 6.3对数变换 表达式为:s = c log( 1 + r ); c是一个常数,假设 r ≥0使一窄带低灰度输入图像值映射为一宽带输出值,使低灰度范围得以扩展,高灰度范围得以压缩作用:将暗的部分扩展,而亮的部分抑制。 用途:可以用于扩展图像中的暗像素。 6.4幂次变换 表达式为:s=c*r^γ(其中 c 和γ为正常数) 幂次曲线中的γ值决定了是把输入窄带暗值映射到宽带输出值还是把输入窄带亮值映射到宽带输出。 其中c和γ为正常数。幂律方程中的指数称为伽马(γ),用于校正这些幂律响应现象的处理称为伽马校正。 有时考虑到偏移量(即输入为0时的一个可度量输出),公式也可写为 s = c(r +ε)γ ①当γ<1时,该变换将低灰度值(暗值)进行拉伸,提高灰度级,使图像变亮; ②当γ>1时,改变换将高灰度值(亮值)进行拉伸,降低灰度级,使图像变暗。
用途:幂次变换用于对比度增强 6.5分段线性变换函数 如:对比度拉伸由于照明不足、成像传感器动态范围小或者在图像获取过程中镜头光圈设置错误引起的低对比度,可以进行对比度拉伸来扩展图像灰度级动态范围。
7.运行结果
图1:从硬盘中读取需进行增强的人体骨骼图像。 图2:使用模板为[-1,-1,-1;-1,8,-1;-1,-1,-1]的滤波器对原图像进行拉普拉斯操作, 为了便于显示,对图像进行了标定,这一步先对图像进行初步的锐化滤波。 图3:由于使用的模板如上,让常数 c=1,简单的将原图和图2相加就可以得到一幅经过锐化过的图像。 (而这个时候看到图2的噪声水平,将图1和图2相加之后也必然会有很多的噪声。拉普拉斯操作作为一种二阶微分算子,能很好的增强细节,但也产生更多的噪声。而降低噪声的一种方法就是使用中值滤波器,但属于非线性滤波器的中值滤波器有可能改变图像的性质,所以不可取。所以采取另一种方法,使用原图像梯度操作的平滑形式所形成的一个模板) 图4:对原图像试用Sobel梯度操作,分量gx为[-1,-2,-1;0,0,0;1,2,1],而分量gy 为[-1,0,1;-2,0,2;-1,0,1]的模板。 (梯度变换在灰度斜坡或台阶的平均相应要比拉普拉斯操作的更强烈,而对噪声和小细节的响应要比拉普拉斯操作的相应弱,而且可以通过均值滤波器对其进行平滑处理可以进一步降低, 此时看图像中的边缘要比拉普拉斯图像(即图3)中的边缘要突出许多) 图5:使用大小为 5*5 的一个均值滤波器得到平滑后的 Sobel 梯度图像。 (图 4,5 要比图 2 亮表明具有重要边缘内容的梯度图像的值一般要比拉普拉斯图像的值高) 图6:将拉普拉斯图像(即图3)与平滑后的梯度图像(即图5)进行点乘。 (此时看到强边缘的优势和可见噪声的相对减少,用平滑后的梯度图像来掩蔽拉普拉斯图像的目的达到了) 图7:将乘积图像(即图 6)与原图像相加就产生一幅需要的锐化图像。 (与原图像相比,该图像中大部分细节的清晰度的增加都很明显,所以我们才需要综合多种的方法对图像进行处理,单独使用一种方法根本不可能达到这么好的效果,只需要看相对应的图像进行对比即可知道) 图8:我们希望扩展灰度范围,对图7进行幂率变换处理,r=0.5,c=1,然后即可对图像进行幂率变换。 (此时需要增大锐化后图像的动态范围,即使有很多种这样效果的灰度变换函数,但是用幂率变换处理更好,直方图均衡和规定化的效果都不太好,此时人体的轮廓的清晰度虽然还是不高,因为扩大的灰度动态范围的同时也增大了噪声,但是相比原图还是有相当大幅度的提高的)
8.个人收获 这算是我大学期间的最后一门课了,有幸选到了张老师的课程,收获很大,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。在每周六听课的过程中,我深深的体会到了自己在专业知识方面的欠缺和不足,也意识到了自己作为计算机软件专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄之外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。通过张老师精彩的课堂讲解,我确定了自己以后的努力方向,我觉得要想在短暂的时间内尽多的学到东西,除了上课认真听讲,还需要我跟老师或同学进行良好的沟通,加深彼此的了解,互助共赢。 “纸上得来终觉浅,绝知此事要躬行!”在这短短几节课的时间里,我深深的感觉到自己在实际应用中所学来专业知识的匮乏。我真真领悟到“学无止境”这句话的涵义。而张老师在生物医学图像处理课上所讲的,都是对我们非常有实际意义的,这给我们的学习增添了浓墨淡彩的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 感谢张宏志老师!
|