版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、肪姿*丈曇通信与信息工程学院DSP数字图像处理技术课内实验报告(2016/2017学年第2学期)学生姓名:88888专业班级:7777学号:0000指导教师:0000目录TOC o 1-5 h z HYPERLINK l bookmark6 实验1:CodeComposerStudio入门实验0 HYPERLINK l bookmark8 一、实验目的0 HYPERLINK l bookmark10 二、实验原理0 HYPERLINK l bookmark12 三、实验内容(调试好的程序,实验结果及分析)0 HYPERLINK l bookmark14 四、实验小结0 HYPERLINK l
2、bookmark16 实验2:编写一个以C语言为基础的DSP程序3 HYPERLINK l bookmark18 一、实验目的3 HYPERLINK l bookmark20 二、实验原理3 HYPERLINK l bookmark22 三、实验内容(调试好的程序,实验结果及分析)3 HYPERLINK l bookmark24 四、实验小结4 HYPERLINK l bookmark26 实验3:图像灰度化实验5 HYPERLINK l bookmark28 一、实验目的5 HYPERLINK l bookmark30 二、实验原理5 HYPERLINK l bookmark32 三、实验内
3、容(调试好的程序,实验结果及分析)5 HYPERLINK l bookmark34 四、实验小结5 HYPERLINK l bookmark36 实验4:图像平滑实验7 HYPERLINK l bookmark38 一、实验目的7 HYPERLINK l bookmark40 二、实验原理7 HYPERLINK l bookmark42 三、实验内容(调试好的程序,实验结果及分析)8 HYPERLINK l bookmark44 四、实验小结11 HYPERLINK l bookmark46 实验5:图像锐化实验12 HYPERLINK l bookmark48 一、实验目的12 HYPERL
4、INK l bookmark50 二、实验原理12 HYPERLINK l bookmark54 三、实验内容(调试好的程序,实验结果及分析)12 HYPERLINK l bookmark56 四、实验小结14 HYPERLINK l bookmark58 实验6:图像灰度变换实验16 HYPERLINK l bookmark60 一、实验目的16 HYPERLINK l bookmark62 二、实验原理16 HYPERLINK l bookmark64 三、实验内容(调试好的程序,实验结果及分析)16 HYPERLINK l bookmark66 四、实验小结17 HYPERLINK l
5、bookmark68 实验7:图像均衡化实验18 HYPERLINK l bookmark70 一、实验目的18 HYPERLINK l bookmark72 二、实验原理18 HYPERLINK l bookmark74 三、实验内容(调试好的程序,实验结果及分析)18 HYPERLINK l bookmark76 四、实验小结18 HYPERLINK l bookmark78 实验8:图像边缘检测实验21 HYPERLINK l bookmark80 一、实验目的21 HYPERLINK l bookmark82 二、实验原理21 HYPERLINK l bookmark86 三、实验内容
6、(调试好的程序,实验结果及分析)21 HYPERLINK l bookmark88 四、实验小结22 HYPERLINK l bookmark90 实验总结及心得体会27实验1:CodeComposerStudio入门实验一、实验目的1、学习创建工程和管理工程的方法2、了解基本的编译和调试功能3、学习使用观察窗1丨4、了解图像功能的使用二、实验原理开发TMS320C6xxx应用系统一般需要以下几个调试工具来完成:软件集成开发环境(CCS):完成系统的软件开发,进行软件和硬件的仿真调试,它是硬件调试的辅助工具。仿真器(如WintechTDS510USB2.0或TDS560USB):实现硬件仿真调
7、试时与硕件系统的通信、控制和读取硬件系统的状态和数据。评估模块(如实验箱中的TS-DM64X嵌入式多通道音视频处理平台):提供软件运行和调试的平台和用户系统设计开发的参照。CS主要完成系统的软件开发和调试,它提供一整套的程序编制、维护、编译的调试坏境,能将汇编语言和C语言程序编译连接生产COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP系统上运行调试。CCS通过工程来管理文件,一般包括以下几种文件:源程序文件:C语言或汇编语言文件(*.c或*.asm)头文件(*.h)命令文件(*cmd)库文件(*.lib,*.obj)三、实验内容(调试好的程序,实验结果及分析)/*调用子程序
8、规则*/intread_signals(int*mput);intwnte_buffer(mt*outputantcount);intoutput_sigiials(mt*output);/*主程序*/niam()mtnum-BUFSIZE;inti;/*初始化*/i0;mput-mp_buffei;output-out_buffer;无限循环while(TRUE)read_signals(input):/加软件断点和探针wiite_buffer(input.output,num);output_signals(output);计+;pnntf(uNumber:%dnH,i);/*子程序*/读
9、取输入信号intread_sigiials(iiit那input)/在此读取采集数据信号放到输入缓冲区mputlemrn(TRUE);/将数据进行处理后搬移到输出缓冲区intvnte_buffer(mt*mputjnt*outputantcount)inti;for(i-0;icount;i-H-)outputi-inputi*volume;处理:将输入数据放大volume倍放到输出缓冲区lemrn(TRUE);/输出处理后的信号intoutput_signals(int*output)/在此将输出缓冲区out_buffer中的数据发送到输出设备(比如DA)lemrn(TRUE);实验分析1、
10、头文件:描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。具体要包含哪些头文件,需要根据程序中使用哪些函数与数据而定。2、工作变量定义:定义全局变量。3、子函数的调用规则:这部分描述用户编制的子程序的调用规则,也可以写到用户自己缩写的.h文件中。4、主程序:即main()函数,它可分为二部分,即变量定义与初始化部分、主循坏部分。主循坏部分完成程序的主要功能。四、实验小结这次的实验是CCS的入门实验,相对而言就是先让我们学会如何用CCS工具。正所谓无论多么难的重要你会就很简单了,无论多么简单的你不会也很难,第一节课肯定是不会啊,不过经过老师讲解我们怎么操作之后我们过了一遍就知道怎么操
11、作了也很简单,比如说CCS的配置贵,实验中要先创建或者导入工程,然后读入程序等等,掌握这些为以后的几次实验课奠定了基础。(说明:(1)所有的实验报告,将严格按此模板的格式,字体、字号、行间距,进行书写、打印,不得随意改变;(2)在正文中,汉字用五号宋体,字母或数字,用五号TunesNewRonian体;(3)如果有数学公式或数学符号,全部得用“公式编辑器MathType”进行编写,若电脑没装,自己到百度上找且下载安装)实验2:编写一个以C语言为基础的DSP程序一、实验目的1、学习用标准c语言编写程序:了解常用的c语言程序设计方法和组成部分。2、学习编制链接命令文件,并用来控制代码的链接。3、学
12、会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。4、熟悉使用软件仿真方式调试程序。二、实验原理1、标准C语言程序CCS支持使用标准C语言开发DSP应用程序。当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c(如:cpiogram.c)。CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成的是COFF格式的可下载到DSP中运行的文件,其文件名后缀为.out。由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译链接时编译系统还负责构建C运行坏境。所以用户工程中需要注明使用C的支持库。2、命令文件的作用
13、命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硕件匹配,也就是只要说明的存储区必须是存在的和可用的。3、内存映射(map)文件的作用一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。为了更精确地使用ROM空间,我们就需要知道程序的人小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数
14、据的人小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。三、实验内容(调试好的程序,实验结果及分析)mtadd(iiita,iiitb);voidniainQintx;uity;intz;x=l;y=2;wlule(l)z=add(x,y);函数调用/说明:子函数定义iiitadd(inta,iiitb)return(a+b);实验分析实验编写一个简单的c语言程序进行测试调用,主要目的是了解CCS工程的工作原理。CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再
15、进一步编译成目标DSP的可执行代码。最后生成的是COFF格式的可下载到DSP中运行的文件,其文件名后缀为.out。开发的DSP程序调试好后要固化到ROM固盘中。四、实验小结这次的实验是用C语言辨析莪一个简单的程序进行测试,实验中我们编写的是C语言编写的一个加法器,我们编写好多的C语言程序经过编译之后会被CCS编译成相应的汇编语言程序,进而在一步的编译成DSP的可执行代码,最后生成的的COFF文件后缀名为.out,将其load加载到工程项目中,然后才可以实现编程的效果。通过这次的实验是我们对CCS有了更进一步的了解。实验3:图像灰度化实验一、实验目的1、培养学生理解彩色图像转换成灰度图像的原理;
16、2、掌握图像处理的基本方法。二、实验原理灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范I制为0-255o图像的灰度化处理,一般有以下三种转化方案:方法1:加权平均法所谓加权平均法就是根据三基色的重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低。因此我们可以按下式对R、G、B三分量进行加权平均,则能得到较合理的灰度图像。F(i,j)=0.30 xR(i,j)+0.59xG(/,;)+0.11xB(i,j)(1)方法2:平均值法所谓平均值法就是对彩色图像的每个像素中的R、G、E三个分量的值进行简单的算术平均,将得到平均值
17、作为灰度图像对应像素的亮度值,其计算式如下所示:F(i,j)=R(i,j)+G(/,j)+BQ,j)/3(2)方法3:最人值法所谓最人值法就是将彩色图像中每个像素的R、G、E三个分量中的最大值作为灰度图对应像素的灰度值。其计算式如下:F(i,j)=maxSQ,j),G(i,j),BQ,j)(3)根据以上三种处理方法,即加权平均法、平均值法和最犬值法,通过编程均能将彩色图像转化成灰度图像。三、实验内容(调试好的程序,实验结果及分析)voidRGB2Gravunsignedchar*R./*输入彩色图像的R分虽/unsignedchar*G/*输入彩色图像的G分量/unsignedchar*B./
18、*输入彩色图像的B分呈*/unsignedchar*Gray,/*输出的灰度图像/mtcols,introws./图像的宽度与高度/mtflg/*控制标志,当其为1、2、3时,分别表示釆用方法1、2和3进行灰度化处理*/Hlti;/定义局部变虽为待生成的灰度图像分配空间Gray-(unsignedchar*)calloc(cols*rows.sizeof(uiisignedchar);釆用循环的方式对图像中的每个像素进行灰度化for(1-0;iGmyi)Giayi-Gi;if(Bi)Grayi)Giayi-Bi;结果分析这里有三种方法将彩色图像转换为灰度图像,分别是加权平均法,平均值法,最大值
19、法,加权平均值法是对某些像素点加上较人的权重然后一个像素块区域中进行加权后平均。平均值法就是简单的最某像素区域各个像素点进行平均,最人值法是通过对各个像素比较取灰度值最人的像素点附以整个图像块。实验首先定义一个flag,判断条件中判断flag的值选择不同的灰度化方式。四、实验小结对彩色图像的灰度化有三种方法,分别是加权平均法,平均值法,最大值法,加权平均值法是对某些像素点加上较人的权重然后一个像素块区域中进行加权后平均。平均值法就是简单的最某像素区域各个像素点进行平均,最人值法是通过对各个像素比较取灰度值最人的像素点附以整个图像块,我们在实验中编程选取不同的方法进行图像的灰度化,得到的鲜果也是
20、略有差异。通过这次的实验使我们对图像的灰度化有了更进一步的了解,巩固了所学知识。(4)实验4:图像平滑实验一、实验目的1、培养学生理解图像平滑的原理、掌握图像处理的基本方法二、实验原理1、邻域平均法图像平滑假设待处理的图像为处理后图像为g(x,y),领域平均法图像平滑处理的数学表达可表示为:()=77S(1)M(M加wS式中f,y)为NxN的阵列,x,尸0,1,2,.,AM,S是以(s)点为中心的邻域的集合,M为邻域S中的像素点数。在具体平滑运算过程中,领域S的形状和人小根据图像特点來确定,一般取的形状是正方形、矩形及十字形等,如图10.1所示,是S邻域取四点邻域和八点邻域的示例,并且S的形状
21、和犬小可以在全图处理过程中始终保持不变,也可以根据图像的局部统计特性而变化,点(x,y)般位于S的中心。如S为3x3邻域,点(x,y)位于S中心,则公式(10.1)变为:歹r=-l;=-12、加权平均法图像平滑加权平均法的基本思路是:对于同一尺寸的模板,可对不同位置的加权系数采用不同的数值。一般认为离对应模板中心像素近的像素应对滤波结果有较人贡献,所以接近模板中心的系数可较人,而模板边界附近的系数应较小。图像邻域加权平均就是用像素的某邻域内诸像素灰度的加权平均值来代替原像素的灰度值,从而达到消除噪声的干扰的目的。其数学计算式为:G(fJ)=工F(iJ)W(jJ,KQ(KQ(3)式中W(K上)是
22、邻域s内对应于像素(K,厶)的加权值。为了使加权平均后图像平均亮度不发生较人的变化,要求所有权值之和为1,即:龙上)=1体上)则加权平均方法变成了邻域平均法,也如果邻域内各加权系数均相等时,即G(7J)=丄艺尸(K上)就是说,邻域平均法是加权平均法中的一种特例。在实际应用中,为保证各模板系数均为整数以减少计算量,常取模板周边最小的系数为1,而取内部的系数成比例增加,中心系数最人。一种常用的加权平均方法是根据系数与模板中心的距离成反比来确定其他内部系数的值,常用的加权模板有:10112r101/40242H=l1/411/4121_01/40111121111实验内容(调试好的程序,实验结果及分
23、析)voidIMGSmoothunsignedchar*F,/*输入带有噪声的灰度图像*/unsignedchar/*输出的平滑后的灰度图像*/intcols,mtrows/*图像的宽度与高度*/定义局部变量unsignedchar*pti;*pp.*iwwpp;inttmpNum,x,y;图像四周的像素不进行平滑,等于原值for(x=0;xcols-1;x+)处理第一行的像素Gx=Fx;处理最后一行的像素newpp=G+(iows-1)*cols;指针指向平滑图像pp=F+(rows-1)*cols;指针指向噪声图像for(x=0;xcols-1;x+)*newpp-H-=*pp+;处理最左
24、边一列的像素newpp=G;指针指向平滑图像pp=F;指针指向噪声图像for(y=0;yrows-1;y+)*newpp=*pp;nevpp+=cols;pp+=cols;指针偏移到卜一行像素的位置处理最右边一列的像素newpp=G+cols;指针指向平滑图像pp=F+cols;指针指向噪声图像for(y=0;yrows-1;y+)*newpp=*pp;newpp+=cols;pp+=cols;指针偏移到卜一行像素的位置采用循坏的方式对图像中的每个像素进行平滑for(y=l;yrows-1;y+)for(x=l;x255)*newpp=255;else*newpp=tmpNum;程序结束四、实
25、验小结这次的实验是图像的额平滑,什么是图像的平滑呢?就是将一幅灰度值分布不是很均匀的图像,通过平滑之后使其灰度级比较均匀,从而去除明显的噪声,在某种意义上跟直方图均衡化是有一定的联系与相同之处的。这次的实验采用的是领域平均法,将图像分成3*3的像素块,那么每个像素块中是九个像素,然后循环对着九个像素的灰度值相加去平均值赋给器中间的像素点,依次循环对每一个像素点都做相同操作,最后得出的即是平滑后的图像。可以发现平滑后的图像噪声已不再明显。在这次的试验中,我感觉对图像处理的原理清楚明了是很重要的,只有在明白原理的基础上做实验才能步骤清晰,快而有准确。实验5:图像锐化实验一、实验目的1、培养学生理解
26、图像锐化的原理2、掌握DSP图像处理的基本方法二、实验原理拉普拉斯图像锐化:拉普拉斯算子是一种在图像锐化处理中很重要的算法。拉普拉斯算子也是与一个边缘方向无关的边缘点检测算子。它对孤立像素的响应要比对边缘或线的响应更强烈,因此使用该算子进行图像锐化之前需要对图像作平滑处理。拉普拉斯算子是一个刻画图像灰度的二阶微分算子。它是点,线,边界提取算子,亦称为边界提取算子。通常将原图像和对它实施拉普拉斯算子后的结果组合在一起而得到一幅锐化图像。拉氏算子用来改善因扩散效应而变模糊的图像特别有效。扩散效应是成像过程中经常发生的现彖。拉普拉斯算子也是最简单的各向同性微分算子,具有旋转不变性。一个二维图像的拉普
27、拉斯变换是各向同性的二阶导数,定义为:对于离散数字图像其一阶偏导数为:则其二阶偏导数为:dy所以,拉普拉斯算子定义为:v7=-|X+=/G+ij)+/G-ij)-2/(/j)CX6厂*+/(f,j+l)+/(iJ-l)-2/(/,j)=m+ij)+m-ij)+mj+i)+m,m)对于扩散现彖引起的图像模糊,可以用下式来进行锐化:g(i,J)=/(*j)-j)其中,kT是与扩散效应有关的系数。该系数取值要合理,如果kl过人,图像轮廓边缘会产生过冲;反之如果kl过小,锐化效果就不明显。采用拉普拉斯锐化算法来实现数字图像的锐化,其基本的公式如公式(12.16)所示。考虑到ki是与扩散效应有关的系数,
28、在锐化算法实现中,令kr=l,则变换公式为:如果用模板来表示,则与上式对应的模板如下所示。这样拉普拉斯锐化运算完全可以转换成模板运算,模板取值将直接影响锐化的效果。与梯度法相比,拉普拉斯算子对噪声的作用较梯度减弱。0-101-21-1-1-15-1H严-28-2H严-18-10-101-21-1-1-1常用的拉普拉斯算子模板三、实验内容(调试好的程序,实验结果及分析)voidIMG_Shaip_Laplaceunsignedchar/*输入原图像*/unsignedchar/*输出的锐化图像*/intcols,mtrows/*图像的宽度与高度*/)/定义局部变量unsignedchai*ptr
29、,*pp.亡wpp;iiittmpNumj,x,v;图像四周的像素不进行锐化,等于原值for(x=0;xcols-1;x+)处理第一行的像素Gx=Fx;处理最后一行的像素newpp=G+(rows-1)*cols;指针指向锐化图像pp=F+(rows-1)*cols;指针指向原图像for(x=0;xcolsx+)*newpp-H-=*pp+;处理最左边一列的像素newpp=G;指针指向锐化图像pp=F;指针指向原图像for(y=0;yrows-1;y+)*newpp=*pp;newpp+=cols;ppicols;/指针偏移到卞一行像素的位置处理最右边一列的像素newpp=G+cols;指针指
30、向锐化图像pp=F+cols;指针指向原图像for(y=0;yrows-1;y+)*newpp=*pp;newpp+=cols;ppcols;/指针偏移到卞一行像素的位置采用循坏的方式对图像中的每个像素进行锐化for(y=l;yrows-1;y+)for(x=l;x255)*newpp=255;elseif(tmpNum0)*newpp=0;else*newpp=tmpNum:程序结束四、实验小结图像的平滑往往使得图像中边缘,轮廓变得模糊,这是一种不利的现彖,为了改变这种不利现象,引进了图像的锐化,图像的锐化是为了使图像的边缘,轮廓线,以及图像的细节部分变的清晰。因为经过平滑的图像是因为图像收
31、到了平均或积分运算,因此对其进行逆运算I如微分计算,就可以是图像变的清晰。在这次的试验中,工程导进来之后,我遇到的问题的无法加载生成的.out可执行文件,弄了半天也不行,无奈重新配置CCS之后才好了,真是觉得任何细小的一步都决定了你是否成功完成实验。实验6:图像灰度变换实验一、实验目的1、培养学生理解图像灰度变换的原理2、掌握DSP图像处理的基本方法二、实验原理在曝光不足或过度的情况卞,图像灰度可能会局限在一个很小的范I制内。这时在显示器上看到的将是一幅模糊不清、似乎没有灰度层次的图像。采用线性变换对图像每一个像素灰度作线性拉伸,可有效地改善图像视觉效果。假设原始输入图像为其灰度范闱是m,n,
32、进行线性变换处理后的图像为g(x,y),其灰度范围是如图13.1所示,则线性灰度变换的表达式如下:n一m从图1可知,所得到的处理效果与系数理二竺的结果有关。如果仝二竺1,将会使图像经过线性灰度n-mn一m变换后的灰度范闱增人:如果上二竺=1,则线性灰度变换后的图像与原图像对应位置的灰度差将会保n-m持不变,但是变换后的动态区间可能会整体平移,这个问题取决于M与m是否相等;如果o冬二巴i,则图像经过线性灰度变换后的灰度范围将会变小;如果上二邑o,则变换后的图像灰n一mn一m度值与原图像相比将会被翻转,也就是说原图中喑的部分变亮,而原图中亮的部分变暗。0nfix)三、实验内容(调试好的程序,实验结
33、果及分析)voidIMGLmeTraiisfbrmunsignedchar*F,/*输入的灰度图像*/unsignedchar/*输出的灰度图像*/intmjntn,iiitM,mtN,/*灰度变换前后区间的端点*/intcols,mtrows/*图像的宽度与高度*/)mti,temp;/定义局部变量floatt=(float)(N-M)/(float)(n-m);为待生成的灰度图像分配空河采用循坏的方式对图像中的每个像素进行变换for(i=0;icols*iows;i+)if(mFi&Fi255)Gi=255;elseGi=temp;elseGi=Fi;置为原灰度值程序结束四、实验小结图像的
34、灰度变换有什么意义额?灰度变换通过对原图的像素值重新进行分配来实现,目的是使图像中表现较暗的像素值,通过灰度变换函数映射的方法使较暗的像素值增人,这样图像的亮度就提高了。增强处理并不能使原始图像信息增加,其结果只能增强对某种信息的辨别能力,而这种处理有可能损失一些其他信息。但是,只要提高了图像的视觉特性,增强图像的目的就达到了。在这次的实验中,是我更加清楚灰度变换是图像增强的一种重要手段,也使我更熟料草做实验的步骤。实验7:图像均衡化实验一、实验目的1、理解直方图均衡化原理,了解直方图均衡化的特点2、掌握图像处理的基本方法3、产生一幅灰度级分布具有较均匀概率密度的图像,拓展像素取值的动态范I韦
35、I,达到图像増强的目的二、实验原理一幅灰度图像,让耳表示灰度/出现的次数,这样图像中灰度为/的像素的出现概率是:px(i)=4eO,.,L-lA=O,1,2,-,L-1n厶是图像中所有的灰度数,是图像中所有的像素数,实际上是图像的直方图,归一化到0订。把c作为对应于卩的累计概率函数,定义为:c=2心)j-0C是图像的累计归一化直方图。创建一个形式为y严丁(兀)的变化,对于原始图像中的每个值它就产生一个y,这样y的累计概率函数就可以在所有值范围内进行线性化,转换公式定义为:X=7(-v?)=c(z)注意丁将不同的等级映射到0订域,为了将这些值映射回它们最初的域,需要在结果上应用下面的简单变换:y
36、=yi-(max-min)+min实验内容(调试好的程序,实验结果及分析)voidHisEqualization(unsignedchai*pSource.mtcols,introws,int*pHistogiamunsignedchai*pResult直方图均衡子程序原始图像图像的宽度与高度/输出:输出直方图/输出:均衡化后图像mtpixels;unsigxiedchar*ptr;unsignedmttmpust256;unsignedmtniap256;pixels-cols*rows;初始化直方图数组for(L0;i256:i卄)lustogiaini-0;统计各个色阶灰度值的个数灰度映
37、射表pSource-sourcelMG;fdr(i-0:ipixels:i卄)pHistogiani-lustogiam;pHistogiam-pHistogram十*pSource;*pHistogram-*pHistogram十1:pHistogiani-lustogiam;pSouice卄;/初始化II方图数组fdr(i-0;i256;i-H-)tmpjusti-lustogiaini;/直方图均衡fdr(Ll;i256;计十)tmp_histi十-tmp_histi-l);建立映射表fdr(i-O;i256;计十)niapi-tmp_histi*255/pixels:给图像赋予新值pS
38、ource-sourcelMG;for(i-0;ipixels;计+)ptr-pSource+十;*pResult-Hniap*ptr;pResult-H-:/统计均衡化后图像的直方图pSource-resultlNIG:fdr(i-0:ipixels:i卄)pHistogiani-lustogiam;pHistogiam-pHistogram+*pSource;*pHistogram-*pHistogiam十1;pHistogiani-lustogiam;pSouice卄;遍历图像中的所有像素/指针指向直方图数组取当前像素的灰度值作为直方图数组的偏移戢对应偏移呈的直方图数组元素值累加1指针重
39、指向直方图数组起始地址图像指针指向下一个像素地址计算原始图像的累计口方图遍历图像中的所有像素指针指向直方图数组取当前像素的灰度值作为直方图数组的偏移戢对应偏移戢的直方图数组元索值累加1指针重指向直方图数组起始地址/图像指针指向下一个像素地址四、实验小结直方图均衡化也是图像增强的一种手段。直方图均衡化处理的原理是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范鬧内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范鬧内的像素数量人致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。经直方图均衡化处理后,可以得到一幅改善了质量的新
40、图像。这幅图像的灰度层次将不再是呈现黑暗色调的图像,而是一幅灰度层次较为适中的、比原始图像清晰得多的图像。处理的结呆使图像更适合于人的视觉特征或机器的识别系统。经过实验,我们大家都对直方图有了更深的理解,也认识到直方图均衡化在图像增强中所扮演的重要角色。实验8:图像边缘检测实验一、实验目的1、理解图像边缘检测原理,了解图像边缘具有的特点2、掌握Sobel算子图像处理的基本方法3、熟悉使用软件仿真方式调试程序。4、掌握图像边缘检测试验原理与DSP编程方法。二、实验原理1、索贝尔算-?(Sobeloperator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散差分算子,用来运算图像
41、亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量Sobel算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。Sobel算子另一种形式是各向同性Sobel(IsouopicSobel)算子,也有两个,一个是检测水平边沿的,另一个是检测垂直边沿的各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用
42、快速卷积函数,简单有效,因此应用广泛。图像的Sobel边缘检测处理可以简单理解为提取图像中区域的轮廓。图像中区域的划分以像素灰度为依据,每个区域中的像素灰度人致相同,而区域之间的边界就称为边缘,寻找这些边缘就是图像边缘检测的目的。2、Sobel算子也是一种梯度幅值,该算子包含两组3*3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,G及G,分别代表经横向及纵向边缘检测的图像,其模板的卷积因子如下:-10+r-l-2-20+20001-10+1,、+1+2+1,GGy模板系数总和为零,这正如倒数算子所预示的:此时在灰度级不变的区域,模
43、板响应为零。3、Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越人,产生的影响越小。Sobel算子根据像素点上下、左右邻点灰度值加权值,在边缘处达到极人值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高的时候,是一种较为常用的边缘检测的方法。Sobel算子是边缘检测器中最常用的算子之一。三、实验内容(调试好的程序,实验结果及分析)voidIMGsobelconstunsignedcharrestrictin,/*Inputimagedata*/un
44、signedchar*restrictout,/*Outputimagedataintcols,introws)fI/*Imagedimensions*/intH,O,V,i;int100.iOl,i02;int110.il2;inti20,i21,i22;intw=cols;/*Iterateoverentireimageasasingle,continuousrasterline*/for(i=0;i255)0=255;/*/*Storeit.*/*/outi+1=O;voidMediaiiFilter(unsignedcliar*sourceling,unsignedchai*newli
45、ug,/unsignedchar*noise,mtcols,introws)i/定义局部变量intiJkmjjange=32;intsum;intpixels;/,staitPix.endPix;unsignedchar*pp=sourceling,*nevpp=newhng;/,*noisepp=noise;intmedianWiii9=0;inttemp;图像四周的像素不进行处理,等于原值for(i=0;icols-1;i+)处理第一行的像素*newpp+=*pp+;处理最后一行的像素pp=sourceling+(iows-1)*cols;亡wpp=newlmg+(rows-1)*cols;for(i=0;icols-1;i+)*newpp-H-=*pp+;处理最左边一列的像素Mwpp=newliug;pp=souiceliug;for(i=0;irowsi+)*newpp=*pp;newpp+=cols;pp+=cols;处理最右边一列的像素mwpp=newliug+cols-l;pp=souiceliug+cols-l;for(i=0;irowsi+)*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机构研究报告-Brand KPIs for health insurance Porto Seguro in Brazil-外文版培训课件
- 有机肥堆肥发酵质量控制标准
- 烟草蚜虫烟粉虱防治技术指南
- 老人轮椅转运安全操作流程规范
- 演练评估总结与改进管理办法
- 轻断食饮食计划执行细则
- 油罐区火灾事故处置预案
- 服务质量检查监督标准细则
- 儿童积食推拿手法规范
- 黄瓜霜霉病精准用药防治操作指南
- GINA哮喘指南核心更新解读2026
- GB/Z 177.7-2026人工智能终端智能化分级第7部分:汽车座舱
- 四川省成都市三年(20202022)中考语文二模分题型分层汇编12现代文阅读(记叙文)(解析)
- 人教版新目标英语七年级下册unit 4 写作市公开课一等奖省课获奖课件
- 八年级家长会-语文老师课件
- 颅内动脉狭窄治疗策略
- 2023年上海见证取样员考试试题
- 北师大版小学六年级下册数学期末试卷 共6套
- 领导干部在企业兼职(任职)情况自查自纠登记表
- SB/T 11067-2013金属材料仓储技术与管理规范
- 第九章配送中心规划
评论
0/150
提交评论