文档视界 最新最全的文档下载
当前位置:文档视界 › 基于灰度变换的图像增强及MATLAB实现

基于灰度变换的图像增强及MATLAB实现

基于灰度变换的图像增强及MATLAB实现
基于灰度变换的图像增强及MATLAB实现

二 〇 〇 九 年 十 二 月

数字图像处理结业论文

学 号: 200720906041

题 目: 基于灰度变换的图像增强及Matlab 实现 学生姓名: 崔跃鹏 学 院: 理学院 系 别: 物理

系 专 业: 电子信息科学与技术 班 级: 电科07-2班 授课教师: 杨秀清 学号:200720906041

基于灰度变换的图像增强及Matlab实现

摘要:图像增强不仅可以用于提高图像的视觉外观,而且还是图像边缘检测以及特征提取等技术的基础。此文主要研究用于增强图像的灰度变换方法,包括线性灰度变换、非线性灰度变换与直方图均衡化方法。采用MA TLAB软件进行编程,运用上述算法对图像进行处理。实验结果表明,处理后的图像对比度得到了明显改善,增强了图像的视觉效果。在以上算法中可以通过灵活设置相关参数获取不同的图像增强效果,并且具有处理速度快的优点。

关键字:数字图像处理;图像增强;直方图;均衡化;规定化;matlab

一引言:图像增强技术是不考虑图像降质的原因,只将图像中感兴趣的特征有选择地突出,而衰减其不需要的特征,故改善后的图像不一定要去逼近原图像。如突出目标物轮廓,去除各类噪音,将黑白图像转变为伪彩色图像。从图像质量评价观点来看,图像增强的主要目的是提高图像的可懂度,更有利于人的视觉感知

二图像增强的重要方法简介:

图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术等。图像增强有图像对比度增强、亮度增强,轮廓增强等等。图像增强有两类方法:空间域法和频率域法。空间域法主要在空间域内对像素灰度值直接运算处理,如图像的灰度变换直方图修正图像空域平滑和蜕化处理。频域法就是在图像的某种变化域内,对图像的变换值进行预算,如先对图像进行傅里叶变换,在进行滤波处理,最后将滤波处理后的图像变换值反变换到空间域,从而获得增强后的图像。

1、对比度增强

是一种通过改变图像像元的亮度分布态势,扩展灰度分布区间来改变图像像元对比度,从而改善图像质量的图像处理方法。因为亮度值是辐射强度的反映,所以也称为辐射增强。常用的方法有对比度线性变换和非线性变换。其关键是寻找到一个函数,以此函数对图像中每一个像元进行变换,使像元得到统一的重新分配,构成得到反差增强的图像

2、直方图增强

(1)直方图均衡化(2)直方图规定化

3、平滑平滑图像中出现某些亮度变化过大的区域,或出现不该有的亮点(“噪声”)时采用平滑方法可以减小变化,使亮度平缓或去掉不必要“噪声”点。它实际上是使图像中高频成分消退,即平滑图像的细节,降低其反差,保存低频成分,在频域中称为低通滤波。

4、锐化的作用在于提高边缘灰度值的变化率,使界线更加清晰。它是增强图像中的高频成分,在频域处理中称为高通滤波,也就是使图像细节的反差提高,也称边缘增强。要突出图像的边缘、线状目标或亮度变化率大的部分常采用锐化方法。

三直方图增强及matlab实现

3.1 直方图均衡化

直方图均衡化是一种最常用的直方图修正。它是把给定图象的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息量)的图象为均衡化图象。直观地讲,直方图均衡化导致图象的对比度增加。直方图均衡化基本做法是将每个灰度区间等概率分布代替了原来的随机分布,即增强后的图象中每一灰度级的像元数目大致相同。直方图均衡化可使得面积最大的地物细节得以增强,而面积小的地物与其灰度接近的地物进行合并,形成综合地物。减少灰度等级换取对比度的增大要注意的是,均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。

matlab直方图均衡化的函数是histeq,

I = imread('pout.tif');

[J,T] = histeq(I);

figure,plot((0:255)/255,T);

图像的灰度直方图均衡化公式:

