

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店鋪銷售面試題及答案
- 2025年八股文java面試題及答案
- c面試題2017及答案
- 姜堰小學面試題及答案
- 金色實拍風老年人心理健康講座
- 2025年紫外輻照計項目提案報告模板
- 實驗室人員培訓
- 養老護理培訓指導
- 新能源汽車電機驅動技術革命與產業布局戰略研究報告
- 2025年分布式能源系統生物質能源應用中的能源安全與風險管理報告
- YY/T 1467-2016醫用包扎敷料救護繃帶
- GB/T 6495.3-1996光伏器件第3部分:地面用光伏器件的測量原理及標準光譜輻照度數據
- GB/T 17193-1997電氣安裝用超重荷型剛性鋼導管
- 2023年九年級中考數學高頻考點突破-圓的切線的證明【含答案】
- 2023年內江市市中區財政局系統事業單位招聘筆試題庫及答案解析
- 國際貿易實務全部資料課件
- 帶狀皰疹醫學課件
- 全國卷高考標準語文答題卡作文紙3欄800字版
- IATF16949體系培訓資料課件
- 事業單位招聘考試《工程建設管理專業知識》真題匯總及答案【含解析】
- 初一幾何綜合練習題
評論
0/150
提交評論