收藏 分享(赏)

图像点运算.doc

上传人:fmgc7290 文档编号:6212667 上传时间:2019-04-02 格式:DOC 页数:14 大小:403.50KB
下载 相关 举报
图像点运算.doc_第1页
第1页 / 共14页
图像点运算.doc_第2页
第2页 / 共14页
图像点运算.doc_第3页
第3页 / 共14页
图像点运算.doc_第4页
第4页 / 共14页
图像点运算.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1. 课程设计任务书 22. 数字图像发展概况 33. 课程设计方案 44. 图像点运算原理 55. 设计任务内容 8a) 线性变换b) 分段线性变换c) 非线性变换d) 直方图均衡化e) 直方图规定化6. 课程设计总结与体会 167. 参考文献 16数字图像处理课程设计任务书课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。2、熟悉掌握一门计算机语言,可以进行数字图像应用处理的开发设计。课程设计任务:图像点运算研究与实现设计要求:1、对对比度低,动态范围较窄的图像进行对比度拉伸2、对不同的点运算方法进行研究。3、分析不同方法的处理效果。数字图像发展概

2、况数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成 MN 样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,用于图像处理的软件也很多,如PHOTOSHOP、PAINTSHOP、GIMP、SaperaProcessing、MATLAB 等,其中大部分软件都是基于广告策划和

3、图像修饰处理而设计的应用软件,进行图像处理时并不是很方便。而 MATLAB(矩阵实验室) 它在矩阵运算上有自己独特的特点,在矩阵运算处理具有很大的优势,因此用 MATLAB 处理数字图像非常的方便。不仅如此,MATLAB 提供了丰富的图形命令和图形函数,而且其面向对象的图形系统具有强大的用户界面(GUI)生成能力。这样,用户就可以充分利用系统提供的 GUI 特性,编写自己需要的图形界面,从而可以高效地进行图像处理。MATLAB 支持五种图像类型,即索引图像、灰度图像、二值图像、RGB 图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO 等

4、图像文件格式的读,写和显示。MATLAB 对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以对图像进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。在本次设计中,将采用不同的点运算方法对图像进行处理课程设计方案1、程序运行环境是 Windows 平台。2、开发工具采用 Matlab 语言作为编程开发工具对图像进行3、设计方案流程图像点运算原理点运算也称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值(即像素点上

5、的灰度值)进行运算的图像处理方式。点运算是像素的逐点运算,它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算不会改变图像内像素点之间的空间关系。点运算分为线性点运算和非线性点运算两种。线性点运算一般包括调节图像的对比度和灰度标准化;非线性点运算一般包括阀值化处理和直方图均衡化。Matlab 图像处理工具箱没有提供对图像进行直接点运算的函数,将图像的点运算过程直接集成在默某些像处理函数中(例如:直方图均衡化函数 histeq和 imhist) 。如果用户仅仅是希望对图像进行点运算处理,那么可以充分利用Matlab 强大的矩阵运算能力,对图像数据矩阵调用

6、 Matlab 计算函数进行处理。1、灰度变换灰度变换,是一种通过对图像中的每一个像素值(即像素点上的灰度值)进行计算,从而改善图像显示效果的操作。灰度变换是图像数字化及图像显示的重要工具。在真正进行像素处理之前,有时可以利用灰度变换来克服图像数字化设备的局限性。设输入图像为 A(x,y),输出图像为 B(x,y),则灰度变换可表示为B(x,y)=fA(x,y)灰度变换完全由灰度映射函数 f 决定,f 可是线性函数或非线性函数。1、线性灰度变换 假定原图像 f(x,y)的灰度变换范围为a,b,希望变换后的图像 g(x,y)的灰度变换扩展为c,d,则采用下述线性变换来实现: cayxfbcdyx