公式中,T(r k)来表示原图像的第k个灰度级的转换函数。∑表示总和。∑n j/N表示0~j个灰度级的像素数量总和与像素总数的比值,也就是前面讲过的百分位(当前色阶与前面色阶的所有像素数量÷总像素数量)。∑P r(r k)表示第0~k的灰度级出现概率累积相加。因为s是归一化的数值(s∈[0,1]),要转换为0~255的颜色值,需要再乘上255,即S=∑P r(r k)*255。

下面给出直方图均衡化的源程序:ourcePic=imread('D:\sourcePic.JPG'); %读取原图象 [m,n,o]=size(sourcePic);

grayPic=rgb2gray(sourcePic);

figure,imshow(sourcePic);

figure,imshow(grayPic);

gp=zeros(1,256); %计算各灰度出现的概率

for i=1:256

gp(i)=length(find(grayPic==(i-1)))/(m*n); end

figure,bar(0:255,gp);

title('原图像直方图');

xlabel('灰度值');

ylabel('出现概率');

newGp=zeros(1,256); %计算新的各灰度出现的概率

S1=zeros(1,256);

S2=zeros(1,256);

tmp=0;

for i=1:256

tmp=tmp+gp(i);

S1(i)=tmp;

S2(i)=round(S1(i)*256);

end

for i=1:256

newGp(i)=sum(gp(find(S2==i)));

end

figure,bar(0:255,newGp);

title('均衡化后的直方图');

xlabel('灰度值');

ylabel('出现概率');

newGrayPic=grayPic; %填充各像素点新的灰度值

for i=1:256

newGrayPic(find(grayPic==(i-1)))=S2(i); end

figure,imshow(newGrayPic);

3.2直方图规定化程序代码:

I=imread('cameraman.tif');

subplot(121)

imshow(I);

title('原始图像');

subplot(122)

imhist(I,64)

%绘制图像的直方图,n=64为灰度图像灰度级,若I为灰度图像,默认n=256;若I为二值图像,默认n=2。

title('图像的直方图');

(请自己运行查看)

n=256时:

(请自己运行查看)

下面利用直方图均衡化增强图像的对比度:

I=imread('cameraman.tif');

J=histeq(I);

%将灰度图像转换成具有64(默认)个离散灰度级的灰度图像

imshow(I)

title('原始图像')

figure,imshow(J)

title('直方图均衡化后的图像')

figure(1)

subplot(121);imhist(I,64)

title('原始图像的直方图')

subplot(122);imhist(J,64)

title('均衡化的直方图')

(请自己运行查看)

分析:从上图中可以看出,用直方图均衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。直方图均衡化就是通过变换函数histeq将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。

下面利用直方图规定化对图像进行增强:

I=imread('cameraman.tif');

figure,imshow(I);

title('原始图像');

hgram=50:2:250; %规定化函数

J=histeq(I,hgram);

figure,imshow(J);

title('直方图规定化后的图像');

figure,imhist(I,64);

title('原始图像的直方图');

figure,imhist(J,64);

title('直方图规定化后的直方图');

运行结果:

变换灰度间隔后的图像和直方图:

hgram=50:1:250; hgram=50:5:250;

四总结

直方图均衡化是灰度变换的一个重要应用,它高效且易于实现,广泛应用于图像增强处理中。图像的像素灰度变化是随机的,直方图的图形高低不齐,直方图均衡化就是用一定的算法使直方图大致平和。

均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。

如果原始图像对比度本来就很高,如果再均衡化则灰度调和,对比度降低。在泛白缓和的图像中,均衡化会合并一些象素灰度,从而增大对比度。均衡化后的图片如果再对其均衡化,则图像不会有任何变化。

灰度直方图均衡化的算法,简单地说,就是把直方图的每个灰度级进行归一化处理,求每种灰度的累积分布,得到一个映射的灰度映射表,然后根据相应的灰度值来修正原图中的每个像素。

经典的直方图均衡化算法可能存在以下一些不足:

1输出图像的实际灰度变化范围很难达到图像格式所允许的最大灰度变化范围。

2输出图像的灰度分布直方图虽然接近均匀分布, 但其值与理想值1/n仍有可能存在较大的差异, 并非是最佳值。

输出图像的灰度级有可能被过多地合并。由于灰度的吞噬也易造成图像信息的丢失。

五参考文献

1基于灰度直方图的图像增强算法

The picture based on grey level histogram strengthens algorighms

江开猛信阳农业高等专修学院学报

