基于DSP的形狀識別_第1頁
基于DSP的形狀識別_第2頁
基于DSP的形狀識別_第3頁
基于DSP的形狀識別_第4頁
基于DSP的形狀識別_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、信息與電氣工程學(xué)院DSPDSP 應(yīng)用系統(tǒng)(三級)項(xiàng)目應(yīng)用系統(tǒng)(三級)項(xiàng)目設(shè)計說明書設(shè)計說明書(2013/2014 學(xué)年第二學(xué)期)題 目 : 基于 DSP 的形狀識別 專業(yè)班級 : 電子信息 1101 學(xué)生姓名 : 陳星穎 指導(dǎo)教師 : 李麗宏 崔冬 王鵬 賈東立 設(shè)計周數(shù) : 2 周 設(shè)計成績 : 2014 年 7 月 11 日1目目 錄錄1 1 項(xiàng)目設(shè)計目的及任務(wù)項(xiàng)目設(shè)計目的及任務(wù).2 22 2 項(xiàng)目設(shè)計內(nèi)容項(xiàng)目設(shè)計內(nèi)容.2 2 2.2.1 1 項(xiàng)目設(shè)計原理項(xiàng)目設(shè)計原理.2 2 2.1.2.1.1 1 數(shù)字圖像信號處理數(shù)字圖像信號處理.2 2 2.2.1 1.2.2 TMS320VC5509

2、TMS320VC5509 芯片介紹芯片介紹 .4 4 2.2.1 1 程序代碼程序代碼.5 53 3 項(xiàng)目設(shè)計心得項(xiàng)目設(shè)計心得.1 10 04 4 參考文獻(xiàn)參考文獻(xiàn).1 10 021 1 項(xiàng)目設(shè)計目的項(xiàng)目設(shè)計目的(1)通過 DSP 實(shí)驗(yàn)箱,讀取一幅圖像或者一路模擬視頻信號的采集與顯示;(2)掌握形式識別的原理;(3)掌握 DSP 實(shí)驗(yàn)箱環(huán)境與程序設(shè)計;(4)基于實(shí)驗(yàn)箱環(huán)境編寫形狀識別程序,對規(guī)則形狀進(jìn)行識別2 2 項(xiàng)目設(shè)計內(nèi)容項(xiàng)目設(shè)計內(nèi)容 2.12.1 項(xiàng)目設(shè)計原理項(xiàng)目設(shè)計原理 2.1.12.1.1 數(shù)字圖像信號處理數(shù)字圖像信號處理(1)數(shù)字圖像直方圖統(tǒng)計:灰度直方圖是數(shù)字圖像處理中一個最簡單

3、、最有用的工具,它描述了一幅圖像的灰度級內(nèi)容。任何一幅圖像的直方圖都包括了可觀的信息,某些類型的圖像可由其直方圖完全描述。灰度直方圖是灰度值的函數(shù), 描述的是圖像中具有該灰度值的像素的個數(shù),其橫坐標(biāo)表示像素的灰度級別,縱坐標(biāo)是該灰度出現(xiàn)的頻率(像素個數(shù)與圖像像素總數(shù)之比)。程序流程圖:圖 1 直方統(tǒng)計流程圖3(2)數(shù)字圖像邊緣檢測:圖像的邊緣是圖像的最基本特征。所謂邊緣(或邊沿)是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。邊緣廣泛存在于物體與背景之間、物體與物體之間、基元與基元之間。因此,它是圖像分割所依賴的重要特征。物體的邊緣是由灰度不連續(xù)性所反映的。 經(jīng)典的邊緣提取方法是考察圖

4、像的每個像素在某個鄰域內(nèi)灰度的變化,利用邊緣臨近一階或二階方向?qū)?shù)變化規(guī)律,用簡單的方法檢測邊緣。這種方法稱為邊緣檢測局部算子法。邊緣的種類可以分為兩種:一種稱為階躍性邊緣,它兩邊的像素的灰度值有著顯著的不同;另一種稱為屋頂狀邊緣, 它位于灰度值從增加到減少的變化轉(zhuǎn)折點(diǎn)。 如果一個像素落在圖像中某一個物體的邊界上,那么它的鄰域?qū)⒊蔀橐粋€灰度級的變化帶。對于這種變化最有用的兩個特征是灰度的變化率和方向,它們分別以梯度向量的幅度和方向來表示。邊緣檢測算子檢查每個像素的鄰域并對灰度變化率進(jìn)行量化, 也包括方向的確定。大多數(shù)使用基于方向?qū)?shù)掩模求卷積的方法。(3)Sobel 邊緣算子:在邊沿檢測中,常

5、用的一種模板是 Sobel 算子。Sobel 算子有兩個,一個是檢測水平邊沿的;另一個是檢測垂直平邊沿的。與和相比,Sobel 算子對于象素的位置的影響做了加權(quán),因此效果更好。Sobel 算子另一種形式是各向同性 Sobel(Isotropic Sobel)算子,也有兩個,一個是檢測水平邊沿的 ,另一個是檢測垂直平邊沿的 。各向同性 Sobel 算子和普通 Sobel 算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測不同方向的邊沿時梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類型圖像輪廓時,并不需要對梯度方向進(jìn)行運(yùn)算,所以程序并沒有給出各向同性 Sobel 算子的處理方法。由于 So

