中期j检查

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于DM3730的红外热图像处理技术研究姓名:张晓康学号:13080202154专业:机械电子工程指导教师:韩润萍论文进度、阶段成果存在的主要问题、下一步打算、预计完成日期论文进度、阶段成果本论文主要进行红外热图像处理技术中的边缘检测算法研究;同时,将研究的边缘检测算法在基于DM3730双核处理器的硬件平台上实现,最终在DM3730上完成红外图像的读入,边缘检测算法处理以及处理结果的显示。本论文截止到目前为止,主要做了以下工作。边缘检测算法部分•1、研究了传统边缘检测算法在红外图像中的应用。•传统边缘检测算法主要包括Roberts、Sobel、Prewitt、LoG、Canny等算法。其中,一阶梯度算子(Robert、Sobel、Prewit等)通过选用各种模板对图像进行处理,在背景较复杂的情况下,仅仅能对图像中灰度变化明显的区域做出检测,这样丢失了许多关键信息,同时提取的边缘存在不连续的现象;以LoG为代表的二阶梯度算子通过在二阶导数中搜索零穿越,进而确定边缘点,二阶梯度算子比一阶梯度算子检测出更多边缘,但仍会出现点状不连续现象,且对噪声敏感;Canny算子采用多个步骤完成边缘检测,提取出的边缘比一阶和二阶算子的都要好,但其抗噪性能比较差。•通过调整阈值参数,由传统边缘检测算法处理的红外热图像结果图如下:•2、研究了数学形态学,并结合Sobel算子对红外图像进行了边缘检测。•数学形态学是一门建立在严格数学集合论基础上的学科,是一种非线性滤波方法。它是以形态结构元素为基础对图像进行分析的数学工具,其基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以实现对图像的分析和识别。•数学形态学中有四种基本运算:膨胀运算、腐蚀运算、开运算和闭运算。•腐蚀运算定义如下:•膨胀运算定义如下:•其中,A(x,y)表示的是灰度图像,B(s,t)表示的是结构元素。•腐蚀运算可以减弱甚至消除小于结构元素的明亮区域,从而可以有效地去除孤立噪声点和边界上不平滑的凸出部分。膨胀运算是将与目标物体接触的所有背景点合并到物体中的过程,可填补空洞和形成连通域以及填平图像边界上不平滑的凹陷部分。(x,y)min{A(xs,y)B(s,t)}ABt(x,y)max{A(xs,yt)B(s,t)}AB•开运算定义如下:•闭运算定义如下:•式中,Θ用来描述的是腐蚀运算,⊕用来描述的是膨胀运算。•开运算是先对图像进行腐蚀运算再对图像进行膨胀运算,能去除图像中的孤立区域和毛刺,利用它可以消除形状小于结构元素的正峰值。闭运算先对图像进行膨胀运算再对图像进行腐蚀运算,主要用来对物体内部细小空洞进行填充,连接邻近物体和平滑物体的边界。()BABAB(AB)BAB•数学形态学中,结构元素是形态学图像处理中一个最重要也是最基本的概念。它是考察分析图像时设计一种收集图像信息的探针,观察在图像中不断移动的探针便可以考察图像中各个部分的关系,从而提取图像中的有用信息。•一般来讲,结构元素的尺寸大小和结构形状都会影响图像边缘检测效果。小尺寸的结构元素去噪能力弱,但能检测到好的边缘细节,大尺寸的结构元素去噪能力强,但所检测的边缘较粗。因此,不同形状的结构元素对不同图像边缘的感应能力不同。•通常结构元素的选择需要考虑两个原则:一是结构元素必须在几何上比原图像简单,且有界;二是结构元素的形态最好具有某种凸性,如圆形、十字形和方形(如下图):•(a)圆形(b)方形(c)十字形11111111111111•Sobel算子是一个梯度算子,其中,sobel水平方向和竖直方向的卷积算子分别为:•fx:fy:•Sobel算子的梯度幅值为,为计算简便,可近似为,然后选取取适当阈值τ并进行判断,如果G(x,y)τ,则点(x,y)的值为边缘点,否则为0,所得边缘点的几何即为边缘提取的二值化图像。12100012110120210122(x,y)xyGff(x,y)xyGff•在实验中采用了双结构多尺度形态学边缘检测算子对红外图像进行边缘检测,其数学定义如下:•式中,A为5*5的圆形结构元素,B为3*3的方形结构元素,I表示的是红外图像。其中,A为大尺度的结构元素,能够有效去除噪声;B为小尺度的结构元素,可以很好地提取图像的边缘细节信息。•A=B=(I)(I)(IB)AEBAA=0010001110111110111000100111111111•应用数学形态学并结合Sobel算子对红外热图像进行边缘检测的流程图如下所示:•这里采用对大小为320×240的红外图像进行边缘检测,并将该方法与经典的常用算法进行了比较,实验中选取了二值化阈值为δ=0.05。其图像处理结果如下:•从图像处理结果中,可以看出应用数学形态结合Sobel算子的方法得到的边缘图像包含了更多的边缘细节,但处理结果仍然不太理想,边缘粗糙。DM3730开发平台实现部分•学习搭建了DM3730硬件平台的开发环境:安装了Linux虚拟机,并在Linux下安装了DVSDK软件开发工具包。•在win7系统下,利用超级终端软件,通过RS-232串口线(9芯)实现了对DM3730开发平台的调试和控制,并通过网线利用网络文件系统(NFS)实现了虚拟机和开发平台的连接。•在Linux应用开发过程中,使用NFS十分方便,这是因为程序不用下载到开发板上就可以运行,可以加快程序的调试和修改过程。•学习了利用CodecEngine框架自带的VISA模块进行程序协同开发的过程。•ARM端应用程序的主体框架包括:•1、申请供图像数据存储的共享缓冲区内存Memory_ContigAlloc();•2、打开codec引擎Engine_open();•3、创建SCALE类算法的一个例程SCALE_create();•4、完成BMP格式图像数据及LCD显示屏的初始化;•5、执行SCALE类算法例程中的处理方法SCALE_process(),该函数会调用在DSP端编写的算法程序;•6、调用显示函数bmp_show(),将经过DSP端算法程序处理的图像数据在LCD显示屏上输出显示;•7、调用SCALE_delete()函数删除SCALE类算法例程;•8、调用Engine_close()函数关闭codec引擎;•9、调用Memory_ContigFree()函数释放所分配的内存缓冲区。•通过对ARM端主体框架的学习,实现了在DM3730平台上红外图像的读入显示;同时,实现了利用SCALE类算法例程中的处理方法SCALE_process()对图片进行处理并显示的功能。•在Linux系统中,用于图像显示的LCD显示屏等价于设备文件/dev/fb0,在LCD上显示图像就是对设备文件/dev/fb0进行操作。所以,要将BMP图像显示在LCD上,只需将存放于内存缓冲区的图像信息写入设备文件fb0中即可。•由于DM3730嵌入式开发平台上的LCD的每个像素点是由24位二进制数组成(R、G、B各8位),而存放于缓冲区中的为8位灰度图像,所以在将该图像数据写入设备文件fb0时,每个8位灰度值要分别填进R、G、B三个字节,即每个灰度值要重复写三次才能够在LCD上正确显示。•ARM端应用程序开发的流程图如下所示:LCD显示屏初始化开始申请ARM与DSP的共享缓冲区内存Memory_ContigAlloc()打开引擎Engine_open()创建SCALE类算法的一个例程SCALE_create()读取BMP格式图像并将其存入内存缓冲区执行SCALE_process()函数,调用DSP端编写的算法程序调用SCALE_delete()函数删除算法程序调用Engine_close()函数关闭引擎调用Memory_ContigFree()函数释放所申请的内存缓冲区结束从缓冲区读取经DSP端算法程序处理过的图像数据调用显示函数bmp_show(),将处理结果显示在LCD上•这里选取了lena.bmp图像作为测试实例,实现了图片的读取显示,如下图所示:•同时,在DSP端搭建了图像处理算法的开发环境,并编写了Sobel算子检测图像边缘的实现代码,封装完后并经过ARM端应用程序调用,将图像处理结果显示在屏幕上。仍以lena.BMP图像为例,图像处理结果如下:存在的主要问题、下一步打算、预计完成日期•存在的主要问题以及下一步打算•算法部分:1、红外图像的边缘处理效果仍然不太理想2、继续研究数学形态学算子并改进结构元素3、继续研究针对红外图像的边缘检测算法•硬件实现部分:学习DVSDK工具包,提高程序的执行效率,充分利用双核处理器系统的优势。•预计完成日期:2015年10月

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功