2何建东,耿南.数字图像处理.西安:西安电子科技大学出版社,2003 3 数字图像处理陈传波金先级编机械工业出版社

图像灰度变换实验报告

图像灰度变换报告 一.实验目的 1.学会使用Matlab ; 2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响; 二.实验内容 1.熟悉Matlab 中的一些常用处理函数 读取图像:img=imread('filename'); //支持TIF,JPEG,GIF,BMP,PNG 等文件格式。 显示图像:imshow(img,G); //G 表示显示该图像的灰度级数,如省略则默认为256。 保存图片:imwrite(img,'filename'); //不支持GIF 格式,其他与imread 相同。 亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in 至high_in 之间的值映射到low_out 至high_out 之 间,low_in 以下及high_in 以上归零。 绘制直方图:imhist(img); 直方图均衡化:histeq(img,newlevel); //newlevel 表示输出图像指定的灰度级数。 2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 3 .产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65 1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。 4.产生灰度变换函数T2,使得: s = 5.用T2imwrite 保存处理后的新图像。 6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。 7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使

非常全非常详细的MATLAB数字图像处理技术

MATLAB数字图像处理 1 概述 BW=dither(I)灰度转成二值图; X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap; [X,map]=gray2ind(I,n)灰度到索引; [X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2; X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v; BW=im2bw(I,level)灰度图I到二值图; BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。 BW=im2bw(RGB,level)RGB到二值图; I=ind2gray(X,map)索引图到灰度图; RGB=ind2rgb(X,map)索引图到RGB; I=rgb2gray(RGB)RGB到灰度图。 2 图像运算 2.1 图像的读写 MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。 读取(imread): [1] A=imread(filename,fmt) [2] [X,map]=imread(filename,fmt) [3] […]=imread(filename) [4] […]=imread(URL,…) 说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。 写入(imwrite): [1] R=imwrite(A,filename,fmt); [2] R=imwrite(X,map,filename,fmt); [3] R=imwrite(…,filename); [4] R=imwrite(…,Param1,V al1,Param2,Val2) 说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。 2.2 图像的显示 方法1:使用Image Viewer(图像浏览器),即运用imview函数。 同时显示多帧图像的所有帧,可用到montage函数。

灰度变换_原理_及Matlab程序

图像灰度变换 内容摘要 1 引言 通常经输入系统获取的图像信息中含有各种各样的噪声与畸变,例如室外光照度不够均匀会造成图像灰度过于集中;由摄像头获得的图像经过A/D转换、线路传送都会产生噪声污染等等,这些不可避免地影响系统图像清晰度,降低了图像质量,轻者表现为图像不干净,难以看清细节;重者表现为图像模糊不清,连概貌都看不出来。因此,在对图像经行分析前,必须对图像质量经行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强的目的是设法改善图像的视觉效果,提高图像的可读性,将图像中感兴趣的特征有选择的突出,便于人与计算机的分析和处理。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征。灰度变换是图像增强处理中一种非常基础直接的空间域图像处理方法。灰度变换是根据某种条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。 1.灰度的线性变换 当图像由于成像时曝光不足或过度, 由于成像设备的非线性或图像记录设备动态范围太窄等因素, 都会产生对比度不足的弊病, 使图像中的细节分辨不清。这时如将图像灰度线性扩展, 常能显著改善图像的主观质量。假设原图像f (x, y ) 的灰度范围是[ a, b ] 希望变换后图像的灰度范围扩展到[ c, d ] 则: M f 表示f ( x, y ) 的最大值。在线性灰度变换中,灰度执照完全线性变换函数进行变换。该线性灰度线性变换函数f ( r ) 是一个一维线性函数: 其中, a 为线性变换的斜率, b 为线性变换函数在y 轴的截距, 如图1所示。

在灰度的线性变换中, 当a > 1时, 输出图像的对比度将增大; 当a < 1时, 输出图像的对比 度将减小; 当a = 1且b ?0时, 所进行的操作仅使所有像素的灰度值上移或下移, 其效果 是使整个图像更暗或更亮; 如果a < 0, 则暗区域将变亮, 亮区域将变暗。 2分段线性灰度变换 为了突出感兴趣的目标或者灰度区间, 相对抑制那些不感兴趣的灰度区域, 可采用分段线性法。常用的是三段线性变换。分段线性变换称为图像直方图的拉伸, 它与完全线性变换类似, 其不同之处在于其变换函数是分段的, 如图2所示: 其变换函数表达式如下: 灰度拉伸可以更加灵活地控制输出灰度直方图的分布, 它可以有选择地拉伸某段灰度区间以改善输出图像。图2所示的变换函数的运算结果是将原图在r1 和r2 之间的灰度拉伸到s1 和s2 之间。如果一幅图像灰度集中在较暗的区域而导致图像偏暗, 可以用灰度拉伸功能来拉伸(斜率> 1) 物体灰度区间以改善图像; 同样如果图像灰度集中在较亮的区域而导致图像偏亮, 也可以用灰度拉伸功能来压缩(斜率< 1) 物体灰度区间来改善图像质量。 3非线性灰度变换

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

成绩评定表

课程设计任务书

摘要 空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。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)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