6、bel 算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡單有效,因此應(yīng)用廣泛。美中不足的是,Sobel 算子并沒有將圖像的主體與背景嚴(yán)格地區(qū)分開來,換言之就是 Sobel 算子沒有基于圖像灰度進(jìn)行處理,由于 Sobel 算子沒有嚴(yán)格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學(xué)上證明當(dāng)像素點(diǎn)滿足正態(tài)分布時所求解是最優(yōu)的。4Sobel 算子是一個離散微分算子(discrete differentiation oper

7、ator)。它結(jié)合了高斯平滑和微分求導(dǎo),用來計算圖像灰度函數(shù)的近似梯度。下圖所示的兩個卷積核形成了 sobel 算子,圖像中的每個點(diǎn)都用這兩個核做卷積,一個核對通常的垂直邊緣相應(yīng)最大,而另一個對水平邊緣相應(yīng)最大。兩個卷積的最大值作為該點(diǎn)的輸出位。運(yùn)算結(jié)果是一幅邊緣幅度圖像。圖 2 sobel 邊緣算子程序流程圖:圖 3 邊緣檢測流程圖 2.1.22.1.2 TMS320VC5509TMS320VC5509 芯片介紹芯片介紹DSP 定點(diǎn)數(shù)字信號處理器(DSP)是基于 DSP TMS320C55x 代 CPU 處理器核心。的 C55x DSP 架構(gòu)通過增加并行性和減少功耗總重點(diǎn)實(shí)現(xiàn)了高性能和低功耗

8、。支持的 CPU 內(nèi)部總線結(jié)構(gòu),是由一個程序讀取的數(shù)據(jù)總線,三總線,兩個數(shù)據(jù)寫入總線,和更多的公交車專用外設(shè)和 DMA 活動。這些巴士提供表演三數(shù)據(jù)的能力在一個周期內(nèi)讀取和寫入兩數(shù)據(jù)。同時,5DMA 控制器進(jìn)行了兩個數(shù)據(jù)傳輸周期獨(dú)立的 CPU 活動。提供兩個 CPU 的 C55x 乘累加(MAC)單元,每個具有 17 位17 位乘法的一個周期。特征:*高性能,低功耗,定點(diǎn)數(shù)字信號處理器 TMS320C55x* 6.94-ns 指令周期時間為 144 MHz 的時鐘速率在 1.6 V*一個/兩個指令(S)每個周期執(zhí)行*雙乘法器達(dá) 288000000 乘累加每秒(MMACS)*兩個算術(shù)/邏輯單元(

9、ALU)*三內(nèi)部數(shù)據(jù)、操作數(shù)讀公交車和兩個內(nèi)部數(shù)據(jù)/操作數(shù)寫入總線* 128K 的16 位的芯片上的 RAM,由: *64K 字節(jié)的雙端口存儲器(區(qū))8 塊 4K16 位 *192k 字節(jié)的單一訪問 RAM(SARAM)24 塊 4K16 位 *64K 字節(jié)的一個等待狀態(tài)的片上 ROM(32K16 位) *816 位最大可尋址的外部存儲空間(同步動態(tài)隨機(jī)存儲器)*16 位外部并行總線內(nèi)存支持*外部存儲器接口(EMIF)與 GPIO 功能和無縫接口*異步靜態(tài)存儲器(SRAM)*異步存儲器*同步動態(tài)隨機(jī)存取存儲器(SDRAM)* 16 位并行增強(qiáng)的主機(jī)接口(HPI)與 GPIO 功能*六裝置的功能

10、結(jié)構(gòu)域可編程低功耗控制*在芯片掃描為基礎(chǔ)的仿真邏輯*片上外設(shè) 2.22.2 程序代碼程序代碼 Image.c#include#define IMAGEWIDTH 80#define IMAGEHEIGHT 80#define MODEGRAYBAR 0#define MODEGRAY 1#define MODEPHOTO1 2#define MODEPHOTO2 36#define MODEPHOTO3 4#define MODEPHOTO4 5#define MODEPHOTO5 6#define MODEPHOTO6 7float fHistogram256;void InitImage(

11、unsigned int nMode,unsigned char *pImage,int nWidth,int nHeight);unsigned char dbImageIMAGEWIDTH*IMAGEHEIGHT;unsigned char dbTargetImageIMAGEWIDTH*IMAGEHEIGHT;float circularity(unsigned char *pImage,unsigned char *pImage0,int nWidth,int nHeight,float fHisto256);float L,S,circularity0;/* 直方圖統(tǒng)計實(shí)驗(yàn)程序 */

12、int main()InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT); identification(MODEPHOTO1);InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT); identification(MODEPHOTO2);InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAG

