
图像灰度变化程序设计.doc
28页实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期计算机图象处理综合训练题 目: 图像灰度变化程序设计 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 25目 录摘 要 1一、前言 3二、算法分析与描述 4三、详细设计过程 7四、调试过程中出现的问题及相应解决办法 9五、程序运行截图及其说明 10六、简单操作手册 11设计总结 12参考资料 13致谢 14附录 15摘 要计算机图像处理与分析是集光学、数学、计算机科学、电子学、信息论、控制论、物理学、心理学和生理学等学科的一门综合性边缘科学随着计算机科学的迅猛发展,以及与近代发展的新理论如小波分析、马尔柯夫随机场、分形学、数学形态学、人工智能和人工神经网络等的结合,计算机图像处理与分析近年来获得了长足的进展,呈现出强大的生命力已在科学研究、工农业生产、军事技术、医疗卫生、教育等许多领域等到广泛的应用,产生了巨大的经济和社会效益,对推动社会发展,改善人们生活水平都起到了重要的作用。
本程序设计主要实现对对比度线性展宽、灰级窗处理和直方图均衡化的处理,从而达到我们所需的要求,进而将其应用到特殊领域在图像处理中主要用VC++编写图像处理程序,并调用C++图像处理的部分内部函数进行处理关键词:数字图像处理;对比度线性展宽;灰度窗处理;直方图均衡化一、 前言图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术又称影像处理基本内容 图像处理一般指数字图像处理数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分 常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等图像处理一般指数字图像处理 灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占有的灰度范围而使图像在视觉上得到改观,没有利用像素点之间的相互关系因此,灰度变换处理方法也叫点运算点运算是一种既简单又重要的技术,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输入像素点的灰度值二、算法分析与描述2.1 对比度扩展对比度:通俗地讲,就是亮暗的对比程度。
设有一幅图,由于成象时光照不足,使得整幅图偏暗,(灰度范围从0到63);或者成象时光照过强,使得整幅图偏亮,(灰度范围从200到255),我们称这些情况为低对比度,即灰度都挤在一起,没有拉开灰度扩展的意度的目的,图2-1说明对比度扩展的原理思就是把你所感兴趣的灰度范围拉开,使得该范围内的像素,亮的越亮,暗的越暗,从而达到了增强对比度的目的我们可以用图2-1来说明对比度扩展的原理图2-1 对比度扩展的原理图2.1中的横坐标gold表示原图的灰度值,纵坐标gnew表示gold经过对比度扩展后得到了新的灰度值a,b,c为三段直线的斜率,因为是对比度扩展,所以斜率b>1g1old和g2old表示原图中要进行对比度扩展的范围,g1new和g2new表示对应的新值用公式表示为 显然要得到对比度扩展后的灰度,我们需要知道a,b,c,g1old,g2old五个参数由于有新图的灰度级别也是255这个约束,所以满足ag1old+b(gold-g1old)+c(255-g2old)=255这个方程这样,我们只需给出四个参数,而另一个可以代入方程求得我们假设a=c,这样,我们只要给出b,g1old和g2old,就可以求出a=(255-b(g2old-g1old))/(255-(g2old-g1old))要注意的是,给出的三个参数必须满:(1) b*(g2old-g1old)<=255;(2) (g2old-g1old)<=255。
2.2 灰级窗处理灰级窗也称为灰度窗口,灰级窗可以看作是对比度扩展的一个特例,它是将某一区间的灰度级和其它部分(背景)分开,只显示指定灰度级范围内的信息灰级窗的原理如图2-2所示g 2550ab255f图2-2 灰级窗的原理不难看出,只要令比度扩展中的α=γ=0就实现了灰级窗我们只要给出范围的两个端点,斜率β就可以用方程β(b-a)=255求出,灰级窗的原理和对比度扩展的原理类似2.3 直方图均衡直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布是对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减从而达到清晰图像的目的直方图均衡化(平滑化)是一种最常用的直方图修正,它是把给定图像的直方图分布改造成均匀直方图分布直方图均衡化导致图像的对比度增加由信息学的理论来解释,具有最大熵(信息量)的图像为均衡化图像直观地讲,直方图均衡化一方面要求尽量扩展灰度的分布域;另一方面更重要的是努力使每一个灰度级上的频度尽可能一致频度趋于一致的图像使人感觉色调沉稳、安定,意味着图像质量“好”三、详细设计过程 图像处理3.1层次图 直方图均衡化对比度线性展宽灰度化 图3-1 层次图3.2对比度线性展宽详细设计具体实现形式为:g(x,y)=(d-c)/(b-a)[f(x,y)-a]+c作用:使曝光不充分图像中黑的更黑,白得更白,从而提高图像对比度I = imread('123.bmp'); %读入图片 [d1,d2,d3] = size(I); if(d3 > 1) I = rgb2gray(I); %如果是灰度图就不用先变换 end I = double(I) / 255; I1 = uint8(255 * I * 0.5 + 0.5);imshow(I1);imwrite(I,'test.jpg') %显示展宽后的图片3.3灰级窗详细设计clear all; close all;fa=45;fb=160;I=imread('123.bmp');imshow(I);I=rgb2gray(I);figure;imshow(I);[m,n]=size(I);J=double(I);k2=255/(fb-fa);for i=1:m for j=1:n if I(i,j) < fa J(i,j)=0; elseif I(i,j) < fb J(i,j)=k2*(I(i,j)-fa); else J(i,j)=0; end endend figure; imshow(J); 3.4直方图均衡化处理详细设计img=imread('123.bmp'); p=rgb2gray(img); h=imhist(p); h1=h(1:2:256); h2=1:2:256; stem(h2,h1,'r--'); figure,imhist(p);四、 调试过程中出现的问题及相应解决办法1.本软件大多数功能实现是针对二值图像,如果输入图像为RGB图像如:腐蚀,膨胀将无法处理显示,请先进行RGB图像转二值图像操作后再进行其他处理, 图像在进行二值转换时要注意阙值的大小,以便使得图片的效果最佳。
2.其次是图片的路径问题,首先得找到图片所在的位置,否则会显示错误3.调试过程中要注意Tag的属性设置和String的属性,正确赋值,防止错误运五、程序运行截图及其说明1.打开文件 图5.12.打开图片后如图5.2 图5.23.点击图像处理下的对比度扩展 图5.34. 点击图像处理下的灰级窗处理 图5.45. 点击图像处理下的直方均衡化 图5.56.点击文件目录下的保存进行保存 图5.6 六、简单操作手册如果装有matlab软件直接双击导入相应函数之后,点击“回车”键程序,实现相应的功能运行程序出现界面:图6.1开始界面点击文件,再点击打开,选择原图:点击图像处理,选择灰级窗/对比度线性展宽/直方均衡化 图6.3 图6.4 图6.5点击文件,选择保存,保存图像 图6.7设计总结通过本次课程设计,使我对《计算机图像处理》这门课程有了更深入的理解。
《计算机图像处理》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感 程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决再总体解决大的问题这样做起来不仅有条理也使问题得到了轻松的解决 在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨生活就是这样,汗水预示着结果也见证着收获劳动是人类生存生活永恒不变的话题虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊! 对我而言,知识上的收获重要,精神上的丰收更加可喜让我知道了学无止境的道理我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你挫折是一份财富,经历是一份拥有这次课程设计必。