matlab图像处理图像灰度变换直方图变换

附录1 课程实验报告格式 每个实验项目包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决方法。 实验一:直方图灰度变换 A:读入灰度图像‘debye1.tif’,采用交互式操作,用improfile绘制一条线段的灰度值。 imread('rice.tif'); imshow('rice.tif'),title('rice.tif'); improfile,title('主对角线上灰度值')

B:读入RGB图像‘flowers.tif’,显示所选线段上红、绿、蓝颜色分量的分布imread('flowers.tif'); imshow('flowers.tif'),title('flowers.tif'); improfile,title('主对角线红绿蓝分量') C:图像灰度变化 f=imread('rice.png'); imhist(f,256); %显示其直方图 g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像) figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1] g2=imadjust(f,[0.5 0.75],[0 1]); figure,imshow(g2) 图像灰度变换处理实例: g=imread('me.jpg'); imshow(g),title('原始图片'); h=log(1+double(g)); %对输入图像对数映射变换 h=mat2gray(h); %将矩阵h转换为灰度图片

h=im2uint8(h); %将灰度图转换为8位图 imshow(h),title('转换后的8位图'); 运行后的结果: 实验二:直方图变换 A:直方图显示 I=imread('cameraman.tif'); %读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题运行结果如下:

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

实验一Matlab图像处理基础及图像灰度变换

实验一Matlab图像处理基础及图像灰度变换 一、实验目的 了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。 二、实验内容 1.从硬盘中读取一幅灰度图像; 2.显示图像信息,查看图像格式、大小、位深等内容; 3.用灰度面积法编写求图像方图的Matlab程序,并画图; 4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。 5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。 三、知识要点 1.Matlab6.5支持的图像图形格式 TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。 2.与图像处理相关的最基本函数 读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo; 3.Matlab6.5支持的数据类 double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical. 4.Matlab6.5支持的图像类型 Intensity images, binary images, indexed images, RGB image 5.数据类及图像类型间的基本转换函数 数据类转换:B = data_class_name(A);

实验三 图像增强--灰度变换

实验三图像增强—灰度变换 一、实验目的: 1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身,在空间域内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作其表达式为: g(x,y)=T[f(x,y)] 其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。 定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。 灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r) 其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。 核心函数是imhist,其基本语法为: h=imhist(f,b) 其中,f为输入图像,h为其直方图h(),b是用于形成直方图像的灰度级的个数。如果b未包含在此变量中,则默认值为256.如要处理一幅uint8

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

Matlab二维灰度图象分析及变换处理要点

《基础强化训练》设计报告 题目:二维灰度图象的统计分析及变换处理专业班级: 学生姓名: 指导教师: 2010 年7 月17 日

