图像空域增强算法设计——灰度变换增强
实验三 空域图像增强

实验三空域图像增强(灰度变换、直方图处理)一、实验目的1. 掌握灰度变换的基本原理。
2. 掌握直方图处理的基本原理。
3. 掌握Matlab中灰度变换和直方图处理的实现方法。
二、实验内容1. 灰度变换(直接正比变换)。
2. 灰度变换(截取式正比变换)。
3. 灰度变换(反比变换)。
4. 灰度变换(对比拉伸)。
5. 灰度变换(灰度切割)。
6. 灰度变换(对数变换)。
7. 灰度变换(幂次变换)。
8. 直方图处理(直方图均衡化)。
三、实验仪器、设备及材料1. 电脑一台(2G CPU、2GB RAM、50GB Disk及以上)。
2. Windows 2000 / Windows XP / Windows 7。
3. Matlab R2006b及以上版本。
4. 记录用的笔、纸。
四、实验原理1. 灰度变换灰度变换是一种点操作,根据原始图像中每个像素的灰度值,按照某种映射规则将其转化为另一灰度值。
其原理是将原图像f(x , y)中的每个像素的灰度按EH操作直接变换以得到目标图像g(x , y)。
若以s表示f(x , y),以t表示g(x , y),则灰度变换原理如下图所示:2. 直方图处理直方图变换可以清晰图像细节,突出目标物体,改善亮度比例关系,增强图像对比度。
直方图变换基于概率论。
直方图均衡化主要用于增强动态范围偏小的图像的反差。
其基本思想是把原图像的直方图转换为均匀分布的形式,增加像素灰度值的动态范围,增强图像整体对比度。
五、实验步骤1. 灰度变换(直接正比变换)(1) 程序源代码:close allclear15clcdisp('====E4_4_1.m====');I=imread('rice.png');subplot(3,3,1),imshow(I),ylabel('原图像');subplot(3,3,2),imhist(I);%方法1-系统函数J=imadjust(I,[40/255 204/255],[0 1]); %图像的最小灰度值为40,最大灰度值为204subplot(3,3,4),imshow(J),ylabel('变换图像(方法1)');subplot(3,3,5),imhist(J);%方法2-编程实现%把灰度值范围从[40,204]映射到[0,255]f0=0;g0=0; %分段曲线的第1个点f1=40;g1=0; %分段曲线的第2个点f2=204;g2=255; %分段曲线的第3个点f3=255;g3=255; %分段曲线的第4个点subplot(3,3,9),plot([f0,f1,f2,f3],[g0,g1,g2,g3]),xlabel('f'),ylabel('g'),axis([0 255 0 255]);%绘制变换曲线r1=(g1-g0)/(f1-f0); %曲线1的斜率b1=g0-r1*f0; %曲线1的截距r2=(g2-g1)/(f2-f1); %曲线2的斜率b2=g1-r2*f1; %曲线2的截距r3=(g3-g2)/(f3-f2); %曲线3的斜率b3=g2-r3*f2; %曲线3的截距[m,n]=size(I);K=double(I);for i=1:mfor j=1:nf=K(i,j);g(i,j)=0;if(f>=f0)&(f<=f1)g(i,j)=r1*f+b1; %曲线1的方程y=r1*x+b1elseif (f>=f1)&(f<=f2)g(i,j)=r2*f+b2; %曲线2的方程y=r2*x+b2elseif (f>=f2)&(f<=f3)g(i,j)=r3*f+b3; %曲线3的方程y=r3*x+b3endendendendend16subplot(3,3,7),imshow(uint8(g)),ylabel('变换图像(方法2)');subplot(3,3,8),imhist(uint8(g));(2) 观察并记录实验结果:作为实验报告的内容(3) 将“分段曲线的第2个点”更改为“f1=150;g1=0;”,观察并记录实验结果,分析产生该结果的原因:作为实验报告的内容。
数字图像处理图像增强第一讲及灰度变换

应该明确的是增强处理并不能增强原始图像 的信息,其结果只能增强对某种信息的辨别能 力,而这种处理有可能损失一些其他信息。
图像增强是数字图像处理的基本内容之一。
图像增强示例
概述
图像增强技术是一大类基本的图像处理技术, 其目的是对图像进行加工,以得到对具体应 用来说视觉效果更“好”、更“有用”的图 像。
利用映射函数可将原始图像中每个像素的灰度 都映射到新的灰度.
左图增加对比度 右图降低对比度
直接灰度变换
直接灰度变换属于所有图像增强技术中最简单的一类。 为了将图像灰度级的整个范围或一段范围扩展或压缩到记
录或显示设备的动态范围内,可使图像动态范围增大,图 像对比度扩展。 使图像变得清晰/图像上的特征变得明显。
s L 1t
此方法适用于增强嵌入于图像暗色区域的白色或灰色细节, 特别是黑色面积在尺寸上占主导低位时。
15
直接灰度变换
2.线性灰度变换
灰度线性变换表示对输入图像灰度作线性扩张或压缩, 映射函数为一个直线方程,其表达式和演示控件如下:
gx, y af x, y b
增强的对象:
在曝光不足或过度的情况下,图像灰度可能会局限在一 个很小的范围内。这时在显示器上看到的将是一个模糊不 清、似乎没有灰度层次的图像。采用灰度线性变换方法可 以拉伸灰度动态范围,使图像清晰。
1、如果S1=t1,S2=t2,则T为1条斜率为1的直线,增强图 像和原图像相同。
2、如果S1=S2,t1=L-1,则增强图像只剩2个灰度级,此时 对比度最大但细节全丢失。
3、如果S1>t1,S2<t2,则原图像中灰度值在0到S1和S2到 L-1间的动态范围减少了,而原图中灰度值在S1和S2间的动 态范围增加了,从而增强了中间范围内的对比度。
基于灰度变换的图像增强及MATLAB实现.