13、EHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT);identification(MODEPHOTO3);InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT); identification(MODEPHOTO4);InitImage(MODEPHOTO5,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT);iden

14、tification(MODEPHOTO5);InitImage(MODEPHOTO6,dbImage,IMAGEWIDTH,IMAGEHEIGHT); /BreakPointSobel(IMAGEWIDTH,IMAGEHEIGHT);identification(MODEPHOTO6);while (1);/BreakPointfloat circularity(unsigned char *pImage,unsigned char *pImage0,int nWidth,int nHeight,float fHisto256) int i,j; unsigned int uWork; un

15、signed char *pWork,*pWork0; for ( i=0;i256;i+ ) fHistoi=0.0f;pWork=pImage0;for ( i=0;inHeight;i+ ) 7for ( j=0;jnWidth;j+,pWork+ )uWork=(unsigned int)(*pWork);fHistouWork+;L=fHisto255;for ( i=0;i256;i+ )fHistoi=0.0f;pWork0=pImage;for ( i=0;inHeight;i+ ) for ( j=0;j59&circularity063&circularit

16、y096&circularity097) printf(trianglen); InitImage.c#include#define MODEGRAYBAR 0#define MODEGRAY 1#define MODEPHOTO1 2#define MODEPHOTO2 3#define MODEPHOTO3 4#define MODEPHOTO4 58#define MODEPHOTO5 6#define MODEPHOTO6 7#define MODEBLOCK 6#define MODEINCLINE 7#define MODEFPHOTO 8#define GRAYBARLE

17、VEL 16void ReadImage(unsigned char *pImage,char *cFileName,int nWidth,int nHeight);void InitImage(unsigned int nMode,unsigned char *pImage,int nWidth,int nHeight)switch ( nMode )case MODEPHOTO1:ReadImage(pImage,.circle1.bmp,nWidth,nHeight);break;case MODEPHOTO2:ReadImage(pImage,.squarence1.bmp,nWidt

18、h,nHeight);break;case MODEPHOTO3:ReadImage(pImage,.triangle1.bmp,nWidth,nHeight);break;case MODEPHOTO4:ReadImage(pImage,.squarence2.bmp,nWidth,nHeight);break;case MODEPHOTO5:ReadImage(pImage,.triangle2.bmp,nWidth,nHeight);break;case MODEPHOTO6:ReadImage(pImage,.circle2.bmp,nWidth,nHeight);break;void

19、 ReadImage(unsigned char *pImage,char *cFileName,int nWidth,int nHeight)int j;unsigned char *pWork;FILE *fp;if ( fp=fopen(cFileName,rb ) )fseek(fp,1078L,SEEK_SET);pWork=pImage+(nHeight-1)*nWidth;for ( j=0;jnHeight;j+,pWork-=nWidth )fread(pWork,nWidth,1,fp);fclose(fp);9 Sobel.c#define IMAGEWIDTH 80#d

20、efine IMAGEHEIGHT 80#include extern unsigned char dbImageIMAGEWIDTH*IMAGEHEIGHT;extern unsigned char dbTargetImageIMAGEWIDTH*IMAGEHEIGHT;int mi,mj,m_nWork1,m_nWork2;unsigned int m_nWork,*pWork;unsigned char *pImg1,*pImg2,*pImg3,*pImg;unsigned int x1,x2,x3,x4,x5,x6,x7,x8,x9;void Sobel(int nWidth,int

21、nHeight)int i;pImg=dbTargetImage;for ( i=0;iIMAGEWIDTH;i+,pImg+ )(*pImg)=0;(*pImg)=0;pImg1=dbImage;pImg2=pImg1+IMAGEWIDTH;pImg3=pImg2+IMAGEWIDTH;for ( i=2;inHeight;i+ )pImg+;x1=(*pImg1); pImg1+; x2=(*pImg1); pImg1+;x4=(*pImg2); pImg2+; x5=(*pImg2); pImg2+;x7=(*pImg3); pImg3+; x8=(*pImg3); pImg3+;for

22、 ( mi=2;minWidth;mi+,pImg+,pImg1+,pImg2+,pImg3+ )x3=(*pImg1); x6=(*pImg2); x9=(*pImg3); m_nWork1=abs(x7+x8+x8-x2-x2-x3);m_nWork2=abs(x3+x6+x6-x4-x4-x7);if (m_nWork1255 )m_nWork1=255;(*pImg)=m_nWork1;x1=x2; x2=x3;x4=x5; x5=x6;x7=x8; x8=x9;10(*pImg)=0; pImg+;程序運(yùn)行結(jié)果:circularity0=59.205189.circlecircularity0=63.320961.squarencecircularity0=96.094772.trianglecircularity0=63.429848.squarencecircularity0=96.553711.trianglecircularity0=59.391403.circle3 3 項(xiàng)目設(shè)計總結(jié)或結(jié)論項(xiàng)目設(shè)計總結(jié)或結(jié)論本學(xué)期學(xué)習(xí) DSP 的時間很短,芯片設(shè)計掌握的深度不夠,但通過此次課程設(shè)計,卻改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論