《基础强化训练》设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 二维灰度图象的统计分析及(FFT)变换处理 课程设计目的: ①较全面了解常用的数据分析与处理原理及方法; ②能够运用相关软件进行模拟分析; ③掌握基本的文献检索和文献阅读的方法; ④提高正确地撰写论文的基本能力。 课程设计内容和要求 ①采集一幅像素大于64*64黑白图像; ②常规的数学统计数据处理:计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图; ③采用[FFT(傅立叶变换)]对图像进行分析 初始条件: ①MATLAB软件。 ②数字信号处理与图像处理基础知识。 时间安排: 第18周周一:安排任务 19~20周:仿真设计(鉴主13楼计算机实验室) 第20周周六:完成(答辩,提交报告,演示) 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (1) Abstract (2) 1 数据采集 (3) 1.1图像的选取 (3) 1.2 MATLAB读取方法 (4) 1.2.1 编辑M文件 (4) 1.2.2 图像的读取 (4) 1.2.3查看图像的格式 (6) 1.2.4 灰度值的获取 (7) 2 数据统计处理 (8) 2.1 均值计算 (8) 2.1.1 原理及计算公式 (8) 2.1.2 计算程序及结果 (9) 2.2 各像素点灰度值的标准差 (9) 2.3 各像素点灰度值的方差 (10) 2.4 灰度直方图 (11) 3.傅立叶变化 (13) 3.1 原理及计算公式 (13) 3.2 变换及逆变换程序及结果 (14) 3.3对变换后的图像的说明 (16) 4.总结(心得体会) (17) 5.参考文献 (18)

图像灰度变换增强