n=256时:
(请自己运行查看)
下面利用直方图均衡化增强图像的对比度:
I=imread('cameraman.tif';
J=histeq(I;
%将灰度图像转换成具有64(默认)个离散灰度级的灰度图像
imshow(I
title('原始图像'
figure,imshow(J
title('直方图均衡化后的图像'
三直方图增强及matlab实现
3.1直方图均衡化
直方图均衡化是一种最常用的直方图修正。它是把给定图象的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息量的图象为均衡化图象。直观地讲,直方图均衡化导致图象的对比度增加。直方图均衡化基本做法是将每个灰度区间等概率分布代替了原来的随机分布,即增强后的图象中每一灰度级的像元数目大致相同。直方图均衡化可使得面积最大的地物细节得以增强,而面积小的地物与其灰度接近的地物进行合并,形成综合地物。减少灰度等级换取对比度的增大要注意的是,均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。
matlab直方图均衡化的函数是histeq,
I = imread('pout.tif';
[J,T] = histeq(I;
figure,plot((0:255/255,T;
图像的灰度直方图均衡化公式:
公式中,T(rk来表示原图像的第k个灰度级的转换函数。∑表示总和。∑nj/N表示0~j个灰度级的像素数量总和与像素总数的比值,也就是前面讲过的百分位(当前色阶与前面色阶的所有像素数量÷总像素数量。∑Pr(rk表示第0~k的灰度级出现概率累积相加。因为s是归一化的数值(s∈[0,1],要转换为0~255的颜色值,需要再乘上255,即S=∑Pr(rk*255。
图像增强中灰度变换

图像增强中灰度变换1、理论原理灰度变换方法是图像增强的重要手段,它使图像的动态范围加大,使图像的对比度扩展,图像更加清晰,特征更加明显。
简单的说,灰度变换就是指对图像上各个像素点的灰度值x 按某函数T(x)变换到v 。
例如为了提高图像的清晰度,需要将图像的灰度级整个范围或其中某一段(A ,B)扩展或压缩到(A+,B*);需要显示出图像的细节部分等都要求采用灰度变换方法。
灰度变换有时又被称为图像的对比度增强。
假定输入图像中的一个像素的灰度级为z ,经过T(Z)函数变换后输出图像对应的灰度级为z+,其中要求z 和z*都要在图像的灰度范围之内。
根据T(x)形式,可以将灰度变换分为线性变换和非线性变换。
此外,直方图均衡化方法也是很好的图像增强方法之一。
具体应用中采用何种T(x),需要根据变换的要求而定。
1.1线性灰度变换1)目的:为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间,可以采用分段线性变换。
2)数学表达式 图5-9[]⎪⎩⎪⎨⎧≤≤+---≤≤+---≤≤=f f g M y x f b d b y x f b M d M b y x f a c a y x f a b c d a y x f y x f a c y x g ),(]),(][)()([),(),(])()([),(0),()(),(调整折线拐点的位置及控制分段直线的斜率,可对(从而)任意灰度区间进行扩展或压缩。
图5-9 分段线性变换关系1.2 灰度非线性变换(1) 对数变换f f (x, y ) Mg g (x , y )1)cb y x f a y x g ln ]1),(ln[),(++= a 、b 、c 作用:调整曲线的位置和形状 图5-17图5-17 图像的对数变换关系2)效果:低灰度范围扩展 高灰度范围压缩,使图像分布均匀,与视觉特性相匹配(2) 指数变换1)1),(]),([-=-a y x f c b y x ga 、b 、c 作用:调整曲线的位置和形状2)效果 高灰度范围扩展2、实验1线性灰度变换方法给定图像”6.jpg ”,采用MATLAB 编程,对其进行线性对比度展宽处理。
图像空域增强算法设计——灰度变换增强

成绩评定表课程设计任务书摘要空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
MATLAB这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以利用MATLAB软件来对图像进行空域增强在数字图像处理的应用中具有很大的优势。
图像变换增强是利用一系列的变换方法使图像的对比度得到提升,也就达到了增强图像的目的--更便于观察,更容易区分不同灰度的图像。
根据函数的性质,灰度变换的方法有线性灰度变换、分段线性灰度变换、非线性灰度变换。
对于灰度局限在某一个很小范围内的数字图像,如果用线性函数对图像的每一个像素进行线性扩展,扩大像素的对比度,将有效地改善视觉效果。
本文利用MATLAB软件对灰度图像分别进行了线性灰度变换增强,非线性灰度增强和分段线性灰度增强,达到了提高图像对比度,增强图像效果的目的,证明了图像变换增强在数字图像处理中的重要作用。
关键词:MATLAB;灰度图像;线性变换;非线性变换目录1设计目的 (1)2设计方案 (1)2.1 灰度变换增强的概念 (1)2.2 灰度变换增强流程 (2)3设计内容 (3)3. 1 线性灰度变换的概述 (3)3. 2 分段线性灰度变换的概述 (3)3. 3非线性灰度变换的概述 (4)4程序代码设计 (5)4.1线性灰度变换增强 (5)4.1.1线性变换增强流程 (5)4.1.2线性变换增强设计 (5)4.2分段线性灰度变换程序代码 (6)4.2.1分段线性变换增强流程 (6)4.2.2分段线性变换增强设计 (6)4.3非线性灰度变换程序代码 (8)4.3.1非线性变换增强流程 (8)4.3.2非线性变换增强设计 (8)5仿真结果与分析 (9)5.1线性灰度变换仿真结果 (9)5.2分段线性灰度变换仿真结果 (10)5.3非线性灰度变换仿真结果 (11)5.4结果分析 (11)结论 (12)参考文献 (13)1 设计目的空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
利用基本灰度变换对图像进行增强

3 利用基本灰度变换对图像进行增强灰度变换原理:灰度变换是一种空域处理方法,其本质是按一定的规则修改每个像素的灰度,从而改变图像的动态范围实现期望的增强效果。
灰度变换按映射函数可分为线性、分段线性和非线性等多种形式。
3.1 线性灰度变换线性灰度变换是将输入图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。
可突出感兴趣目标,抑制不感兴趣的目标。
在实际运算中,原图像f(x,y)的灰度范围为[a,b],使变换后图像g(x,y)的灰度扩展为[c,d],则采用下述线性变换来实现:c a y x f ab cd y x g +---=]),([),(线性灰度变换对图像每个灰度范围作线性拉伸,将有效地改善图像视觉效果。
源代码如下:1、利用灰度调整函数变换图像A=imread('e:\7.tif','tif'); %读入图像 B=imadjust(A,[0.1,0.8],[0,1]); %灰度调整 imwrite(B,'E:\ 1.tif'); %图像保存subplot(2,2,1);imshow(A); %显示调整前后图像及其直方图 subplot(2,2,2);imhist(A); subplot(2,2,3);imshow(B); subplot(2,2,4);imhist(B);0100200500010020050010002、利用灰度调整算法变换图像clear;a=60; %图像变换参数设定b=180;c=0;d=255;A=imread('pout.tif','tif'); %读入图像[m,n]=size(A);A=double(A);for i=1:1:m %灰度调整for j=1:1:nif (A(i,j)>=a)&(A(i,j)<b)B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c;endendenduint8(A); uint8(B);imwrite(B,'E:\2.tif'); %图像保存subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图subplot(2,2,2); imhist(A);subplot(2,2,3); imshow(B);subplot(2,2,4); imhist(B);0100200500010020020004000600080003.2 分段线性灰度变换为了突出图像中感兴趣的研究对象,常常要求局部拉伸某一范围的灰度值,或对不同范围的灰度值进行不同拉伸处理,即分段线性拉伸,数学表达式如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧≤<+---≤<+---≤≤=MfyxfbdbyxfbMfdMgbyxfacayxfabcdayxfyxfacyxg),(]),([),(]),([),(),(),(源代码如下:clear;a=80; %图像变换参数设定b=160;Mf=255;c=50;d=200;Mg=255;A=imread('pout.tif','tif'); %读入图像 [m,n]=size(A); A=double(A);for i=1:1:m %灰度调整 for j=1:1:n if A(i,j)<aB(i,j)=(c/a)*A(i,j);elseif (A(i,j)>=a)&(A(i,j)<b)B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c; elseB(i,j)=(A(i,j)-b)*(Mg-d)/(Mf-b)+d; end end enduint8(A); uint8(B);imwrite(B,'E:\3.tif'); %图像保存subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图 subplot(2,2,2); imhist(A); subplot(2,2,3); imshow(B); subplot(2,2,4);imhist(B);010020005001000100200020004000600080003.3 非线性灰度变换非线性灰度变换在整个灰度范围内采用统一的变换函数,利用变换函数的数学性质实现对不同灰度值区间的扩展和压缩。
第4章图像增强1灰度变换PPT课件

pr(rk)n n k
k0,1,2, ,L1
式中: n是一幅图像的像素总数; L是灰度级的总数目; rk表示第k个灰度 级; nk为第k级灰度的像素数; pr(rk)表示该灰度级出现的频率,是对其出 现概率的估计。在直角坐标系中做出rk与pr(rk)的关系图形,称为该图像的
直方图。其横坐标表示灰度级,纵坐标表示该灰度级出现的次数或频率。对
连续图像,直方图的纵坐标表示灰度级出现的概率密度。
7
直方图
1 2 34 5 6 6 4 32 2 1 1 6 64 6 6 3 4 56 6 6 1 4 66 2 3 1 3 64 6 6
1 2 34 5 6 5 4 5 6 2 14
图像灰度直方图
8
直方图
直方图的性质: (1) 直方图是一幅图像中各灰度级出现频数的统计
作。
4
空域处理表示
如果用s 和t 分别代表 f 和 g 在(x,y)处的灰
度值,则空间域处理就表示为: t T(s)
下图是增强对比度的T操作:
5
空域点处理增强
灰度变换方法
直接灰度变换法 直方图修正法
线性变换 分段线性 非线性变换 直方图均衡化 直方图规定化
6
直方图
直方图
直方图是灰度级的函数,它反映了图像中每一灰度级出现的次数(该 灰度级的像素数)或频率(该灰度级像素数与图像总像素数之比)。对数字 图像,直方图可表示为
t3 6 n t3 98p t 5 ( s t3 ) 0 .24 t4 7 n t4 44p t 8 ( s t4 ) 0 .11
50
直方图规定化
例
(2)对规定直方图像操作:
v 0 0 .0 T 0 u ( u 0 ) v 1 0 .0 T 0 u ( u 1 ) 0
数字图像处理 图像增强 第一讲 概述及灰度变换

三段线性变换
常用的是三段线性变换。
Slide 20
实际上,S1、S2、t1、t2可取不同的值进行组合,从而得 到不同的效果。
1、如果S1=t1,S2=t2,则T为1条斜率为1的直线,增强图 像和原图像相同。 2、如果S1=S2,t1=L-1,则增强图像只剩2个灰度级,此时 对比度最大但细节全丢失。 3、如果S1>t1,S2<t2,则原图像中灰度值在0到S1和S2到 L-1间的动态范围减少了,而原图中灰度值在S1和S2间的动 态范围增加了,从而增强了中间范围内的对比度。 4、如果S1<t1,S2>t2,则原图像中灰度值在0到S1和S2到 L-1间的动态范围增加了,而原图中灰度值在S1和S2间的动 态范围减少了。
环境光源太暗,使灰度值偏小,就会使图像太暗看不清。
如果环境光源太亮,又使图像泛白。 通过灰度变换,就可以将灰度值调整到合适的程度。
灰度变换可分为线性变换、分段线性变换和非线性变换几 种方法。
直接灰度变换
1、图像求反
假设对灰度级范围是[0,L-1]的图像求反,就是通过变 换将[0,L-1]变换到[L-1,0],变换公式如下:
设变量 r 代表图像中像素灰度级。在图像中, 像素的灰度级可作归一化处理,这样,r 的值将 限定在下述范围之内:
0 r 1
在灰度级中, r = 0
(4—4)
代表黑, r = 1 代表白。
对于一幅给定的图像来说,每一个像素取 得[0,1]区间内的灰度级是随机的,也就是说
r 是一个随机变量。假定对每一瞬间它们是连
第三章 数字图像处理 空域图像增强【精选】

灰度直方图的性质
(一) 直方图是一幅图像中各像素灰度值 出现次数(或频数)的统计结果,它只反映该图 像中不同灰度值出现的次数(或频数),而未反 映某一灰度值像素所在位置。
(二)任一幅图像,都能惟一地确定出一幅 与它对应的直方图, 但不同的图像,可能有相同 的直方图。
(三)由于直方图是对具有相同灰度值的 像素统计得到的, 因此,一幅图像各子区的直方 图之和就等于全图的直方图。
去除不需要的叠加性图案 检测同一场景两幅图象之间的变化 计算物体边界的梯度
3.2.1 图象运算:算术运算
去除不需要的叠加性图案
设:背景图象b(x,y),前景背景混合图象f(x,y)
g(x,y) = f(x,y) – b(x,y)
g(x,y) 为去除了背景的图象。
3.2.1 图象运算:算术运算
点操作:增强操作可仅定义在每个像素点位置(x, y)
上,此时称为点操作;
模板操作:增强操作还可定义在每个(x, y)的某个
邻域上,此时常称为模板操作或邻域操作。
3.1 灰度变换
灰度变换原理
灰度变换是一种基于图像像素的点操作,通 过变换函数改变图像的像素灰度值。
变换函数:t = T(s) ,s为原始像素值,t为变换 后的像素值。
则线性变换可表示为 :
g(x, y) d c [ f (x, y) a] c ba
2、分段灰度线性变换
对灰度区间 [0, a]和[b, Mf]加以压缩,对灰度 区间[a, b]进行扩展。通过调整折线拐点的位置及控制
分段直线的斜率,可对任一灰度区间进行扩展或压缩。这 种变换适用于在黑色或白色附近有噪声干扰的情况。
=
3.2.1 图象运算:逻辑运算
图像增强实验报告

图像增强实验报告篇一:图像处理实验报告——图像增强实验报告学生姓名:刘德涛学号:2010051060021指导老师:彭真明日期:2013年3月31日一、实验室名称:光电楼329、老计算机楼309机房二、实验项目名称:图像增强三、实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。
图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。
空间域的增强主要有:灰度变换和图像的空间滤波。
1.灰度变换灰度变换主要有线性拉伸、非线性拉伸等。
灰度图像的线性拉伸是将输入图像的灰度值的动态范围按线性关系公式拉伸到指定范围或整个动态范围。
令原图像f(x,y)的灰度变化范围为[a,b],线性变换后图像g(x,y)的范围为[a',b'],线性拉伸的公式为:b'?a'g(x,y)?a?[f(x,y)?a] b?a灰度图像的非线性拉伸采用的数学函数是非线性的。
非线性拉伸不是对图像的灰度值进行扩展,而是有选择地对某一灰度范围进行扩展,其他范围的灰度值则可能被压缩。
常用的非线性变换:对数变换和指数变换。
对数变换的一般形式:g(x,y)?a?ln[f(x,y)?1] blnc指数变换的一般形式:g(x,y)?bc[f(x,y)?a]?1(a,b,c用于调整曲线的位置和形状的参数。
)2.图像的空间滤波图像的空间滤波主要有图像的空域平滑和锐化。
图像的平滑是一种消除噪声的重要手段。
图像平滑的低频分量进行增强,同时抑制高频噪声,空域中主要的方法有领域平均、中值滤波、多帧相加平均等方法。
图像锐化能使图像的边缘、轮廓处的灰度具有突变特性。
图像的锐化主要有微分运算的锐化,包括梯度法和拉普拉斯法算子。
四、实验目的:1.熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。
04-图像增强-空域

在这种情况下,设s的分布函数为 Fs (s),根据分布函数的定义 有:
s
r
F s(s) p s(s)d s p r(r)d r
由于密度函数是分布函数的导数,上时两边对s求导可得:
p s(s)p r(r)d d r sp r(r)d d s T 1 (s)
通过变换函数T(r)可以控制图像灰度级的概率密度函数,从 而改变图像的灰度分布。这就是直方图修改技术的理论基础。
光电图像处理
(四)图像增强02
电子工程学院光电子技术系
第四章(02) 图像增强
主要内容:
❖ 灰度变换 ❖ 图像增强方法 ❖ 图像平滑 ❖ 图像锐化 ❖ 图像的伪彩色处理 ❖ 图像的代数运算
重点内容:
❖ 灰度线性变换 ❖ 中值滤波 ❖ 邻域平均法 ❖ 锐化算法 ❖ 图像的伪彩色处理
图像增强方法
➢图像增强:是不考虑图像降质的原因, 只将图像中感兴趣的 部分加以处理或突出有用的图像特征,故改善后的图像并不一定 要去逼近原图像。主要目的是要提高图像的可懂度。
(b)
(c)
用累积分布函数原理求变换函数
s T ( r ) 0 r p r ( r ) d r 0 r ( 2 r 2 ) d r r 2 2 r
变换后的s值与r值的关系为
sr22rT(r)
按照这样的关系变换,就可以得到一幅改善质量的新图像。这 幅图像的灰度层次将不再是呈现较暗色调的图像,而是一幅灰 度层次较为适中,比原始图像清晰、明快得多的图像。可以证 明,变换后的灰度及概率密度是均匀分布的。
例如,图(a)是原始图像的概率密度函数。从图中可知,该
图像的灰度集中在较暗的区域,是一幅曝光不足的照片。由图
(a)可知, 原始图像的概率密度函数为:
空域变换增强技术

2)规定希望的灰度概率密度函数pz(z),并用 (2)式求得变换函 数G(z)
u l G( z l ) p( z j )
j 0 l
l 0,1,....N 1
3)将逆变换函数z=G-1(s)用步骤1)中所得到的灰度级 ,即将原始直方 图对应映射到规定的直方图,也就是将所以的ps(si)对应到pz(zj)去
Pr(r)
Pr(r)
p(r )
(b) (a) 图(a)的大多数象素灰度值取在较暗的区域。所以这 幅图像肯定较暗,一般在摄影过程中曝光过强就会造成 这种结果。 图(b)图像的象素灰度值集中在亮区,因此图像的特 性偏亮,曝光太弱,导致这种结果。 图(c)图像的象素灰度值集中在某个较小的范围内, 也就是说图像(c)的灰度集中在某一个小的亮区
0
1
r
0
1
r
0
1
r
离散化定义
给出来对sk 出现概率的 1个估计
直方图-1D的离散函数
图像的灰度统计
sk为图像f(x,y)的第k级灰度,nk是图像中具有灰度值 sk的象素的个数,n是图像象素总数
直方图提供了原图的灰度值分布情况,也可 以说给出了一幅图所有灰度值的整体描述
偏暗
直方图修改技术的基础
概率
1
0.2 0.15 0.1 0.05 0
0.16 0.08 0.06
0.8 0.6 0.4 0.2 0 0.19 0.44
0.81 0.65
0.89
0.03 0.02 7 8
1
2
3
4
5
6
1
2
3
4
5
6
7
8
灰度级
灰度级
MATLAB做的图像空域增强

一、空域中的平滑处理1、选择一幅灰度图像;2、分别叠加零均值高斯噪声及胡椒盐噪声(可用Matlab中的imnoise实现);3、对两幅噪声图像进行3x3及5x5均值滤波;4、对两幅噪声分别进行3x3及5x5中均滤波;5、显示滤波后的图像,观察对比两种滤波器的效果。
二、空域中的锐化处理1、选择一幅边缘较模糊的灰度图像;2、利用Sobel算子对此图像进行边缘增强;3、利用Laplacian算子对此图像进行边缘增强;4、显示增强图像,观察不同算子的增强效果及特点。
高斯处理:I = imread('e:\xiao.bmp');J = imnoise(I,'gaussian',0,0.005); %添加高斯噪声imwrite(J,'e:\gaussian.bmp'); %保存q=double(J); %将图像数据unit型转化成double型for i=2:487 %用3*3掩膜做均值处理for j=2:353Q(i,j)=round(1/9*(q(i-1,j-1)+q(i-1,j)+q(i-1,j+1)+q(i,j-1) +q(i,j)+q(i,j+1)+q(i+1,j-1)+q(i+1,j)+q(i+1,j+1)));endendP=mat2gray(Q); %将图像数据double型转化成unit型imwrite(P,'e:\junzhi 3.bmp'); %保存for i=3:486 %用5*5掩膜做均值处理for j=3:352R(i,j)=round(1/25*(q(i-2,j-2)+q(i-1,j-2)+q(i,j-2)+q(i+1,j -2)+q(i+2,j-2)+q(i-2,j-1)+q(i-1,j-1)+q(i,j-1)+q(i+1,j-1)+ q(i+2,j-1)+q(i-2,j)+q(i-1,j)+q(i,j)+q(i+1,j)+q(i+2,j)+q(i -2,j+1)+q(i-1,j+1)+q(i,j+1)+q(i+1,j+1)+q(i+2,j+1)+q(i-2,j +2)+q(i-1,j+2)+q(i,j+2)+q(i+1,j+2)+q(i+2,j+2)));endendr=mat2gray(R); %将图像数据double型转化成unit 型imwrite(r,'e:\junzhi 5.bmp'); %保存z=[]; %申请一个空距阵for i=2:487 %用3*3掩膜做中值处理for j=2:353z(1)=q(i-1,j-1);z(2)=q(i-1,j);z(3)=q(i-1,j+1);z(4)=q(i,j-1);z(5)=q(i,j);z(6)=q(i,j+1);z(7)=q(i+1,j-1);z(8)=q(i+1,j);z(9)=q(i+1,j+1);for m=1:9for n=m:8if(z(n)>z(n+1))t=z(n);z(n)=z(n+1);z(n+1)=t;endn=n+1;endm=m+1;endp(i,j)=z(5);endendu=mat2gray(p); %将图像数据double型转化成unit型imwrite(u,'e:\zhongzhi 3.bmp'); %保存z=[]; %申请一个空距阵for i=3:486 %用5*5掩膜做中值处理for j=3:352z(1)=q(i-2,j-2);z(2)=q(i-1,j-2);z(3)=q(i,j-2);z(4)=q(i+1,j-2);z(5)=q(i+2,j-2);z(6)=q(i-2,j-1);z(7)=q(i-1,j-1);z(8)=q(i,j-1);z(9)=q(i+1,j-1);z(10)=q(i+2,j-1);z(11)=q(i-2,j);z(12)=q(i-1,j);z(13)=q(i,j);z(14)=q(i+1,j);z(15)=q(i+2,j);z(16)=q(i-2,j+1);z(17)=q(i-1,j+1);z(18)=q(i,j+1);z(19)=q(i+1,j+1);z(20)=q(i+2,j+1);z(21)=q(i-2,j+2);z(22)=q(i-1,j+2);z(23)=q(i,j+2);z(24)=q(i+1,j+2);z(25)=q(i+2,j+2);for m=1:25for n=m:24if(z(n)>z(n+1))t=z(n);z(n)=z(n+1);z(n+1)=t;endn=n+1;endm=m+1;endd(i,j)=z(13);endendD=mat2gray(d); %将图像数据double型转化成unit 型imwrite(D,'e:\zhongzhi 5.bmp'); %保存for i=2:487 %用laplacian强处理for j=2:353g(i,j)=5*q(i,j)-[q(i+1,j)+q(i-1,j)+q(i,j-1)+q(i,j+1)];endendU=mat2gray(g); %将图像数据double型转化成unit型imwrite(u,'e:\laplacian.bmp'); %保存for i=2:487 %用sobel算子处理for j=2:353y(i,j)=-q(i-1,j-1)-2*q(i-1,j)-q(i-1,j+1)+q(i,j)+q(i+1,j-1 )+2*q(i+1,j)+q(i+1,j+1);endendt=mat2gray(y); %将图像数据double型转化成unit型imwrite(t,'e:\sobel.bmp'); %保存胡椒盐噪声:I = imread('e:\xiao.bmp');K = imnoise(I,'salt & pepper',0.02); %添加胡椒盐噪声imwrite(K,'e:\salt & pepper.bmp');q=double(K); %将图像数据unit型转化成double型for i=2:487 %用3*3掩膜做均值处理for j=2:353Q(i,j)=round(1/9*(q(i-1,j-1)+q(i-1,j)+q(i-1,j+1)+ q(i,j-1)+q(i,j)+q(i,j+1)+q(i+1,j-1)+q(i+1,j)+q(i+ 1,j+1)));endendP=mat2gray(Q); %将图像数据double型转化成unit型imwrite(P,'e:\junzhi 3.bmp'); %保存for i=3:486 %用5*5掩膜做均值处理for j=3:352R(i,j)=round(1/25*(q(i-2,j-2)+q(i-1,j-2)+q(i,j-2) +q(i+1,j-2)+q(i+2,j-2)+q(i-2,j-1)+q(i-1,j-1)+q(i, j-1)+q(i+1,j-1)+q(i+2,j-1)+q(i-2,j)+q(i-1,j)+q(i, j)+q(i+1,j)+q(i+2,j)+q(i-2,j+1)+q(i-1,j+1)+q(i,j+ 1)+q(i+1,j+1)+q(i+2,j+1)+q(i-2,j+2)+q(i-1,j+2)+q( i,j+2)+q(i+1,j+2)+q(i+2,j+2)));endendr=mat2gray(R); %将图像数据double型转化成unit型imwrite(r,'e:\junzhi 5.bmp'); %保存z=[]; %申请一个空距阵for i=2:487 %用3*3掩膜做中值处理for j=2:353z(1)=q(i-1,j-1);z(2)=q(i-1,j);z(3)=q(i-1,j+1);z(4)=q(i,j-1);z(5)=q(i,j);z(6)=q(i,j+1);z(7)=q(i+1,j-1);z(8)=q(i+1,j);z(9)=q(i+1,j+1);for m=1:9for n=m:8if(z(n)>z(n+1))t=z(n);z(n)=z(n+1);z(n+1)=t;endn=n+1;endm=m+1;endp(i,j)=z(5);endendu=mat2gray(p); %将图像数据double型转化成unit型imwrite(u,'e:\zhongzhi 3.bmp'); %保存z=[]; %申请一个空距阵for i=3:486 %用5*5掩膜做中值处理 for j=3:352z(1)=q(i-2,j-2);z(2)=q(i-1,j-2);z(3)=q(i,j-2);z(4)=q(i+1,j-2);z(5)=q(i+2,j-2);z(6)=q(i-2,j-1);z(7)=q(i-1,j-1);z(8)=q(i,j-1);z(9)=q(i+1,j-1);z(10)=q(i+2,j-1);z(11)=q(i-2,j);z(12)=q(i-1,j);z(13)=q(i,j);z(14)=q(i+1,j);z(15)=q(i+2,j);z(16)=q(i-2,j+1);z(17)=q(i-1,j+1);z(18)=q(i,j+1);z(19)=q(i+1,j+1);z(20)=q(i+2,j+1);z(21)=q(i-2,j+2);z(22)=q(i-1,j+2);z(23)=q(i,j+2);z(24)=q(i+1,j+2);z(25)=q(i+2,j+2);for m=1:25for n=m:24if(z(n)>z(n+1))t=z(n);z(n)=z(n+1);z(n+1)=t;endn=n+1;endm=m+1;endd(i,j)=z(13);endendD=mat2gray(d); %将图像数据double型转化成unit型imwrite(D,'e:\zhongzhi 5.bmp'); %保存for i=2:487 %用laplacian强处理for j=2:353g(i,j)=5*q(i,j)-[q(i+1,j)+q(i-1,j)+q(i,j-1)+q(i,j +1)];endendU=mat2gray(g); %将图像数据double型转化成unit型imwrite(U,'e:\laplacian.bmp'); %保存for i=2:487 %用sobel算子处理for j=2:353y(i,j)=-q(i-1,j-1)-2*q(i-1,j)-q(i-1,j+1)+q(i,j)+q(i+1,j-1)+2*q(i+1,j)+q(i+1,j+1);endendt=mat2gray(y); %将图像数据double型转化成unit型imwrite(t,'e:\sobel.bmp'); %保存>>。
灰度图像增强算法研究

灰度图像增强算法研究随着科技的发展,数码相机、摄像机已经逐渐取代了传统的胶片相机,人们通过拍摄得到了大量的图片和视频。
然而,由于种种原因,这些图片或者视频中的灰度信息并不总是完美的,因此需要进行灰度图像增强处理。
本文将对灰度图像增强的相关算法进行研究和讨论。
一、灰度图像增强的概念和方法灰度图像增强,是指通过一系列的算法或方法来将低对比度的图像转换成更高对比度的图像,从而提高其质量和观感效果。
灰度图像增强既可以用于人眼直观感受的图像增强,也可以用于计算机视觉相关领域的图像增强。
常见的灰度图像增强方法包括线性变换、直方图均衡化、局部增强、非线性变换以及基于深度学习的增强方法等。
其中,线性变换是最基本的一种方法,常用于对灰度值进行简单的调整,如亮度、对比度等。
而直方图均衡化则是常用于对整幅图像进行均衡化,将图像的像素值范围映射到一定的区间内,以增强图像的对比度。
而局部增强则是从整幅图像的角度出发,对图像的某些局部区域进行增强。
常见的局部增强方法包括拉普拉斯锐化、高斯滤波和中值滤波等。
对于非线性变换方法,常用于增强特定场景下的图像,比如夜间拍摄、背景有强光照射的图像等。
基于深度学习的增强方法则是由训练好的卷积神经网络通过对图像进行学习提高图像的质量。
二、灰度图像增强算法的研究进展近些年来,随着计算机技术和机器学习的快速发展,灰度图像增强算法也在不断地进行多方面的研究和改进。
比较有代表性的有基于深度学习的灰度图像增强方法,通过搭建深度神经网络以及大量的数据训练,实现对各种场景下的图像质量进行提高。
基于深度学习的灰度图像增强方法不仅能够处理单张灰度图像,还可以对视频中的灰度部分进行增强处理。
除了基于深度学习的方法外,还有一些理论上的算法也值得关注和研究。
比如,在直方图均衡化算法的基础上,添加更多的约束条件,使得图像中的细节更丰富,效果更佳。
另外,还有些算法引入了抑制噪声的方法,可以有效地消除图像中的噪声。
三、灰度图像增强算法应用的前景灰度图像增强在计算机视觉和图像处理领域中有着广泛的应用,如医学图像、安全监控图像等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表课程设计任务书摘要空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
MATLAB这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以利用MATLAB软件来对图像进行空域增强在数字图像处理的应用中具有很大的优势。
图像变换增强是利用一系列的变换方法使图像的对比度得到提升,也就达到了增强图像的目的--更便于观察,更容易区分不同灰度的图像。
根据函数的性质,灰度变换的方法有线性灰度变换、分段线性灰度变换、非线性灰度变换。
对于灰度局限在某一个很小范围内的数字图像,如果用线性函数对图像的每一个像素进行线性扩展,扩大像素的对比度,将有效地改善视觉效果。
本文利用MATLAB软件对灰度图像分别进行了线性灰度变换增强,非线性灰度增强和分段线性灰度增强,达到了提高图像对比度,增强图像效果的目的,证明了图像变换增强在数字图像处理中的重要作用。
关键词:MATLAB;灰度图像;线性变换;非线性变换目录1设计目的 (1)2设计方案 (1)2.1 灰度变换增强的概念 (1)2.2 灰度变换增强流程 (2)3设计内容 (3)3. 1 线性灰度变换的概述 (3)3. 2 分段线性灰度变换的概述 (3)3. 3非线性灰度变换的概述 (4)4程序代码设计 (5)4.1线性灰度变换增强 (5)4.1.1线性变换增强流程 (5)4.1.2线性变换增强设计 (5)4.2分段线性灰度变换程序代码 (6)4.2.1分段线性变换增强流程 (6)4.2.2分段线性变换增强设计 (6)4.3非线性灰度变换程序代码 (8)4.3.1非线性变换增强流程 (8)4.3.2非线性变换增强设计 (8)5仿真结果与分析 (10)5.1线性灰度变换仿真结果 (10)5.2分段线性灰度变换仿真结果 (11)5.3非线性灰度变换仿真结果 (12)5.4结果分析 (12)结论 (14)参考文献 (15)1 设计目的空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
灰度变换是空域变换的一种重要方式,可使图像对比度扩展,图像清晰,特征明显。
本实验中,我们就用灰度变换来对灰度图像进行处理。
(1)熟练掌握MATLAB软件的基本操作(2)学会掌握MATLAB软件的程序编程(3)查阅相关资料并分析,掌握灰度变换增强的主要思路(4)培养独立分析和解决问题的能力,学会撰写课程设计的总结报告(5)善于总结和改进方案,提高可实施性和高效性。
2 设计方案2.1 灰度变换增强的概念灰度变换可使图像对比度扩展,图像清晰,特征明显。
它是图像增强的重要手段。
在图像空间所进行的灰度变换是一种点处理方法,它将输入图像中的每个像素(x,y)的灰度值f(x,y),通过映射函数变换成输出图像中的灰度g(x,y),即g(x,y)=T[ f(x,y)] (2.1)根据函数的性质,灰度变换的方法有以下几种:(1)线性灰度变换。
(2)分段线性灰度变换。
(3)非线性灰度变换。
对于线性灰度变换和非线性灰度变换,是直接用确定的公式依次对每个像素进行处理,也称为直接线性变换。
[1]2.2 灰度变换增强流程图2.1灰度变换增强流程如图2.1所示,f(x,y)为一张尺寸合适的原始灰度图像,首先判断是否要将整张图像的灰度值都进行拉伸,如果是整张图片拉伸,就选择线性变换增强;如果将图片的部分灰度值进行拉伸而另一部分进行压缩,则选择非线性变换增强或分段线性变换增强。
非线性变换增强和分段线性变换增强的区别在于,分段线性灰度变换是将原始图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围,而非线性变换拉伸是在整个灰度范围内采用统一的变换函数,利用变换函数的性质实现对不同灰度值区间的扩展和拉伸[2][3]3 设计内容3. 1 线性灰度变换的概述线性变换简单的线性灰度变换法可表示为g(x,y)=(d-c/b-a)[f(x,y)-a]+c ,其中:b 和a 分别是输入图像亮度分量的最大值和最小值,d 和c 分别是输出图像亮度分量的最大值和最小值。
经过线性灰度变化法,图像亮度分量的线性范围从[a,b]变化到[c,d],如图3.1所示:图3.1 线性拉伸示意图若图像中大部分像素的灰度级分布在区间[a,b]内,M 为原图的最大灰度级,只有很小一部分的灰度级超过了此区间,则为了改善增强效果,可以令:(3.1)由于人眼对灰度级别的分辨能力有限,只有当相邻像素的灰度值相差到一定程度时才能被辨别出来。
通过上述变换,图像中相邻像素灰度的差值增加,例如在曝光不足或过度的情况下,图像的灰度可能会局限在一个很小的范围内,这时得到的图像可能是一个模糊不清,似乎没有灰度层次的图像。
采用线性变换对图像中每一个像素灰度作线性拉伸,将有效改善图像视觉效果。
[4]3.2分段线性灰度变换的概述为了突出图像中感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换,它将图像灰度区间分成两段乃至多段分别作线性变换。
⎪⎪⎩⎪⎪⎨⎧+---=d c a y x f ab c d c y x g ]),([),(M y x f b b y x f a a y x f ≤≤≤≤≤≤),(),(),(0进行变换时,把0~255整个灰度值区间分为若干线段,每一个直线段都对应一个局部的线性变换关系。
常用的三段线性变换如图3.2所示:图3.2 分段线性拉伸示意图图中,中间段的灰度得到拉伸,两端灰度被压缩公式如3.2所示:(3.2) 3.3非线性灰度变换的概述非线性拉伸不是对图像的整个灰度范围进行扩展,而是有选择的对某一灰度范围进行扩展,其他范围的灰度值则有可能被压缩。
非线性拉伸利用变换函数的数学性质实现对不同灰度值区间的扩展与压缩。
下面介绍其中一种非线性扩展法:对数变换。
对数变换,是指输出图像的像素点的灰度值与对应的输出图像的像素灰度值之间为对数关系,其一般公式为:g(x,y)=a+ln[f(x,y)+1]/blnc ,式中a,b,c 都是可以选择的参数,式中f(x,y)+1是为了避免对0求对数,确保ln[f(x,y)+1]≥0。
当f(x,y)=0时,ln[f(x,y0+1),则y=a,则a 为y 轴上的截距,确定了变换曲线的初始位置的变换关系b,c ,两个参数确定变换曲线的变换速率。
对数变换扩展了低灰度区,压缩了高灰度区,能使低灰度区的图像较清晰地显示出来。
[5] ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧+---+---=d b y x f b d c a y x f a b c d y x f a c y x g M M f g ]),([]),([),(),(M fy x f b b y x f a a y x f ≤≤≤≤≤≤),(),(),(04 程序代码设计4.1 线性变换增强4.1.1线性变换增强流程图4.1 线性变换流程如图4.1所示,先将输入的灰度图像f(x,y)的位置及标签设置好之后,选择线性函数对原灰度图像进行灰度拉伸的处理,增强其对比度,得到变换之后的图像并输出。
4.1.2 线性灰度变换增强设计I = imread('E:\fish.jpg'); % 读入原图像I = im2double(I); % 转换数据类型为double[M,N] = size(I); % 计算图像面积figure(1);subplot(121); % 打开新窗口,设置图像位置imshow(I); % 显示原图像title('原图像'); % 定义标签Fa = 6; Fb = -160;O = Fa .* I + Fb/255; % 线性变换公式figure(1);subplot(122);imshow(O);title('灰度变换后的图像');4.2分段线性变换增强4.2.1分段线性变换增强流程图4.2分段线性变换如图4.2所示,先将输入的灰度图像f(x,y)的位置及标签设置好之后,再设置灰度值变化的范围,分别为0-70,70-180和180-255。
这三个范围的变化函数不同,从而达到使图像的灰度值拉伸程度不同的目的。
经过分段线性变换后,得到变换后的图像g(x,y)。
[6]4.2.2 分段线性灰度变换增强设计A=imread('E:\girl.jpg'); % 读入原图像X1=rgb2gray(A); % 将彩色图像变成灰度二值图像subplot(221);imshow(X1); %输出图像title('原图像'); %在原始图像中加标题f0=0;g0=0; %进行灰度级线性分段增强;f1=70;g1=30;f2=180;g2=230;f3=255;g3=255;subplot(222);plot([f0,f1,f2,f3],[g0,g1,g2,g3]);axis tight,xlabel('f'),ylabel('g'),title('灰度变换曲线');%绘制灰度变换曲线%增强对比度r1=(g1-g0)/(f1-f0);b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);b3=g2-r3*f2;[m,n]=size(X1);X2=double(X1); %变换矩阵中的每一个元素for i=1:m;for j=1:nf=X2(i,j);g(i,j)=0;if(f>=0)&(f<=f1)g(i,j)=r1*f+b1;elseif (f>=f1)&(f<=f2)g(i,j)=r2*f+b2;elseif (f>=f2)&(f<=f3)g(i,j)=r3*f+b3;endendendsubplot(223);imshow(mat2gray(g)); %输出变换之后的图像title('分段线性变换后的图像');4.3非线性变换增强4.3.1非线性变换增强流程图 4.3 非线性变换如图4.3所示,先将输入图像f(x,y)的位置和标签设置好之后,确定图像灰度拉伸和压缩的范围,按照要求设置参数,利用对数函数对原始灰度图像进行非线性变换得到输出图像g(x,y)。
[7]4.3.2 非线性灰度变换增强设计I=imread('E:\knot.png'); %读取图像I=mat2gray(I); %将一个矩阵转化为灰度图像的数据格式I=im2double(I); %转化为双精度J=log(I+1);subplot(1,2,1);Imshow(I); %显示图像title('原图像');subplot(1,2,2);Imshow(J);title('非线性对数变换后的图像')5 仿真结果与分析在MATLAB7.1中运行以上程序,分别对三幅灰度图像分别进行线性变换,分段线性变换和非线性变换后得到灰度被拉伸和压缩的图像。