下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、封面作者: PanHongliang仅供个人学习课程设计报告 数字图像综合设计)第六章心得体会16题 目嵌入式DSP图像处理专业、学号电信0962610221授课班号277901学生姓名 _ 屠东浪指导教师霍冠英摘要针对现在的过程检测的实时需求,设计出一种成本低,功能始终的图像处 理采集系统。该系统以 DSPDSP 为核心并配上外围电路实现图像处理功能,在加上 多种通讯接口设计的图像传输通道,然后摄像头用于采集图像数据。最后基于 DSPDSP 嵌入式操作系统设计了一种图像处理方法,在系统中实现了图像中值滤 波、图像边缘检测。实验表明,该系统能够很好地解决在线处理功能的实时问 题,图像处理的准确
2、率也满足了过程检测系统的要求,而且实现简单,成本比 较低,特别适合对于功耗、体积要求较严格的过程检测系统。关键词:DSPDSP 图像处理系统中值滤波边缘检测第一章课程设计的任务和 目的.5第一章课程设计设备第三章硬件功能描述第四章软件安装及其开发流程介绍第五章程序设计模块5.15.1 图像采集、显示模块5.2 图像处理模块第七章参考文献. 17一、 课程设计的任务和目的(1) 掌握 Code Composer Studio2.2的安装和配置,熟悉TMS320C6000 软件开发过程:仓 U建工程和管理工程、编译和调试、使用观察窗口、了解图形功能(实验书P40-45 );(2) 了解边缘检测的算
3、法和用途,利用 Sobel 算子进行边缘检测,实现基于 Sobel 算子的 边缘检测方法(实验书 P106-108 ) ;(3) 在(2) 的基础上,修改核心代码,调试实现基于 Prewitt 算子的边缘检测方法。(4) 在边缘检测前,加中值滤波,去除噪声,进一步提高Prewitt 算子边缘检测的效果(选做)二、 课程设计设备(1)计算机一台(2)ICETEK-DM642-P4 实验箱三、 硬件功能描述ICETEK-DM642-P4 评估板上的 DSP 芯片通过 64bit 的 EMIF 接口或 8/16bit 的 3 路 视频口连接板上外围设备。SDRAM Flash、FPGA 和 UART
4、 每一个设备占用其中的一个接口。 EMIF 接口也连接扩展背板接口,扩展背板接口用来连接背板。评估板上的视频解码器 和编码器连接到视频端口和扩展连接器上。评估板上的4 个解码器 和 1 个编码器符合标准规范。评估板上的 AIC23B 多媒体编解码器允许 DSP 进行模拟音频信号的输出和接收。I2C 总线用来控制编解码器端口,McASP 接口被用来控制数据。模拟信号通过3 个 3.5mm的音频插座进行输入输出,其相应的分别是(从下到上)直接输出(line output )、麦克风输入( microphone input )和直接输入( line input )。编解码器可以选择麦克风输入 或直接
5、输入作为主动输入,模拟输出被指定为直接输出接口。McASP 接口可以通过软件重新设定成为一个扩展接口。可编程逻辑门阵列又被称为FPGA,基于 FPGA 上扩展了用户I/O 口,硬盘接口,主要是给用户用来做二次开发。评估板还包括四个用户指示灯,用户 可以利用这些指示灯进行交互式的反馈实验。这些指示灯是通过读写CPLD 寄存器(0 x900C0000) 来进行控制的。尽管当 ICETEK-DM642-P4 评估板插在 PCI 插槽上使用时, PC 总线会给评估板供电,评估板上仍设计有 +5V 输入电源作为独立的器件为评估板供电。评估板上的配电系统为DSP 内核提供 +1.4V 的电压,为 DSP
6、的 I/O 接口提供 +3.3V 的电压。在评估板电源供 给正常之前,评估板保持复位状态。 评估板上还设计有电源芯片为编码器和解码器提供 +1.8V 电压。Code ComposerStudio 与评估板通过 14 针或 60 针的扩展 JTAG 端口进行 连接通信。ICETEK-DM642-P4 评估板由TI 公司的 CCS 软件工具进行开发。 Code Composer Studio 与 ICETEK-DM642-P4 评估板通过 JTAG 扩展仿真接口进行连接通信。您 可根据实验系统安装说明来安装 CCS 软件。这个过程将安装所有的开发工具、文档和驱动 程序。ICETEK-DM642-P
7、4 评估板四、 软件安装及其开发流程介绍(1) 掌握 Code Composer Studio2.21 的安装和配置。(2) 了解 DSP 开发系统和计算机与目标系统的连接方法。(3) 了解 Code Composer Studio2.21软件的操作环境和基本功能,了解TMS320C6000 开发过程。1学习创建工程和管理工程的方法。2了解基本的编译和调试功能。3学习使用观察窗口。4了解图形功能的使用。开发 TMS320C6000 应用系统一般需要以下几个调试工具来完成:1软件集成开发环境 (Code Composer Studio2.21) :完成系统的软件开发,进行软件和硬件仿真调试。它也
8、是硬件调试的辅助手段;2开发系统 (ICETEK 5100 USB) :实现硬件仿真调试时与硬件系统的通信,控 制和读取硬件系统的状态和数据。3评估模块 (ICETEK-DM642-P4 等):提供软件运行和调试的平台和用户系统开 发的参照。(5)Code Composer Studio2.21 主要完成系统的软件开发和调试。它提供一整套的程序编 制、维护、编译、调试环境,能将汇编语言和C 语言程序编译连接生成 COFF ( 公共目标文件 )格式的可执行文件,并能将程序下载到目标 DSP 上运行调试。(6) 用户系统的软件部分可以由 Code Composer Studio 建立的工程文件进行
9、管理,工程文 件一般包含以下几种文件:源程序文件: C 语言或汇编语言文件 (*.ASM 或 *.C) 、头文件 (*.H) 、命令文件(*.CMD) 、库文件 (*.LIB,*.OBJ) 。(6) 开发流程:1实验准备2设置 Code Composer Studio2.2 在硬件仿真 (Emulator) 方式下运行请参照第二部分,第 二章操作。3启动 Code Composer Studio2.2双击桌面上CCS 2( C6000)”,启动 Code ComposerStudio2.2 ;如果无法进入 CCS 软件,请参照第二部分,第三章操作,排除问题。4创建新的工程文件:选择菜单 Pro
10、ject ”的New”项;在Project Creation ”对 话框中,在“ Project ”项 输 入 USECCS ; 单 击 “ Location ” 项 末 尾 的 浏 览按钮, 改变目录到C:ICETEK-DM642-P4Lab501-USECCS,单击“ 0K;单击“ 完成 ” ; 这 时 建 立的 是 一个 空的 工 程文件 ; 展开 主窗 口 左侧 工 程 管理 窗 口中 “Projects ”下新建立的 “USECCS .pjt ”,其中各项均为空。提示:如 果要 创建 文件库 , 只需 在建 立新 工程时 , 将“ Project ”中 的选 项更改 为Library
11、 ( .Lib )即可5在工程文件中添加程序文件:选择菜单Project ”的Add Files to Project ”项;在“ Add Files to Project”对话框中选择文件目录为Lab501-USECCS 改变文件类型为“C Source Files(*.c 。 *.ccc) ”,选择显示出来的文件“ volum.c ”;重复上述各步 骤,添加volume.cmd 、load.asm 、vectors.asm 文件到 USECCS 工程中 ( 如没有找到相 应的文件,请选择改变文件类型来找 );添加 C:tiC6000cgtoolslibrts6400.lib。6选择菜单“
12、Project ”的“ Rebuild All ”项;注意编译过程中 CCS 主窗口 下部的“ Build 提示窗中显示编译信息,最后将给出错误和警告的统计数。7基本调试功能:1执行 FileLoad Program ,在随后打开的对话框中选择刚 刚 建 立 的 Lab501-USECCSDebugUSECCS.out 文件。2. 在工程浏览窗口中,双击 volume.c 激活这个文件,移动光标到 main() 行 上,右击鼠标选择 Toggle Breakpoint 或按 F9 设置断点。3. 选择 DebugRun 或按 F5 运行程序 , 程序会自动停在 main() 函数头上。1按 F
13、10 执行到 write_buffer() 函数上。2再按 F8, 程序将转到 write_buffer 函数中运行。3此时 , 为了返回主函数 , 按 shift-F7 完成 write_buffer 函数的执行。4再次执行到 write_buffer 一行 , 按 F10 执行程序 , 对比与 F8 执行的不 同五、 程序设计模块5.15.1 图像采集、显示模块/* Copyright 2003 by Texas Instruments Incorporated.* All rights reserved. Property of Texas Instruments Incorporate
14、d.* Restricted rights to use, duplicate or disclose this code are* granted through contract.*/* (#) DDK 1.10.00.23 07-02-03 (ddk-b12) */#include #include #include #include #include #include #include #include #include #include #include #include #include tvp5150a.h#include #include vcapparams.h#includ
15、e vdisparams.h#include ICETEK-DM642-PCI.h/extern unsigned char nMemTemp720 。/extern unsigned char imgHistoHISTOHIGH*HISTOWIDTHextern Int EXTERNALHEAP 。extern unsigned char nMemTemp720*3 。extern unsigned int m_nOffset1,m_nOffset2,m_nOffset3/* heap IDs defined in the BIOS configuration file */* = main
16、 =*/main()/*/* open CSL DAT module for fast copy */*/CSL_init() 。CACHE_clean(CACHE_L2ALL, 0, 0) 。/CACHE_setL2Mode(CACHE_256KCACHE) 。CACHE_setL2Mode(CACHE_0KCACHE。)CACHE_enableCaching(CACHE_EMIFA_CE00) 。CACHE_enableCaching(CACHE_EMIFA_CE01) 。DAT_open(DAT_CHAANY, DAT_PRI_LOW, DAT_OPEN_2D。)ICETEKDM642P
17、CIBoardInit() 。/* = tskVideoLoopback = * video loopback function.*/Int frames = 0 void tskVideoLoopback()Int i。unsigned int m_nID/ int m_nWork 。Int status 。FVID_Handle disChan 。FVID_Frame *disFrameBuf 。Int numLinesDis = EVMDM642_vDisParamsChan.imgVSizeFld1Int numLinesCap = EVMDM642_vCapParamsChan.fl
18、dYStop1 -EVMDM642_vCapParamsChan.fldYStrt1+1 。IntnumLines = (numLinesDis numLinesCap) ?numLinesDis 。FVID_Handle capChan 。Int numPixels = EVMDM642_vCapParamsChan.fldXStop1 -EVMDM642_vCapParamsChan.fldXStrt1+1 。FVID_Frame *capFrameBuf 。Int capLinePitch = EVMDM642_vCapParamsChan.fldXStop1 -EVMDM642_vCa
19、pParamsChan.fldXStrt1+1 。Int disLinePitch = EVMDM642_vDisParamsChan.imgHSizeFld1 mInitVPort() 。numLines *= 2。 /* both fields */*/* allocate both capture and displayframe buffers */* in external heap memoryEVMDM642_vCapParamsChan.segId = EXTERNALHEAP 。EVMDM642_vDisParamsChan.segId = EXTERNALHEAP 。num
20、LinesCap*/*EVMDM642_vDisParamsSAA7105.hI2C = EVMDM642_I2C_hI2C 。EVMDM642_vCapParamsTVP5150A.hI2C = EVMDM642_I2C_hI2C 。/*/* initialization of capture driver*/*/mSet5150Ready(TRUE,FALSE,FALSE,FALSE) 。 / 使 能 视 频 通 道 1,接下来将发送配置命令capChan = FVID_create(/VP0CAPTURE/A/0,/ 初始化与通道 1相连的 VPort 口IOM_INPUT, &
21、status, (Ptr)&EVMDM642_vCapParamsChan, NULL)。/ 通道1: /VP0CAPTURE/A/0/2:/VP0CAPTURE/B/0/3:/VP1CAPTURE/A/0/4:/VP1CAPTURE/B/0/*/* initialization of display driver*/*/disChan = FVID_create(/VP2DISPLAY, IOM_OUTPUT,&status, (Ptr)&EVMDM642_vDisParamsChan, NULL)/*/* configure video encoder &
22、decoder*/*/FVID_control(disChan, VPORT_CMD_EDC_BASE + EDC_CONFIG,(Ptr)&EVMDM642_vDisParamsSAA7105)FVID_control(capChan, VPORT_CMD_EDC_BASE + EDC_CONFIG,(Ptr)&EVMDM642_vCapParamsTVP5150A)/* start capture & display operation */FVID_control(disChan, VPORT_CMD_START, NULL) 。FVID_control(capC
23、han, VPORT_CMD_START, NULL) 。*/* request a frame buffer from display & capture driver */FVID_alloc(disChan, &disFrameBuf)。FVID_alloc(capChan, &capFrameBuf)。frames + 。while ( 1 )for ( i = 0 。 i frame.iFrm.y1+i*capLinePitch,nMemTemp,numPixels) 。DAT_wait(m_nID) 。/ICETEKDM642PCIStatistic() 。
24、if ( i144 & iframe.iFrm.y1+i*disLinePitch,numPixels) 。/*ICETEKDM642PCIHistogram() 。DAT_copy2d(DAT_1D2D,imgHisto,disFrameBuf-frame.iFrm.y1+410*720+30,HISTOWIDTH,HISTOHIGH,720。)*/DAT_wait(DAT_XFRID_WAITALL) 。FVID_exchange(capChan, &capFrameBuf)。FVID_exchange(disChan, &disFrameBuf)。frames +
25、。void prdFrameCount()EVMDM642_rset(EVMDM642_LED, frames)。 frames = 0 。5.2 图像处理模块 Sobel 边缘检测#pragma CODE_SECTION(ICETEKDM642PCISobel,.text1) voidICETEKDM642PCISobel(unsigned char x)unsigned int m_nID 。m_nID=DAT_copy(x+180,cLines+m_nOffset3,MWIDTH) 。pImg1=cLines 。 pImg1+=m_nOffset1 。pImg2=cLines 。 pIm
26、g2+=m_nOffset2 。pImg3=cLines 。 pImg3+=m_nOffset3 。 x1=(*pImg1) 。 pImg1+ 。x2=(*pImg1) 。 pImg1+ 。 x4=(*pImg2) 。 pImg2+ 。 x5=(*pImg2) 。pImg2+ 。 x7=(*pImg3) 。 pImg3+ 。 x8=(*pImg3) 。 pImg3+ 。 for( mi=0 。 miMWIDTH。 mi+,pImg1+,pImg2+,pImg3+ )x3=(*pImg1) 。 x6=(*pImg2) 。 x9=(*pImg3) 。m_nWork1=x7+x8+x8-x2-x2-
27、x3 。m_nWork2=x3-x4-x4+x6+x6-x7 。/sobel 算子边缘检测 / m_nWork1=x7+x8-x2-x3 。m_nWork2=x3-x4+x6-x7 。 /Prewitt 算子边缘检测 if( m_nWork1255 )m_nWork2=255。else if ( m_nWork20)m_nWork2=0;xmi+180=m_nWork2 。x1=x2 。 x2=x3 。x4=x5 。 x5=x6 。x7=x8 。 x8=x9 。xmi=0 。m_nWork=m_nOffset1。 m_nOffset1=m_nOffset2 。m_nOffset2=m_nOff
28、set3 。 m_nOffset3=m_nWork 。 中值滤波#pragma CODE_SECTION(GetMiddleValue,.text1) unsigned charGetMiddleValue()int i,j 。cBuffer0=x1 。 cBuffer1=x2。 cBuffer2=x3cBuffer3=x4 。 cBuffer4=x5。 cBuffer5=x6cBuffer6=x7 。 cBuffer7=x8。 cBuffer8=x9for ( i=0。 i8 。 i+ )for ( j=i。 jcBufferj )cWork=cBufferi cBufferi=cBuffe
29、rj 。cBufferj=cWork 。return cBuffer5 。#pragma CODE_SECTION(ICETEKDM642PCIMedianFilter,.text1)void ICETEKDM642PCIMedianFilter(unsigned char x)unsigned int m_nID 。m_nID=DAT_copy(x+180,cLines+m_nOffset3,MWIDTH) 。/ DAT_wait(m_nID) 。/ plmg 仁 nMemTemp/ pImg3=cLines 。 pImg3+=m_nOffset3 。/ for ( mi=0 。 mi720
30、。 mi+,plmg1+,plmg3+ )/(*plmg3)=(*plmg1)。plmg1=cLines 。 plmg1+=m_nOffset1 。plmg2=cLines 。 plmg2+=m_nOffset2 。plmg3=cLines 。 plmg3+=m_nOffset3 。x1=(*plmg1) 。 plmg1+。 x2=(*plmg1) 。 plmg1+ 。x4=(*plmg2) 。 plmg2+。 x5=(*plmg2) 。 plmg2+ 。x7=(*plmg3) 。 plmg3+。 x8=(*plmg3) 。 plmg3+ 。for ( mi=2 。 miMWlDTH。 mi+
31、,plmg1+,plmg2+,plmg3+ )x3=(*plmg1) 。 x6=(*plmg2) 。 x9=(*plmg3) 。xmi+180=GetMiddleValue() 。x1=x2 。 x2=x3 。x4=x5 。 x5=x6 。x7=x8 。 x8=x9 。xmi=0 。m_nWork=m_nOffset1。 m_nOffset1=m_nOffset2 。m_nOffset2=m_nOffset3 。 m_nOffset3=m_nWork 。六、 心得体会为期两周的课程设计结束了, 这次的课程设计给我们很大的收获, 使我们 对 DSPDSP 嵌入式相关的基本知识有了进一步的提高,并
32、在实践中对各种概念有了 进一步的深化,开始的时候总觉得很简单的课程设计,因为软件部分确实不是 很难的,所以在做硬件部分的时候都没有认真做,后来做起来才知道不是那么 简单。程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计 可以让大家很快的明白你的思想,而且很方便的来实现它。此次课程设计的主要目的是完成对图像的一些基本处理,比如图像的采 集、显示、图像的滤波、图像的边缘检测等。尤其是图像滤波处理,图像在生成和传输过程中常受到各种嗓声的干扰和 影响,使图像质量下降。为了抑制噪声改善图像质量,必须对图像进行去噪 (中值滤波)处理。通常,将数字图像的平滑技术划分为两类。一类是全局处 理,即
33、对噪声图像的整体或大的块进行校正得到平滑图像。但这类方法需要知 道信号和噪声的统计模型,且运算量较大。另一类平滑技术是对噪声图像使用 局部算子。当对某一像素进行平滑处理时,仅对它的局部小邻域的一些像素加 以运算,其优点是计算效率高,而且可以多个像素并行处理,因此可以实现实 时或者准实时处理。图像平滑处理实现包括平滑非线性滤波器 ( 统计排序滤波器 ) 和平滑线性滤波器 (均值滤波 )。随着科技的进步和社会的发展,数字视频图像的采集、存储、处理及传输 技术在最近几年得到了广泛的应用,各类图像采集及处理系统已经逐渐深入到 人们生活的各个方面与图像处理卡等传统图像处理系统相比, DSPDSP 嵌入式图 像处理系统具有体积小、成本低、可靠性高等优点,在智能交通、远距离监 控、计算机视觉等领域应用广泛。七、 参考文献1 ICETEK-DM642-P4 实验指导书2 陈峰编著,基于 Blackfin DSP 的数字图像处理,电子工业出版社,20093 余成波数字图象处理及 MATLAB 实现重庆大学出版社,2007.8版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整 理。版权为潘宏亮个人所有This article in eludes some parts, in cludi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南城建职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年漳州职业技术学院单招职业适应性测试模拟试题及答案解析
- 医护人员职业素养与道德修养
- 医疗健康产业布局与规划
- 临床免疫检验的质量影响因素研究
- 儿科护理创新实践
- 精神心理护理培训手册
- 机械认识实习心得
- 2025江西南昌市劳动保障事务代理中心招聘2人笔试模拟试题及答案解析
- 2025年图们市事业单位公开招聘急需紧缺人员(6人)参考笔试题库及答案解析
- 四川省成都市第七中学2025-2026学年高二上学期11月半期考试英语(含答案)
- (2025版)国家基层高血压防治管理指南课件
- 2026届黑龙江省优才计划 中学生标准学术能力测试高三数学联考试题(含解析)
- 贵州省黔西南州金成实验学校2024-2025学年九年级上学期期末检测物理试题(无答案)
- 屠宰场安全生产知识培训课件
- 石油管道巡护安全培训课件
- 胶济铁路428事故讲解
- 智能教育设备设备使用风险防控方案
- 防洪影响评价编制培训课件
- GJB3206B-2022技术状态管理
- 2024《矿业权价值评估》真题及答案(考生回忆版)
评论
0/150
提交评论