图像灰度变换增强 摘要:灰度变换是基于点操作的增强方法,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,如增强处理中的对比度增强。对比度增强可以采用线性拉伸和非线性拉伸。线性拉伸可以将原始输入图像中的灰度值不加区别地扩展。如果要求对局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理时,采用分段线性拉伸。非线性拉伸常采用对数扩展和指数扩展。对数扩展拉伸低亮度去,压缩高亮度区;指数扩展拉伸了高亮区,压缩了低亮度区。 关键词:图像增强,灰度变换,线性变换,分段线性变换,非线性变换 一. 概述 影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD (摄像头)获得的图像经过A/D (数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立"降质模型",再利用该模型,恢复原始图像。 根据图像增强处理过程所在的空间不同,图像增强可分为空余增强法和频域增强法两大类。频域增强是在图像的某种变换域内,对图像的变换系数值进行运算,即作某种修正,然后通过逆变换获得增强了的图像。空域增强则是指直接在图像所在的二维空间进行增强处理,既增强构成图像的像素。空域增强法主要有灰度变换增强,直方图增强,图像平滑和图像锐化等。 图像的灰度变换处理是图像增强处理技术中一种非常基础,直接的空间域图像处理法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 二. 灰度变换处理 灰度变换的过程可表示为:)],([),(y x f T y x g ,它是指将输入图像中每个像素

matlab图像的灰度变换

实验二 图像的灰度变换 一、实验目的 1、 理解数字图像处理中点运算的基本作用; 2、 掌握对比度调整与灰度直方图均衡化的方法。 二、实验原理 1、对比度调整 如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换: []n m y x f m M n N y x g +---=),(),(就可以实现这一要求。 MATLAB 图像处理工具箱中提供的imadjust 函数,可以实现上述的线性变换对比度调整。imadjust 函数的语法格式为: J = imadjust(I,[low_in high_in], [low_out high_out]) J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I 经过直方图调整后的新图像J ,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。 不使用imadjust 函数,利用matlab 语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB 的矩阵运算中要求所有的运算变量为double 型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。 2、直方图均衡化 直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。 MATLAB 图像处理工具箱中提供的histeq 函数,可以实现直方图的均衡化。 三、实验内容及要求 1、 用MATLAB 在自建的文件夹中建立example2.m 程序文件。在这个文件的程序中,将girl2.bmp 图像文件读出,显示它的图像及灰度直方图(可以发现其灰度值集中在一段区

图像处理灰度变换实验

一. 实验名称:空间图像增强(一) 一.实验目的 1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。 2.熟练掌握各种空间域图像增强的基本原理及方法。 3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。 4.熟悉直方图均衡化的基本原理、方法和实现。 二.实验原理 (一)数字图像的灰度变换 灰度变换是图像增强的一种经典而有效的方法。灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。 1、线性灰度变换 1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。 2)令原图像f(x,y)的灰度范围为[a,b],线性变换后得到图像g(x,y),其灰度范围为[c,d],则线性灰度变换公式可表示为

a y x f b y x f a b y x f c c a y x f a b c d d y x g <≤≤>?????+---=),(),(),(, ,]),([,),( (1) 由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。变换示意图如图1所示。 图1 线性灰度变换示意图 当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。 3)由上述性质可知,线性灰度变换能选择性地加强或降低特定灰度值范围内的对比度,故线性灰度变换同样也可做分段处理:对于有价值的灰度范围,将斜率调整为大于一,用于图像细节;对于不重要的灰度范围,将图像压缩,降低对比度,减轻无用信息的干扰。最常用的分段线性变换的方法是分三段进行线性变换。 在原图像灰度值的最大值和最小值之间设置两个拐点,在拐点处,原图像的灰度值分别为r 1,r 2,该拐点对应的变换后的图像的灰度值分别为s 1,s 2,另外,取原图像灰度的最小值为r 0,最大值为r m ,对应的变换后的灰度值分别为s 0,s m 。

数字图像处理实验报告:灰度变换与空间滤波(附带程序,不看后悔)

1.灰度变换与空间滤波 一种成熟的医学技术被用于检测电子显微镜生成的某类图像。为简化检测任务,技术决定采用数字图像处理技术。发现了如下问题:(1)明亮且孤立的点是不感兴趣的点;(2)清晰度不够,特别是边缘区域不明显;(3)一些图像的对比度不够;(4)技术人员发现某些关键的信息只在灰度值为I1-I2 的范围,因此,技术人员想保留I1-I2 区间范围的图像,将其余灰度值显示为黑色。(5)将处理后的I1-I2 范围内的图像,线性扩展到0-255 灰度,以适应于液晶显示器的显示。请结合本章的数字图像处理处理,帮助技术人员解决这些问题。 1.1 问题分析及多种方法提出 (1)明亮且孤立的点是不够感兴趣的点 对于明亮且孤立的点,其应为脉冲且灰度值为255(uint8)噪声,即盐噪声,为此,首先对下载的细胞图像增加盐噪声,再选择不同滤波方式进行滤除。 均值滤波:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8 个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。 优点:速度快,实现简单; 缺点:均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。 其公式如下: 使用矩阵表示该滤波器则为: 中值滤波:

滤除盐噪声首选的方法应为中值滤波,中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 其过程为: a、存储像素1,像素2 ....... 像素9 的值; b、对像素值进行排序操作; c、像素5 的值即为数组排序后的中值。优点:由于中值滤波本身为一种利用统计排序方法进行的非线性滤波方法,故可以滤除在排列矩阵两边分布的脉冲噪声,并较好的保留图像的细节信息。 缺点:当噪声密度较大时,使用中值滤波后,仍然会有较多的噪声点出现。自适应中值滤波: 自适应的中值滤波器也需要一个矩形的窗口S xy ,和常规中值滤波器不同的是这个窗口的大小会在滤波处理的过程中进行改变(增大)。需要注意的是,滤波器的输出是一个像素值,该值用来替换点(x, y)处的像素值,点(x, y)是滤波窗口的中心位置。 其涉及到以下几个参数: 其计算过程如下:

用matlab实现图像灰度变换课程设计

课程设计报告册 课程名称: MATLAB课程设计 课题名称:灰度变换增强 专业班级: 姓名: Bob Wang 学号: 15164 课程设计主要场所:信息楼220 时间: 指导教师:成绩:

前言 数字图像处理技术是20世界60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。 MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。我们学习掌握MATLAB,也可以说是在科学工具上与国际接轨。

目录 一、课程设计目的 (2) 二、设计任务及容 (2) 三、课题设计实验条件 (3) 四、涉及知识 (3) 五、具体设计过程及调试 (4) 5.1、图像的读入和显示 5.1.1、打开图像 (4) 5.1.2、显示原图像 (5) 5.1.3、图像灰度处理 (7) 5.1.4、显示灰阶后图像 (8) 5.2、直方图均衡化 5.2.1、生成直方图 (10) 5.2.2、直方图均衡化 (12) 5.3、灰度变换 5.3.1、线性变换 (9) 5.3.2、分段线性变换 (9) 5.3.3、非线性变换.................................... (9) 六、心得体会 (17) 七、参考文献 (18) 八、程序清单 (19)

matlab图像数据类型转换

uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1、在MATLAB中,数值一般都采用double型(64位)存储和运算. 2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。 3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样, 4、对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。调用格式均为image(x); colormap(map); 5、对于灰度图像,uint8表示范围[0,255],double型表示范围[0,1]。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255)); !!double转换成uint 8 I64=double (I8)/255; !!!uint转换成double 反之,imread根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread 把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在[0,1]内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double 因此 I2=im2double(I1) :把图像数组I1转换成double精度类型; 如果不转换,在对uint8进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 im2uint8():将图象数组转换成unit8类型 im2uint16():将图象数组转换成unit16类型 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 但是,问题的真正的解释其实应该是这样的。首先是在数据类型转换时候uint8和im2uint8的区别,uint的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。 图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精