7、g),(),(上式的关系可以用图 1.1 表示。实际上是是曝光不充分图像中黑的更黑白的更白,从而提高图像灰度对比度 图 1.1 图 1.2 2、分段线性灰度变换为了突出图像中感兴趣的目标或者灰度区间,相对抑制那些感兴趣的灰度区域,而不惜牺牲其他灰度级上的细节,可以采用分段线性法,将需要的图像细节灰度拉伸,增强对比度,不需要的细节灰度级压缩。常采用如图 1.2 所示的三段线性变换法,其数学表达式如下:3、非线性灰度变换这里只介绍对数变换的一些基本原理对数变换的一般式为: cbyxfayxgln1),(),(这里的 a,b,c 是为了调整曲线的位置和形状而引入的参数。对数变换常用来扩展低值灰度,压

8、缩高值灰度,这样可使低值灰度的图像细节更容易看清。二、直方图修正直方图修正的应用非常广泛。例如:在医学上,为了改善 X 射线机操作人员的工作条件,可以采用低强度 X 射线曝光,但是这样获得的 X 光片灰度级集中在暗区,许多图像细节无法看清,判读困难,通过修正是灰度级分布在人眼合适的亮度区域,就可以使 X 光片中的细节,如筋骨,关节等清晰可见。另外还有一些非可见光成像的工业无损检测(如射线成像,红外成像等) ,军事公安侦查等照片的处理。直方图修正通常有直方图均衡化和直方图规定化两大类。1、直方图均衡化这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种

9、方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来 X 光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度实现假设一个图像让 ni 表示灰度 i 出现的次数,这样图像中灰度为 i 的像素的出现概

10、率是 :L 是图像中所有的灰度数,n 是图像中所有的像素数, p 实际上是图像的直方图,归一化到 01。把 c 作为对应于 p 的累计概率函数 , 定义为:c 是图像的累计归一化直方图。我们创建一个形式为 y = T(x) 的变化,对于原始图像中的每个值它就产生一个 y,这样 y 的累计概率函数就可以在所有值范围内进行线性化,转换公式定义为:注意 T 将不同的等级映射到 01 域,为了将这些值映射回它们最初的域,需要在结果上应用下面的简单变换:上面描述了灰度图像上使用直方图均衡化的方法,但是通过将这种方法分别用于图像 RGB 颜色值的红色、绿色和蓝色分量,从而也可以对彩色图像进行处理。2、直方

11、图规定化直 方 图 均 衡 化 能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。 这时可以采用比较灵活的直方图规定化。一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。所以,直方图修正的关键就是灰度映像函数。直方图匹配方法主要有 3 个步骤(这里设 M 和 N 分别为原始图和规定图中的灰度级数,且只考虑 NM 的情况):(1) 如同均衡化方法中,对原始图的直方图

12、进行灰度均衡化:(2) 规定需要的直方图,并计算能使规定的直方图均衡化的变换:(3) 将第 1 个步骤得到的变换反转过来,即将原始直方图对应映射到规定的直方图,也就是将所有 pf(fi)对应到 pu(uj)去。设计任务内容灰度线性变换Matlab 图像处理工具箱中提供的 imadjust 函数,可以实现图像的灰度变换,是对比度增强。其语法格式为:J=imadjust(I,low,high,bottom,top,gamma)其功能是:返回图像 I 经过直方图调整后的图像 J。low,high 为源图像中要变换的灰度范围,bottom,top指定变换后的灰度范围,两者的默认值均为0,1。gamma

13、 为矫正量,其取值决定了输入图像到输出图像的灰度映射方式,即决定了增强低灰度还是增强高灰度。如果 gamma 等于 1 时,为线性变换;如果gamma 小于 1 时那么映射将会对图像的像素值加权,使输出像素灰度值比原来大;如果 gamma 大于 1 时,那么映射加权后的灰度值比原来小。gamma 大于 1,等于 1,小于 1 的映射方式如图 1.3 所示。图 1.3在 Matlab 中提供了 imhist 函数来计算和显示图像的直方图,格式为: imhist(I,n) 对比度图像 Imhist(X,map) 对比引色图像 counts,x=imhist(.)其中,I 代表灰度图像,n 为指定的

14、灰度级数目,默认值为 256,counts 和x 分别为返回直方图数据向量和相应的彩色向量。由于在设计中用到的图片是 RGB 彩色图像,所以需要用 rgb2gray()函数来将图片转成灰度图片,rgb2gray()函数格式:rgb2gray(R ) ,R 为RGB 图像。线性灰度变换下面的代码显示了一幅 RGB 彩图转化后的(灰度图、直方图及处理后的图像)R = imread(图片 1.jpg);%RGB 图像G=rgb2gray(R);%灰度图 GJ=imadjust(G,0 0.3,0 1,0.8);subplot(2,2,1);imhist(G);title(原图像直方图);subplo

15、t(2,2,2);imhist(J);title(转化后的直方图);subplot(2,2,3);imshow(G);title(转换前的灰度图);subplot(2,2,4);imshow(J);title(转转后的图像);像 像 像 像 像 像 像 像 像 像 像 像 像0 100 200050001000015000像 像 像 像 像 像0 100 2000123x 104 像 像 像 像 像 像 像线性灰度变换处理效果图分段线性处理下面的程序代码是对于一幅图的分段线性处理主要目的是希望让图中有用的信息清晰可见,而不需要的信息被压缩。下式程序中选定 d=150,c=50,a=5,b=75

16、。采用三段处理所用数学表达式参看前分段式线性处理原理说明。R = imread(1024.jpg); %RGB 图像J=rgb2gray(R); %灰度图 JM,N=size(J); %返回图像纵横坐标最大值x=1;y=1;for x=1:Mfor y=1:Nif(J(x,y)5end x=x+1;y=y+1;endend H=uint8(H);subplot(2,2,1);imhist(J);title(原图像直方图);subplot(2,2,2);imhist(H);title(转化后的直方图);subplot(2,2,3);imshow(J);title(转换前的灰度图);subplot

17、(2,2,4);imshow(H);title(转转后的图像);由图可见图像有用信息被增强了而不需要的信息被压缩,这种图像处理方式可以更灵活、更有效地对图像进行处理。像 像 像 像 像 像 像 像 像 像 像 像 像0 100 2000500010000像 像 像 像 像 像0 100 2000500010000像 像 像 像 像 像 像分段线性变换效果图非线性灰度变换下面的代码目的是实现灰度图像的非线性灰度变换,该代码运行结果显示了一幅 RGB 图像转化后的(灰度图、直方图及处理后的图像)R = imread(F:1024.jpg);%RGB 图像G=rgb2gray(R);%灰度图 GJ=

18、double(G)H=(log(J+1)/10subplot(2,2,1);imhist(G);title(原图像直方图);subplot(2,2,2);imhist(H);title(转化后的直方图);subplot(2,2,3);imshow(G);title(转换前的灰度图);subplot(2,2,4);imshow(H);title(转转后的图像);0 100 2000500010000像 像 像 像 像 像0 0.5 1050001000015000像 像 像 像 像 像 像像 像 像 像 像 像 像 像 像 像 像 像 像非线性图像变换处理效果图直方图修正Matla 图像处理工具

19、箱提供了用于直方图均匀化的 histep。Histep 函数的语法格式为: J=histeq( I,hgram)其功能是:将原始图像 I 的直方图变成用户指定的向量 hgram,hgram中的各元素值域为0 ,1 。 J=histeq( I,n)其功能是:指定直方图均匀化后的灰度级数 n,默认值为 64。J,T=histeq( I,)其功能是:返回从能将图像 I 的灰度级直方图变换成图像 J 的直方图的变换 T。 Newmap=histeq(X,map,hgram) Newmap=histeq(X,map) newmap,T=histeq(X,.)其功能是:针对索引色图像调色板的直方图均匀化。

20、其他与上面雷同。直方图均衡化处理以下的程序代码显示了图像均衡化后的效果图G=imread(83.jpg)I=rgb2gray(G);%RGB 图像灰度化处理J=histeq(I)%subplot(2,2,1);imhist(I)subplot(2,2,2);imhist(J)subplot(2,2,3);imshow(I)subplot(2,2,4);imshow(J)由图可见,图像经过直方图均衡化,图像的细节更加清楚了,但是由于直方图的均衡化没有考虑图像的内容,只是简单的将图像进行直方图均衡,使图像看起来亮度过高,也就是说直方图的方法不够灵活,于是又提出了直方图规定化图像增强的的方法0 10

21、0 2000500010000150000 100 20000.511.52 x 104直方图均衡化处理效果图直方图规定化处理为了具有对比性在直方图规定化处理中采用的图像以 83.jpg 被图像均衡化成 32个灰度级的直方图作为原始图像的期望直方图,以下是对图像 83.jpg 进行直方图规定化的程序代码:G=imread(83.jpg)I=rgb2gray(G);%RGB 图像灰度化处理J=histeq(I);counts,x=imhist(J,32);R=rgb2gray(G);%RGB 图像灰度化处理figure,subplot(2,2,1);imshow(R)subplot(2,2,3)

22、;imhist(R)M=histeq(R,counts);subplot(2,2,2);imshow(M)subplot(2,2,4);imhist(M)0 100 2000500010000150000 100 20000.511.52x 104直方图规定化处理效果图由上面两个直方图处理的效果图来看,直方图规定化的效果比均衡化的效果要好一点,不过在以后的工作中如果遇到类似的问题可以通过尝试的方法来确定最佳的处理方案课程设计总结与体会通过此次课程设计,使我更加扎实的掌握了有关数字图像处理方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴

23、露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手调制程序,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师同学的帮助下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得

24、到社会及他人对你的认可!我认为,在这次的课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在设计探索过程中,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 图形图像

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报