

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)</b></p><p> 題 目 基于linux的圖像識(shí)別處理設(shè) </p><p> 學(xué) 院 </p><p> 年級(jí)專業(yè) 計(jì)控1005班 </p><p> 學(xué)生姓名
2、 </p><p> 學(xué) 號(hào) </p><p> 指導(dǎo)老師 </p><p> 完成日期 年 月</p><p><b> 目 錄</b></p>
3、<p><b> 摘 要2</b></p><p><b> 第1章 引言1</b></p><p> 1.1 課程設(shè)計(jì)的意義1</p><p> 1.2 課程設(shè)計(jì)的目的1</p><p> 第2章 系統(tǒng)設(shè)計(jì)原理2</p><p> 2.1圖像
4、處理技術(shù)原理和成像原理2</p><p> 2.2 BMP文件格式簡介2</p><p> 2.3 圖像顯示原理3</p><p> 第3章 開發(fā)環(huán)境簡介及搭建5</p><p> 3.1 硬件平臺(tái)5</p><p> 3.2 系統(tǒng)軟件平臺(tái)構(gòu)建5</p><p> 3.3
5、 LCD顯示模塊5</p><p> 第4章 系統(tǒng)設(shè)計(jì)的與具體實(shí)現(xiàn)7</p><p> 4.1 BMP文件的讀入7</p><p> 4.2 圖像增強(qiáng)算法設(shè)計(jì)7</p><p> 4.3 圖像分割算法設(shè)計(jì)8</p><p> 4.4 圖像平滑8</p><p> 4.5
6、圖像縮放(平移以及轉(zhuǎn)置)10</p><p> 第5章 程序主要源代碼分析12</p><p> 5.1 圖像數(shù)據(jù)存儲(chǔ)的主程序如下:12</p><p> 5.3 圖像平移主要代碼15</p><p> 5.4 圖像縮放主要代碼18</p><p> 5.5 轉(zhuǎn)置圖像主要代碼21</p>
7、;<p> 第6章 運(yùn)行測(cè)試結(jié)果23</p><p> 6.1圖像平移效果23</p><p> 6.2圖像轉(zhuǎn)置效果24</p><p> 6.3圖像的縮放效果24</p><p><b> 第7章 總結(jié)25</b></p><p><b> 參考文獻(xiàn)
8、26</b></p><p> 基于ARM嵌入式圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 學(xué)生姓名:董亞美 指導(dǎo)老師:楊文柏</p><p> 摘 要 針對(duì)現(xiàn)在的過程檢測(cè)的實(shí)時(shí)需求,設(shè)計(jì)出一種成本低,功能始終的圖像處理采集系統(tǒng)。該系統(tǒng)以ARM7(S3C44BOX)為核心并配上外圍電路實(shí)現(xiàn)圖像處理功能,在加上多種通訊接口設(shè)
9、計(jì)的圖像傳輸通道,然后加入SD卡接口用于提取圖像數(shù)據(jù)。最后基于uC/OS-Ⅱ嵌入式操作系統(tǒng)設(shè)計(jì)了一種圖像處理方法,在系統(tǒng)中實(shí)現(xiàn)了圖像增強(qiáng)、圖像分割和目標(biāo)定個(gè)位。實(shí)驗(yàn)表明,該系統(tǒng)能夠很好地解決在線處理功能的實(shí)時(shí)問題,圖像處理的準(zhǔn)確率也滿足了過程檢測(cè)系統(tǒng)的要求,而且實(shí)現(xiàn)簡單,成本比較低,特別適合對(duì)于功耗、體積要求較嚴(yán)格的過程檢測(cè)系統(tǒng)。</p><p> 關(guān)鍵詞 ARM;圖像處理系統(tǒng);圖像增強(qiáng);目標(biāo)定位</p
10、><p><b> 1 引言</b></p><p> 1.1 畢業(yè)設(shè)計(jì)的意義</p><p> 圖像處理技術(shù)在工業(yè)自動(dòng)化、儀表檢測(cè)安全、以及安全、消費(fèi)電子、醫(yī)學(xué)中被越來越廣泛的應(yīng)用。在現(xiàn)代戰(zhàn)爭中,利用圖像進(jìn)行精確制導(dǎo)、火控、無人飛機(jī)的電視導(dǎo)航等,在國防中也受到了高度的重視。圖像處理算法中常有大量的運(yùn)算,特別是在實(shí)時(shí)圖像處理方面,因此通常采用
11、DSP[1]或FPGA[3]來實(shí)現(xiàn)。但隨著微處理器技術(shù)的突飛猛進(jìn),現(xiàn)代MPU[1]也可以完成高速的數(shù)字圖像處理。</p><p> 作為嵌入式圖像處理技術(shù),其主要技術(shù)包括兩個(gè)方面,一個(gè)是圖像處理技術(shù),另一個(gè)則是嵌入式系統(tǒng)[4]應(yīng)用技術(shù)。本文主要研究圖像處理技術(shù)在嵌入式系統(tǒng)中的應(yīng)用。</p><p> 1.2 畢業(yè)設(shè)計(jì)的目的</p><p> 本課程設(shè)計(jì)的目的旨
12、在研究一種能夠進(jìn)行高速圖像處理[5]的嵌入式系統(tǒng)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)方法。針對(duì)嵌入式系統(tǒng)本身的特點(diǎn),設(shè)計(jì)出具有較強(qiáng)通用性的嵌入式圖像處理平臺(tái)。</p><p> 利用嵌入式系統(tǒng)進(jìn)行圖像處理是對(duì)傳統(tǒng)的圖像處理硬件實(shí)現(xiàn)方法的挑戰(zhàn).它的完成將為圖像處理的開辟新的實(shí)現(xiàn)途徑,并且為嵌入式系統(tǒng)的應(yīng)用再次打開一片新的領(lǐng)域,同時(shí),由于圖像處理的應(yīng)用十分廣泛,其本身也有廣泛的應(yīng)用前景。</p><p> 圖
13、像數(shù)據(jù)是一種重要的信息資源,隨著以計(jì)算機(jī)和計(jì)算機(jī)技術(shù)為核心的信息科學(xué)的發(fā)展,圖像處理在通訊、管理、醫(yī)學(xué)、地震、氣象、航空航天以及教育等領(lǐng)域,發(fā)揮著愈來愈重要的作用。但傳統(tǒng)的圖像處理技術(shù)主要依賴于大批量的電子計(jì)算設(shè)備,它們帶來巨大的保養(yǎng)、增加行業(yè)成本。嵌入式平臺(tái)擁有小巧、價(jià)格低廉、功耗小及維護(hù)成本低等優(yōu)點(diǎn)。因此基于嵌入式平臺(tái)構(gòu)建圖像處理系統(tǒng)可以降低其生產(chǎn)維護(hù)成本,提高其可靠性和可控件,具有較高的市場(chǎng)價(jià)值。</p><p
14、> 本文主要針對(duì)采集到的圖像(bmp格式)實(shí)現(xiàn)平移、轉(zhuǎn)置、縮放、平滑等處理。</p><p><b> 2 系統(tǒng)設(shè)計(jì)原理</b></p><p> 2.1圖像處理技術(shù)原理和成像原理</p><p> 圖像處理技術(shù)又稱“機(jī)器視覺”[5],乃是將被測(cè)對(duì)象的圖像作為信息的載體,從中提取有用的信息來達(dá)到測(cè)量的目的,具有非接觸、高速、獲得信
15、息豐富等優(yōu)點(diǎn)。系統(tǒng)一般通過攝像頭采集對(duì)象的圖像信息,然后通過處理系統(tǒng)對(duì)采集到的圖像進(jìn)行數(shù)字化的處理和分析,根據(jù)檢測(cè)要求可得到對(duì)象的特征信息,隨后進(jìn)一步對(duì)此進(jìn)行判斷并輸出結(jié)果。如圖2.1 所示,連桿的表面缺陷通過一個(gè)方形LED漫反射光源均勻照亮待檢測(cè)的破口區(qū)域,光線照射到對(duì)象表面后,通過光學(xué)鏡頭成像在攝像頭內(nèi)的光電耦合CCD 元件[3]上并轉(zhuǎn)化成相應(yīng)的數(shù)字圖像信號(hào),CCD 元件可理解為一個(gè)由感光像素組成的點(diǎn)陣,每一個(gè)像素都一一對(duì)應(yīng)了被測(cè)對(duì)
16、象的二維圖像特征。數(shù)字圖像信號(hào)經(jīng)過圖像處理系統(tǒng)對(duì)圖像特征信息的提取和計(jì)算得到所需的測(cè)量值,隨后通過RS232 通訊接口把數(shù)據(jù)傳輸給PLC 進(jìn)行邏輯判斷,判斷的結(jié)果直接通過設(shè)備前面板上的指示燈輸出。</p><p> CCD 透鏡 LED</p><p> 光源 對(duì)象</p><p>
17、 CCD 攝像機(jī)</p><p> 圖2.1 攝像頭采集對(duì)象的圖像信息</p><p> 2.2 BMP文件格式簡介</p><p> 一個(gè)BMP文件包括以下四部分:文件頭,信息頭,調(diào)色板數(shù)據(jù)和圖像數(shù)據(jù)。文件頭長度為14個(gè)字節(jié)。分別為:bffype:指定文件結(jié)構(gòu),必須是Ox424D,即字符串“BM "; bfSize:指定文件大小,包括這14
18、個(gè)字節(jié);bfReservedl,bfReserved2:分別為2個(gè)字節(jié),為保留字,不用考慮:bfOffBits:從文件頭到實(shí)際的圖像數(shù)據(jù)的偏移字節(jié)數(shù)。信息 頭 長 度為40個(gè)字節(jié),分別為:biSize:指定這個(gè)結(jié)構(gòu)的長度,為40,單位字節(jié):biWidth, biHeight:指定圖像的寬度和高度,單位為像素;biPlanes:必須為1; biBitCount:指定表示顏色時(shí)要用到的位數(shù);biCompression:指定是否壓縮:biSi
19、zelmage:指定實(shí)際圖像數(shù)據(jù)占用的字節(jié)數(shù),注意,計(jì)算時(shí)圖像寬度取大于等于biWidth的最小的4的整數(shù)倍數(shù);biXPelsPerMeter, biYPelsPerMeter:指定目標(biāo)設(shè)備的水平和垂直分辨率;biClrUsed:指定本圖像實(shí)際用到的顏色數(shù),如果該值為零,則用到的顏色數(shù)為2的biBitCount次方:biCIrImportant:指定</p><p> 第三部分為調(diào)色板,當(dāng)然,這是對(duì)那些需要調(diào)色
20、板的文件而言的。在這里,所采集的圖像數(shù)據(jù)是真彩色[6]〔24位)的,故不需要調(diào)色板。調(diào)色 板 實(shí) 際上是一個(gè)數(shù)組,共有biClrUsed個(gè)元素。數(shù)組中每個(gè)元素占用4個(gè)字節(jié),依次是一字節(jié)的藍(lán)色分量,一字節(jié)的綠色分量,一字節(jié)的紅色分量,以及一字節(jié)的保留值。</p><p> 第四部分就是實(shí)際的圖像數(shù)據(jù)了。對(duì)于用到調(diào)色板的文件,圖像數(shù)據(jù)是該像素值在調(diào)色板中的索引值。這里需要注意的是:每一行的字節(jié)數(shù)必須是4的整倍數(shù),如
21、果不是,則需要補(bǔ)齊,這在biSizelmage中有介紹。</p><p> 一般來說 ,BMP文件的數(shù)據(jù)是從下到上,從左到右。也就是說,從文件中最先讀到的是圖像最下面一行的左邊第一個(gè)像素,然后是左邊第二個(gè)像素一接下來是倒數(shù)第二行左邊第一個(gè)像素?,以此類推,最后得到的是最上面一行的最右一個(gè)像素,這與采集出的圖像數(shù)據(jù)順序是不同的。每像素的順序?yàn)锽GR[6].</p><p> 2.3 圖像
22、顯示原理</p><p> 本課程設(shè)計(jì)設(shè)計(jì)采用的是一個(gè)240X320分辨率的16位液晶屏幕,可以通過操作S3C2410內(nèi)部的相關(guān)寄存器來直接控制顯示,由于采用了ARM—Linux作為操作系統(tǒng),可以直接操作“nux下的Framebuffer設(shè)備來完成圖像的顯示,幀緩沖(Framebuffer)是Linux為顯示設(shè)備提供的一個(gè)接口,把顯存抽象后的一種設(shè)備,他允許上層應(yīng)用程序在圖形模式下直接對(duì)顯示緩沖區(qū)進(jìn)行讀寫操作。
23、這種操作是抽象的、統(tǒng)一的。用戶不必關(guān)心物理顯存的位置、換頁機(jī)制等等具體細(xì)節(jié)。這些都是由Framebuffer設(shè)備驅(qū)動(dòng)來完成的。在應(yīng)用程序中首先要打開Framebuffer設(shè)備,在Linux系統(tǒng)中Framebuffer設(shè)備一般映射為/dev/fb,可以有多個(gè)設(shè)備。然后調(diào)用ioctl提供的借口獲取設(shè)備信息,主要是獲得當(dāng)Framebuffer設(shè)備的分辨率、色深、每一行數(shù)據(jù)占的字節(jié)數(shù)。關(guān)鍵的一步是將屏幕緩沖區(qū)映射到用戶空間,F(xiàn)ramebuffe
24、r設(shè)備可以看成是顯存的映像,但是Linux所有的設(shè)備驅(qū)動(dòng)均在內(nèi)核態(tài)工作,所以無法在當(dāng)前進(jìn)程空間中直接訪問,通過映射機(jī)制可以直接把顯存的起始地址映射到當(dāng)前進(jìn)程的地址空間,從而可</p><p> Pfd=mmap(0,F(xiàn)BDraw_finfo,smem_len,PROT_READ|PROT_WRFTE,MAP_SHARED,df,0);//以read、write和share方式映射屏幕上左邊為(x,y)的點(diǎn)在顯存
25、中的位置是:</p><p> Pfd+x*(fb_vinfo.bits_pixel)>>3)+y*fb_finfo.line_length,對(duì)這個(gè)位置賦相應(yīng)的顏色值就可以再屏幕上顯示出來。需要注意的是當(dāng)色深(fb_vinfo.bits_per_pixel)不同時(shí),顏色值的格式也不一樣。</p><p> 把經(jīng)過圖像處理后的圖像數(shù)據(jù)或者采集到的原始圖像數(shù)據(jù)轉(zhuǎn)化成Frameb
26、uffer設(shè)備的顏色數(shù)據(jù)格式(RGB565、RGB888等)后,將數(shù)據(jù)復(fù)制到從地址pfb開始的內(nèi)存中,就可以事先圖像的顯示。</p><p> 3 開發(fā)環(huán)境簡介及搭建</p><p><b> 3.1 硬件平臺(tái)</b></p><p> 數(shù)字圖像處理系統(tǒng)是執(zhí)行處理圖像、分析理解圖像信息任務(wù)的計(jì)算機(jī)系統(tǒng).盡管圖像處理技術(shù)應(yīng)用廣泛,圖像處理系
27、統(tǒng)種類很多,但他們的基本組成是相近的口它們主要含有:圖像輸入設(shè)備、執(zhí)行處理分析與控制的計(jì)算機(jī)圖像處理機(jī)、輸出設(shè)備、存儲(chǔ)系統(tǒng)中的圖像數(shù)據(jù)庫、圖像處理程序庫與模型庫。</p><p> 其中,負(fù)責(zé)執(zhí)行圖像處理與分析的圖像處理機(jī)是整個(gè)系統(tǒng)的核心部分,它關(guān)系著圖像的處理效果,及系統(tǒng)的整體性能。本系統(tǒng)選用的是韓國三星電子公司推出的一款基于ARM920T內(nèi)核的S3C2410嵌入式微處理器。</p><p
28、> S3C2410把外部復(fù)位信號(hào)作為一個(gè)中斷處理,在系統(tǒng)復(fù)位時(shí),程序指針(PC)被設(shè)置為0,程序跳轉(zhuǎn)到0x00000000開始運(yùn)行。此空間對(duì)應(yīng)BankO,系統(tǒng)的2MB的NORFIash和處理器的Bank0相連接。在NORFlash中存儲(chǔ)的是BootLoader,它負(fù)責(zé)配置處理器的結(jié)構(gòu)、工作模式以及自動(dòng)檢測(cè)系統(tǒng)的各個(gè)硬件是否工作正常。系統(tǒng)經(jīng)過初始化和自檢后,BootLoader負(fù)責(zé)把16MBNANDFlash的zlmage(即軟件
29、系統(tǒng)的鏡像文件)復(fù)制到0xc0008000地址(此地址是系統(tǒng)64MB SDRAM的首地址)。然后,引導(dǎo)程序把PC指向0xc0008000地址,系統(tǒng)開始運(yùn)行。</p><p> 3.2 系統(tǒng)軟件平臺(tái)構(gòu)建</p><p> 結(jié)合S3C2410處理器的特點(diǎn).基于該芯片構(gòu)建嵌入式圖像處理系統(tǒng),設(shè)計(jì)者必須考慮其通用性、響應(yīng)速度及對(duì)于硬件的可操控性。正是基于這樣的考慮,分三層構(gòu)建嵌入式圖像處理系統(tǒng)
30、的軟件體系:ARM Linux的建立;圖形用戶界面(MiniGui)的移植;圖像處理軟件的設(shè)計(jì)編碼。其中ARM Linux的建立是構(gòu)建嵌入式Linux系統(tǒng)的通用步驟. </p><p> 3.3 LCD顯示模塊</p><p> 從S3C24 10的LCD控制器出來的信號(hào)線包括24根數(shù)據(jù)線和若干根控制線。這些信號(hào)線是經(jīng)過74HC245隔離后接到LCD模塊的,對(duì)于256色LCD只需要其中
31、低8位數(shù)據(jù)線即可(如圖所示)。LCD模塊除了需要控制信號(hào)和數(shù)據(jù)信號(hào)外,還需要一個(gè)22V左右的工作電壓和上千伏的背光電壓。前者M(jìn)AX629升壓后得到,后者由一個(gè)逆變器模塊提供。</p><p> 圖3.3 S3C24 10</p><p> 4 系統(tǒng)設(shè)計(jì)的與具體實(shí)現(xiàn)</p><p> 基于上文的闡述,本軟件系統(tǒng)的具體實(shí)現(xiàn)丁作主要包括:圖像文件的讀入、圖像處理的具
32、體實(shí)現(xiàn)等。下文將具體介紹實(shí)現(xiàn)工作。</p><p> 4.1 BMP文件的讀入</p><p> 在嵌入式平臺(tái)上,并沒有現(xiàn)成的BMP文件的庫函數(shù)可以使用。因此,如何把一個(gè)BMP文件讀人到內(nèi)存中進(jìn)行圖像處理算法移植的根本前提。本系統(tǒng)中,主要處理的圖像有兩大塊:真彩圖和256色的圖像(包括256級(jí)厭度圖),因此對(duì)應(yīng)設(shè)計(jì)了兩個(gè)BMP文件的讀入函數(shù),并將這兩個(gè)函數(shù)放在Graphic.h和Gra
33、phic.c中,以備后續(xù)的開發(fā)使用。兩個(gè)函數(shù)為:</p><p> GetTruePixel(char bmpnameIl,U32 color[24011320J,int*mapwidth.int*mapheight);</p><p> Get256Pixel(char bmpname[]。U8 cdorbutl240113201,U32 pale[256].int 4mapwidt
34、h,int*mapheight)。</p><p> 函數(shù)l用于將一個(gè)名稱為bmpnameH的真彩圖像數(shù)據(jù)讀入color[][]矩陣,同時(shí)獲得圖像的寬和高;函數(shù)2用于將一個(gè)名稱為bmpname[]的256色圖像數(shù)據(jù)讀人colorbuf[]矩陣,同時(shí),對(duì)應(yīng)的調(diào)色板數(shù)據(jù)讀入pale[]矩陣中并獲得圖像的寬和高。</p><p> 4.2 圖像增強(qiáng)算法設(shè)計(jì)</p><p&
35、gt; 在圖像處理中,當(dāng)光學(xué)系統(tǒng)成像時(shí)出現(xiàn)背景與目標(biāo)灰度范圍相對(duì)比較窄,即低對(duì)比度的情況,一般會(huì)采用對(duì)圖像進(jìn)行灰度的拉伸變換[5],從而加大特征目標(biāo)與背景的灰度差,實(shí)現(xiàn)圖像增強(qiáng),以利于提取出特征目標(biāo)來.灰度變換可分為線性灰度變換、分段線性變換、非線性變換.本研究采用線性灰度變換,該方法用于克服當(dāng)圖像由于成像時(shí)曝光不足或過度所產(chǎn)生的對(duì)比度不足的弊?。僭O(shè)原圖像八茗,y)的灰度范圍為[a,b],希望變換后圖像g(x,y)的灰度范圍擴(kuò)展到[
36、c,d],其數(shù)學(xué)表達(dá)式為:</p><p> g(x,y)=c (0≤f(x,y≤)a)</p><p> g(x,y)=(d-c)/(b-a)+c (a≤f(x,y) ≤b)</p><p> g(x,y)=d (b≤f(x,y) ≤Mf)</p><p> 式中:Mf表示(x,y)的最大值
37、.</p><p> 4.3 圖像分割算法設(shè)計(jì)</p><p> 經(jīng)過圖像增強(qiáng)后,要將一幅圖像分解為若干互不交疊的、有意義的、具有相同性質(zhì)的區(qū)域,并從中提取出所感興趣的目標(biāo),即圖像分割.圖像分割有邊緣檢測(cè)和閾值分割,這里采用閾值分割方法.閾值分割是基于灰度閾值的分割方法,它通過設(shè)置閾值,把像素點(diǎn)按灰度級(jí)分若干類,從而實(shí)現(xiàn)圖像分割.把一幅灰度圖像轉(zhuǎn)換成二值圖像是閾值分割的最簡單形式,設(shè)原
38、始圖像為f(x,y),首先就是按一定準(zhǔn)則在f(x,y)中找出一個(gè)灰度值t作為閾值,將圖像分割為兩部分,即把大于等于該閾值的像素點(diǎn)的值置成1,小于閾值的像素點(diǎn)置為0.閾值運(yùn)算后的圖像為二值圖像g(x,Y).</p><p> g(x,y)=1 (f(x,y) ≤t)</p><p> g(x,y)=0 (f(x,y)>t)</p>&l
39、t;p> 上式中全局閾值t的選擇直接影響到分割效果.通常可以通過分析灰度直方圖來確定它的值,最常見的方法是利用灰度直方圖來確定它的值,利用灰度直方圖求雙峰,選擇兩峰之間谷底處的灰度值作為閾值.</p><p><b> 4.4 圖像平滑</b></p><p> 圖像在生成和傳輸過程中常受到各種嗓聲的干擾和影響,使圖像質(zhì)量下降。為了抑制噪聲改善圖像質(zhì)量,必
40、須對(duì)圖像進(jìn)行平滑處理。通常,將數(shù)字圖像的平滑技術(shù)[4]劃分為兩類。一類是全局處理,即對(duì)噪聲圖像的整體或大的塊進(jìn)行校正得到平滑圖像。但這類方法需要知道信號(hào)和噪聲的統(tǒng)計(jì)模型,且運(yùn)算量較大。另一類平滑技術(shù)是對(duì)噪聲圖像使用局部算子。當(dāng)對(duì)某一像素進(jìn)行平滑處理時(shí),僅對(duì)它的局部小鄰域的一些像素加以運(yùn)算,其優(yōu)點(diǎn)是計(jì)算效率高,而且可以多個(gè)像素并行處理,因此可以實(shí)現(xiàn)實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)處理。</p><p> ?。?)平滑線性濾波器(均值
41、濾波)</p><p> 一般來說,假設(shè)MXN的圖像(x,y)為給定的含有噪聲的圖像,用m*n大</p><p> 小的濾波器掩模進(jìn)行線性濾波結(jié)果為g(x,y),在數(shù)學(xué)上可以表現(xiàn)為:</p><p> 其中,a=(m-1)/12, b=(n-1)/12, w(s,t)為濾波器系數(shù)。為了得到一副完整的經(jīng)過濾波處理的圖像,必須對(duì)x=0,1,2,….M-1和y =0
42、,工,2,...,N-1依次應(yīng)用公式。這樣,就保證了對(duì)圖像中的所有像素進(jìn)行了處理。一般可選取以下幾種模板:</p><p> 模版1 模版2 模版3</p><p> 比較常用 的是模板3,它又被稱為高斯(Gauss)模板,它為了突出模板中心像素本身的重要性,對(duì)所有的模板系數(shù),不是一視同仁,而是引入了加權(quán)系
43、數(shù),可以看出,離原點(diǎn)距離越近的點(diǎn),加權(quán)系數(shù)越大。空間均值處理的一個(gè)結(jié)果是,較大物體變得像“斑點(diǎn)”而易于檢測(cè),但那些較小物體的強(qiáng)度與背景混合在了一起。為此,在濾波后可增加閥值處理,即將濾波后的圖像與選定的閥值相比較,根據(jù)比較結(jié)果決定最后的灰度值。該方法對(duì)抑</p><p> 制椒鹽噪聲比較有效,對(duì)保護(hù)僅有微小灰度差的細(xì)節(jié)和紋理也有效。</p><p> ?。?)平滑非線性濾波器(統(tǒng)計(jì)排序?yàn)V
44、波器)</p><p> 統(tǒng)計(jì)排序 濾波器是一種非線性的空間濾波器,它的響應(yīng)基于圖像濾波器包圍的圖像區(qū)域中像素的排序,然后由統(tǒng)計(jì)排序結(jié)果決定的值代替中心像素的值。統(tǒng)計(jì)排序?yàn)V波器中最常見的例子就是中值濾波器,正如其名,它是將像素鄰域內(nèi)灰度的中值代替該像素的值。中值濾波器的主要功能是使擁有不同灰度的點(diǎn)看起來更接近于它的臨近值。</p><p> 中值濾波器使用非常普遍,這是因?yàn)閷?duì)于一定類型
45、的隨機(jī)噪聲,它提供了一種優(yōu)秀的去噪能力,比小尺寸的線性平滑濾波器的模糊程度明顯要低。中值濾波器對(duì)處理脈沖噪聲(椒鹽噪聲)非常有效,因?yàn)檫@種噪聲是以黑白點(diǎn)疊加在圖像上的。</p><p> 盡管在圖像處理中,中值濾波器是用得最廣泛的統(tǒng)計(jì)濾波器,但這并不是說它是唯一的。所謂中值就是一系列像素值的第50%個(gè)值,當(dāng)我們?nèi)?00%個(gè)值,此時(shí)就是最大濾波器,相反,當(dāng)取0%的值時(shí)就變成了最小濾波器。</p>&
46、lt;p> 4.5 圖像縮放(平移以及轉(zhuǎn)置)</p><p> 一般采用插值法,有如下幾種插值算法:</p><p> 最鄰近插值(近鄰取樣法):</p><p> 最臨近插值的的思想很簡單。對(duì)于通過反向變換得到的的一個(gè)浮點(diǎn)坐標(biāo),對(duì)其進(jìn)行簡單的取整,得到一個(gè)整數(shù)型坐標(biāo),這個(gè)整數(shù)型坐標(biāo)對(duì)應(yīng)的像素值就是目的像素的像素值,也就是說,取浮點(diǎn)坐標(biāo)最鄰近的左上角點(diǎn)
47、(對(duì)于DIB是右上角,因?yàn)樗膾呙栊惺悄嫘虼鎯?chǔ)的)對(duì)應(yīng)的像素值??梢姡钹徑逯岛唵吻抑庇^,但得到的圖像質(zhì)量不高。</p><p><b> 雙線性內(nèi)插值:</b></p><p> 對(duì)于一個(gè)目的像素,設(shè)置坐標(biāo)通過反向變換得到的浮點(diǎn)坐標(biāo)為(i+u,j+v),其中i、j均為非負(fù)整數(shù),u、v為[0,1)區(qū)間的浮點(diǎn)數(shù),則這個(gè)像素得值 f(i+u,j+v) 可由原圖像中坐
48、標(biāo)為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對(duì)應(yīng)的周圍四個(gè)像素的值決定,即:</p><p> f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)</p><p> 其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推</p><
49、p> 這就是雙線性內(nèi)插值法。雙線性內(nèi)插值法計(jì)算量大,但縮放后圖像質(zhì)量高,不會(huì)出現(xiàn)像素值不連續(xù)的的情況。由于雙線性插值具有低通濾波器的性質(zhì),使高頻分量受損,所以可能會(huì)使圖像輪廓在一定程度上變得模糊。</p><p> 三次卷積法能夠克服以上兩種算法的不足,計(jì)算精度高,但計(jì)算量大,他考慮一個(gè)浮點(diǎn)坐標(biāo)(i+u,j+v)周圍的16個(gè)鄰點(diǎn),目的像素值f(i+u,j+v)可由如下插值公式得到:</p>
50、<p> f(i+u,j+v) = [A] * [B] * [C]</p><p> [A]=[ S(u + 1) S(u + 0) S(u - 1) S(u - 2) ]</p><p> ┏ f(i-1, j-1) f(i-1, j+0) f(i-1, j+1) f(i-1, j+2) ┓[B]=┃ f(i+0, j-1) f(i+0, j+0) f(i+0, j+
51、1) f(i+0, j+2) ┃</p><p> ┃ f(i+1, j-1) f(i+1, j+0) f(i+1, j+1) f(i+1, j+2) ┃</p><p> ┗ f(i+2, j-1) f(i+2, j+0) f(i+2, j+1) f(i+2, j+2) ┛</p><p> ┏ S(v + 1) ┓[C]=┃ S(v + 0) ┃<
52、/p><p> ┃ S(v - 1) ┃</p><p> ┗ S(v - 2) ┛</p><p> ┏ 1-2*Abs(x)^2+Abs(x)^3 , 0<=Abs(x)<1S(x)={ 4-8*Abs(x)+5*Abs(x)^2-Abs(x)^3 , 1<=Abs(x)<2 ┗ 0 ,
53、 Abs(x)>=2S(x)是對(duì) Sin(x*Pi)/x 的逼近(Pi是圓周率——π)最鄰近插值(近鄰取樣法)、雙線性內(nèi)插值、三次卷積法 等插值算法對(duì)于旋轉(zhuǎn)變換、錯(cuò)切變換、一般線性變換 和 非線性變換 都適用。</p><p> 5 程序主要源代碼分析</p><p> 5.1 圖像數(shù)據(jù)存儲(chǔ)的主程序如下:</p><p
54、> FILE*file=fopen("O.bmp","wb");</p><p> writebmpfileheader(file);/*寫文件頭函數(shù)*/</p><p> writebmpinfoheader(file);/* 寫信息頭函數(shù)*/</p><p> writeimagedata(file);/*
55、寫圖像數(shù)據(jù)函數(shù)*/</p><p> fclose(fi le);</p><p> 寫文件頭和寫信息頭函數(shù)比較簡單,這里bfSize為230454;b iWidth,biHeight為320,240;bi Sizelmage為230400;biXPelsPerMeter,bi YPelsPerMeter,biClrUsed,biCIrImportant均為Oa</p>
56、<p> 以下給出 writeimagedata(file)II 數(shù)的原型:</p><p> voidwriteimagedata(FILE* file)</p><p><b> {</b></p><p> Int datapointer;</p><p> Int mydata ;</p
57、><p> for (int i= 0; i< = 239; i++)/*共240行*/</p><p> datapointer -data+(239-i )*3 20 ;</p><p> /*data為采集映射時(shí)圖像數(shù)據(jù)首地址,計(jì)算每一要寫入的行在內(nèi)存中的首地址*/</p><p> for(int j= 0;j < =
58、 31 9;j + + )/* 共 320列*/</p><p><b> {</b></p><p> mydata=*( datapointer+j);</p><p> fwrite(&mydata,1, 1, fil e); /*寫入一行數(shù)據(jù)*/</p><p><b> }</b
59、></p><p><b> }</b></p><p><b> }</b></p><p> 5.2 圖像平滑模塊</p><p> Typedef struct</p><p> {unsigned short bfType;</p>&l
60、t;p> Unsigned bfSize;</p><p> Unsigned short bfReserved 1;</p><p> Unsigned short bfReserved 2;</p><p> Unsigned bfOffBits;</p><p> }BMPHEADER;</p><p
61、> BMPHEADER header;</p><p> Typedef struct</p><p> {unsigned biSize;</p><p> unsigned biWidth;</p><p> unsigned biHeight;</p><p> unsigned s
62、hort biplanes;</p><p> unsigned short biBitCount;</p><p> unsigned biCompression;</p><p> unsigned biSizelmage;</p><p> unsigned biXpelsPerMeter;</p>
63、<p> unsigned biYpelsPerMeter;</p><p> unsigned biClrUsed;</p><p> unsigned biClrUsed;</p><p> unsigned biClrImportant; </p><p> }BMPINFOHEADER;<
64、/p><p> BMPINFOHEADER infobeader;</p><p> 在進(jìn)行處理之前,先讀取文件信息,假設(shè)我們將采集到的數(shù)據(jù)存放成0.bmp文件;</p><p><b> FILE*fp;</b></p><p> Fp=fopen(“0.bmp”,“rb”);</p><p&g
65、t; fread(&(header.bfType),2,1,fp);</p><p> fread(&(header.bfSize),4,1,fp);</p><p> fread(&(header.bfReserved),2,1,fp);</p><p> fread(&(header.bfOffBits),4,1,fp);
66、</p><p> fread(&(header.bfzeof(BMPINFOHEADER),1,fp);</p><p> 接下來,將圖像數(shù)據(jù)存入我們的內(nèi)存中,并將圖像數(shù)據(jù)灰度化:</p><p> Unsigned char*prodata;</p><p> Unsigned char*middledata;</p
67、><p> Int size=infoheader.bitSizeImage;</p><p> Prodata=malloc(size);</p><p> Fread(prodata,1,size,fp);</p><p> Fclose(fp);</p><p> For(z=0,z<infohead
68、er.biSizeImage;z++)</p><p> {middledata[z]=(unsigned char)(*prodata+z+2)*3 +(unsigned char )(*(prodata+z+1)*0.6 + (unsigned char)(*prodata +z)*0.1);</p><p><b> Z++;</b></p>
69、<p> Middledata[z]=middledata[z-1];</p><p><b> Z++;</b></p><p> Middledata[z]=middledata[z-1];</p><p><b> } </b></p><p> Memcpy(proda
70、ta,middledata,infoheader.biSizeImge);</p><p> 以下是高斯平滑的主程序:</p><p> Double Template[9];/*運(yùn)算模版*/</p><p> Double Coef=(double)(1.0/16.0);/*模版均值*/</p><p> /*模版?zhèn)€稀疏聲明*/&l
71、t;/p><p> Template[0]=1.0;Template[1]=2.0;</p><p> Template[2]=1.0; Template[3]=2.0;</p><p> Template[4]=4.0; Template[5]=2.0;</p><p> Template[6]=1.0; Template[7]=
72、2.0;</p><p> Template[8]=1.0;</p><p> For(x=1;x<XSaveDim-1;x++)</p><p> {for(y=1;y<YSaveDim-1;y++)</p><p> {/*XsaveDim,YsaveDim為圖像存儲(chǔ)尺寸,x,y從1開始并且以XsaveDim-1,Ys
73、aveDim-1結(jié)束,是為了去除邊界*/</p><p> for(j=1;j<3;j++)</p><p> {for(k=0;k<3;k++)</p><p> {/*j,k為模版內(nèi)部循環(huán)變量*/</p><p> Result+=(*(prodata+GetPixelOffset(x=j-1,y+k-1)))*Tem
74、plate[3*j+k];</p><p><b> }</b></p><p> }/*GetPixelOffset為我們自己定義的函數(shù),返回對(duì)應(yīng)x,y坐標(biāo)的像素在數(shù)據(jù)空間中的存儲(chǔ)位置,返回值為(XSaveDim*y+x)*(infoheader.biBitCount/8)*/</p><p> Result*=Coed;</p&
75、gt;<p> If(Result>255)</p><p> {Result=255;}</p><p> Z=GetPixelOffset(x,y);</p><p> Middledata[z]=(unsigned char)(Result+0.5);</p><p><b> Z++;</
76、b></p><p> Middledata[z]=middledata[z-1];</p><p><b> Z++;</b></p><p> Middledata[z]=middledata[z-2];</p><p><b> }</b></p><p>
77、;<b> }</b></p><p> 5.3 圖像平移主要代碼</p><p> int Main(int argc, char **argv)</p><p> {ARMTargetInit(); </p><p> OSInit(); </p><p> uHALr
78、_ResetMMU();</p><p> LCD_Init(); </p><p> LCD_printf("LCD initialization is OK\n");</p><p> LCD_printf("320 x 240 Text Mode\n");</p><p&
79、gt; initOSGUI();</p><p> LoadFont();</p><p> LoadConfigSys();</p><p> LCD_printf("Create task on uCOS-II...\n");</p><p> OSTaskCreate(Main_Task, (void *
80、)0, (OS_STK *)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);</p><p><b> shuoF();</b></p><p> OSTaskCreate(Main_Task2, (void *)0, (OS_STK *)&Main_Stack2[STACKSIZE*8-1], M
81、ain_Task_Prio);// 創(chuàng)建系統(tǒng)任務(wù)</p><p> OSAddTask_Init();</p><p> LCD_printf("Starting uCOS-II...\n");</p><p> LCD_printf("Entering graph mode...\n");</p><
82、;p> LCD_ChangeMode(DspGraMode);</p><p> InitRtc();</p><p> Nand_Rw_Sem=OSSemCreate(1); </p><p> OSStart();</p><p><b> return 0;</b></p><
83、;p><b> }</b></p><p> void Main_Task(void *Id) </p><p> { int x=0,y=0;</p><p> char xz[]="x:";</p><p> char yz[]="y
84、:"; </p><p> U16 x1[100],y1[100],textcontext1[20],*text1context,*text2context,textinit1[20];//</p><p> char textcontext[]="";</p><p> char textinit[]="0
85、";</p><p> char bmpname[12]={'1','2','7','_','1','3',' ',' ','B','M','P',0};</p><p> strChar2Unicod
86、e(x1,xz);</p><p> strChar2Unicode(y1,yz);</p><p> strChar2Unicode(textcontext1,textcontext);</p><p> strChar2Unicode(textinit1,textinit);</p><p> pposition1=&po
87、sition1;</p><p> poutrect=&outrect;</p><p> poutrect1=&outrect1;</p><p> outrect.left=240;</p><p> outrect.top=20;</p><p> outrect.right=300;&
88、lt;/p><p> outrect.bottom=40;</p><p> outrect1.left=240;</p><p> outrect1.top=50;</p><p> outrect1.right=300;</p><p> outrect1.bottom=70;</p><
89、p> outrect2.left=0;</p><p> outrect2.top=0;</p><p> outrect2.right=200;</p><p> outrect2.bottom=240;</p><p> text1=CreateTextCtrl(100,poutrect,1,3,NULL,NULL);&l
90、t;/p><p> text2=CreateTextCtrl(101,poutrect1,1,3,NULL,NULL);</p><p> SetTextCtrlText(text1,textinit1,TRUE);</p><p> SetTextCtrlText(text2,textinit1,TRUE);</p><p> LCD_
91、ChangeMode(DspGraMode);</p><p> pdc=CreateDC();</p><p> ClearScreen();</p><p> TextOut(pdc,220,30,x1,TRUE,1);</p><p> TextOut(pdc,220,60,y1,TRUE,1);</p><
92、p> DrawTextCtrl(text1);</p><p> DrawTextCtrl(text2);</p><p> DrawRectFrame(pdc,0,0,200,240);</p><p><b> while(1)</b></p><p> { ClearScreen();
93、</p><p> ShowBmp(pdc,bmpname,50,pos);</p><p> itoa(50,strx);</p><p> itoa(pos,stry); </p><p><b> pos+=10;</b></p><p> if(pos>=150)<
94、/p><p> {pos=0; } </p><p> for(t=0;t<5;t++)</p><p> {textinit1[t]=strx[t];} </p><p> SetTextCtrlText(text1,textinit1,TRUE);</p><p>
95、for(t=0;t<5;t++)</p><p> {textinit1[t]=stry[t];} </p><p> SetTextCtrlText(text2,textinit1,TRUE);</p><p> DrawTextCtrl(text1);</p><p> DrawTextCtrl(text2);</p&
96、gt;<p> OSTimeDly(500); }</p><p> DestoryDC(pdc);}</p><p> 5.4 圖像縮放主要代碼</p><p> void Main_Task(void *Id) //Main_Test_Task</p><p> {char bmpname[
97、12]={'1','2','7','_','3','2',' ',' ','B','M','P',0};</p><p> int i=0,status=0,j=0;</p><p><b> PDC
98、pdc;</b></p><p> char n2[]="ecjtu";</p><p> U16 namme[200];</p><p> U16 ch0={'1'};</p><p> char str2[]={'1','2','7',
99、'_','3','2',' ',' ','B','M','P',0};</p><p> U16 str1[]={'1','2','7','_','3','2',' ',
100、39; ','B','M','P',0};</p><p> U16 str3[17];</p><p> strChar2Unicode(namme,n2);</p><p> //POSMSG pMsg;//消息定義</p><p> LCD_ChangeMode(DspGr
101、aMode);//轉(zhuǎn)換LCD顯示模式為文本顯示模式</p><p> //LCD_Cls();//文本模式下清屏命令</p><p> //ClearScreen();</p><p> pdc=CreateDC();</p><p> ClearScreen();</p><p><b> for
102、(;;)</b></p><p> { int i,j,k,nbyte;</p><p> U32 cx,cy,wold,hold,wnew,hnew,x0,y0,x1,y1,oldx,oldy;</p><p> U32 color;</p><p> U32 colorbuf[320][240];</p>
103、<p> FILE* pfile;</p><p> U8 *pbmp,*bmpstart;</p><p> static U8 bmp[4096];</p><p> float zoomRatio=2,num1;</p><p> INT8U err;</p><p> BITMAPF
104、ILEHEADER bmpfileheader;</p><p> BITMAPINFOHEADER bmpinfoheader;</p><p> if((pfile=OpenOSFile(bmpname, FILEMODE_READ))==NULL)</p><p><b> return;</b></p><p&
105、gt; ReadOSFile(pfile, (U8*)bmp, 2);</p><p> //if((bmp[0]&0xffff)!='MB' )//不是bmp文件</p><p> if(bmp[0]!='B' ||bmp[1] !='M')</p><p><b> return;&l
106、t;/b></p><p> num1=(float)(1.0/zoomRatio);</p><p> ReadOSFile(pfile, (U8*)&bmpfileheader, sizeof(BITMAPFILEHEADER));</p><p> ReadOSFile(pfile, (U8*)&bmpinfoheader, siz
107、eof(BITMAPINFOHEADER));</p><p> wold=bmpinfoheader.biWidth;</p><p> hold=bmpinfoheader.biHeight;</p><p> nbyte=bmpinfoheader.biBitCount/8;//第x行,第y列 </p><p>&l
108、t;b> x0=0;</b></p><p> y0=hold-1;</p><p> //縮放的關(guān)鍵問題是:在對(duì)一副圖片進(jìn)行縮放時(shí),可能用到上一次讀入的行象素值,然而,readosfile()函數(shù)</p><p> //每讀一次就向前推進(jìn),故必須標(biāo)記讀入時(shí)機(jī)《使用oldx oldy》</p><p><b&g
109、t; oldx=x0;</b></p><p><b> oldy=y0;</b></p><p><b> num1=1;</b></p><p> bmpstart=bmp;</p><p><b> pbmp=bmp;</b></p>
110、<p> for(i=hold-1;i>=0;i--)</p><p> {pbmp=bmp;</p><p> if(!ReadOSFile(pfile, bmp,wold*nbyte+((wold*nbyte)%2)))</p><p><b> break;</b></p><p> fo
111、r(j=0;j<wold;j++)</p><p> { color=*pbmp;</p><p> for(k=0;k<nbyte-1;k++)</p><p> {color<<=8;</p><p><b> pbmp++;</b></p><p> c
112、olor|=*pbmp; }</p><p><b> pbmp++;</b></p><p> colorbuf[i][j]=color;}}</p><p> num1=(float)(1.0/zoomRatio);</p><p> wnew = (U32)(wold*zoomRatio+0.5);<
113、/p><p> hnew = (U32)(hold*zoomRatio+0.5);</p><p> for(y1=0;y1<hnew;y1++)</p><p> for(x1=0;x1<wnew;x1++)</p><p> {x0= (U32)(x1*num1);</p><p> y0= (U
114、32)(y1*num1);</p><p> SetPixel(pdc,y1,x1,colorbuf[x0][y0]);}</p><p> /////////////////////////////////////////</p><p> CloseOSFile(pfile);</p><p> OSTimeDly(200);//
115、主任務(wù)掛起200毫秒}}</p><p> 5.5 轉(zhuǎn)置圖像主要代碼</p><p> void Main_Task(void *Id) //Main_Test_Task</p><p> {char bmpname[12]={'1','2','7','_','3&
116、#39;,'2',' ',' ','B','M','P',0};</p><p> int i=0,status=0,j=0;</p><p><b> PDC pdc;</b></p><p> char n2[]="ecjtu&q
117、uot;;</p><p> U16 namme[200];</p><p> U16 ch0={'1'};</p><p> char str2[]={'1','2','7','_','3','2',' ',' ',
118、'B','M','P',0};</p><p> U16 str1[]={'1','2','7','_','3','2',' ',' ','B','M','P',0};</p>
119、<p> U16 str3[17];</p><p> strChar2Unicode(namme,n2);</p><p> LCD_ChangeMode(DspGraMode);//轉(zhuǎn)換LCD顯示模式為文本顯示模式</p><p> pdc=CreateDC();</p><p> ClearScreen();<
120、;/p><p><b> for(;;)</b></p><p> {int i,j,k,nbyte;</p><p> U32 cx,cy;</p><p> U32 color;</p><p> FILE* pfile;</p><p><b> U
121、8 *pbmp;</b></p><p> static U8 bmp[4096];</p><p> INT8U err;</p><p> BITMAPFILEHEADER bmpfileheader;</p><p> BITMAPINFOHEADER bmpinfoheader;</p><p&
122、gt; if((pfile=OpenOSFile(bmpname, FILEMODE_READ))==NULL)</p><p><b> return;</b></p><p> ReadOSFile(pfile, (U8*)bmp, 2);</p><p> if(bmp[0]!='B' ||bmp[1] !=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于圖像識(shí)別處理的橋梁底面裂縫檢測(cè)方法的研究.pdf
- 圖像識(shí)別本科畢業(yè)設(shè)計(jì)
- 橋梁裂縫檢測(cè)中圖像識(shí)別處理與測(cè)量技術(shù)的研究.pdf
- 智能型紙幣清分機(jī)圖像識(shí)別處理方法研究.pdf
- 模糊圖像識(shí)別建模與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 休克的識(shí)別處理
- 基于足球機(jī)器人的圖像處理與圖像識(shí)別.pdf
- 基于圖像識(shí)別的車輛圖像處理技術(shù)研究.pdf
- 基于圖像識(shí)別的車型識(shí)別系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)--基于數(shù)字圖像處理的車牌定位與識(shí)別
- 休克的識(shí)別處理課件
- 基于NiosⅡ的圖像識(shí)別系統(tǒng)設(shè)計(jì).pdf
- 基于圖像識(shí)別的濾波器的設(shè)計(jì)
- 模糊圖像識(shí)別建模與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開題報(bào)告+文獻(xiàn)綜述】
- 基于FPGA的細(xì)胞圖像識(shí)別預(yù)處理的硬件研究.pdf
- 文檔圖像識(shí)別預(yù)處理研究.pdf
- 圖像處理和圖像識(shí)別中常用的opencv函數(shù)
- 視覺文檔圖像識(shí)別預(yù)處理.pdf
- 基于稀疏表示的圖像識(shí)別.pdf
- 基于Hopfield網(wǎng)絡(luò)的圖像識(shí)別.pdf
評(píng)論
0/150
提交評(píng)論