图像运算 实验报告

实验报告 课程名称医学图像处理实验名称图像运算 专业班级 姓名 学号 实验日期 实验地点

2015—2016学年度第 2 学期

图4 skull原图像图5 cameraman原图像图6 两幅相加后的图像

图8 RGB原图图9 亮度增强50后的图像 图10 亮度增强100后的图像 分析:1)imadd是用于实现两图像灰度值相加的函数, 于我读取的skull imresize函数把skull 2)I和J进行相加后的图像如图

图12 背景图图13 减去背景图后的图像 开运算属于形态图像处理,是先腐蚀后膨胀,可以使边界平滑,消除尖刺,断开窄小的连接,保持面积大小不变;strel是用于构建结构元素对象, imopen(I,strel('disk',15))就是构建圆盘半径为的背景图,如图12所示; 函数是用于两幅图像的相减运算,如图所示,减去不均匀的部分后, 图14 skull原图图15 亮度增强后的图像图16 亮度减小后的图像 分析:1)乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分 2)一幅图像乘以一个常数通常被称为缩放。immultiply(I,1.2),使用的缩放因数大于1,那么将增强图像的亮度,如图15所示;immultiply(I,0.5)中的因数小于1则会使 图像变暗,如图16所示。

图17 skull原图图18 对比度减小的图片图19 灰度级相除后的图片分析:1)J=double(I)*0.43+80是将skull图像转换为double型再对其进行灰度变换运算,使其灰度级减小,如图所示; 2)imdivide(I,J)要求J数据类型一致,因此在进行此运算时,须先将double型的转换为uint8,两幅图像的灰度级相除后的到的结果为[0,1],因为其灰度级极其相 近且小,肉眼无法分辨,故我们所看到的输出图像几近与纯黑色,如图19所示; 3)除法运算是用于校正成像设备的非线性影响。 图20 skull的原图像图21 尺寸放大的图像图22 尺寸减小的图像

图像分割 实验报告

实验报告 课程名称医学图像处理 实验名称图像分割 专业班级 姓名 学号 实验日期 实验地点 2015—2016学年度第 2 学期

050100150200250 图1 原图 3 阈值分割后的二值图像分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,若有多个双峰谷底,则取第一个作为阈值。本题的阈值取

%例2 迭代阈值分割 f=imread('cameraman.tif'); %读入图像 subplot(1,2,1);imshow(f); %创建一个一行二列的窗口,在第一个窗口显示图像title('原始图像'); %标注标题 f=double(f); %转换位双精度 T=(min(f(:))+max(f(:)))/2; %设定初始阈值 done=false; %定义开关变量,用于控制循环次数 i=0; %迭代,初始值i=0 while~done %while ~done 是循环条件,~ 是“非”的意思,此 处done = 0; 说明是无限循环,循环体里面应该还 有循环退出条件,否则就循环到死了; r1=find(f<=T); %按前次结果对t进行二次分 r2=find(f>T); %按前次结果重新对t进行二次分 Tnew=(mean(f(r1))+mean(f(r2)))/2; %新阈值两个范围内像素平均值和的一半done=abs(Tnew-T)<1; %设定两次阈值的比较,当满足小于1时,停止循环, 1是自己指定的参数 T=Tnew; %把Tnw的值赋给T i=i+1; %执行循坏,每次都加1 end f(r1)=0; %把小于初始阈值的变成黑的 f(r2)=1; %把大于初始阈值的变成白的 subplot(1,2,2); %创建一个一行二列的窗口,在第二个窗口显示图像imshow(f); %显示图像 title('迭代阈值二值化图像'); %标注标题 图4原始图像图5迭代阈值二值化图像 分析:本题是迭代阈值二值化分割,步骤是:1.选定初始阈值,即原图大小取平均;2.用初阈值进行二值分割;3.目标灰度值平均背景都取平均;4.迭代生成阈值,直到两次阈值的灰 度变化不超过1,则稳定;5.输出迭代结果。

相关文档
相关文档 最新文档