華東交大嵌入式圖像處理軟件設(shè)計(jì)(共30頁(yè))_第1頁(yè)
華東交大嵌入式圖像處理軟件設(shè)計(jì)(共30頁(yè))_第2頁(yè)
華東交大嵌入式圖像處理軟件設(shè)計(jì)(共30頁(yè))_第3頁(yè)
華東交大嵌入式圖像處理軟件設(shè)計(jì)(共30頁(yè))_第4頁(yè)
華東交大嵌入式圖像處理軟件設(shè)計(jì)(共30頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PAGE 嵌入式圖像處理軟件設(shè)計(jì)PAGE PAGE 4第 PAGE 4 頁(yè) 共 NUMPAGES 35 頁(yè)課程設(shè)計(jì)(論文(lnwn)任務(wù)書(shū) 學(xué)院 專(zhuān)業(yè) 班 一、課程設(shè)計(jì)(論文(lnwn)題目嵌入式圖像處理(t xin ch l)軟件設(shè)計(jì) 二、課程設(shè)計(jì)(論文)工作自 2015 年 06 月 22 日起至 2015 年 06 月 26 日止。三、課程設(shè)計(jì)(論文) 地點(diǎn): 嵌入式系統(tǒng)實(shí)驗(yàn)室 四、課程設(shè)計(jì)(論文)內(nèi)容要求:1本課程設(shè)計(jì)的目的(1)使學(xué)生掌握嵌入式開(kāi)發(fā)板(實(shí)驗(yàn)箱)各功能模塊的基本工作原理; (2)培養(yǎng)嵌入式系統(tǒng)的應(yīng)用能力及嵌入式軟件的開(kāi)發(fā)能力; (3)使學(xué)生較熟練地應(yīng)用嵌入式操作系統(tǒng)及其

2、API開(kāi)發(fā)嵌入式應(yīng)用軟件;(4)培養(yǎng)學(xué)生分析、解決問(wèn)題的能力;(5)提高學(xué)生的科技論文寫(xiě)作能力。 2課程設(shè)計(jì)的任務(wù)及要求1)基本要求:(1)分析所設(shè)計(jì)嵌入式軟件系統(tǒng)中各功能模塊的實(shí)現(xiàn)機(jī)制;(2)選用合適嵌入式操作系統(tǒng)及其API;(3)編碼實(shí)現(xiàn)最終的嵌入式軟件系統(tǒng); (4)在實(shí)驗(yàn)箱上調(diào)試、測(cè)試并獲得最終結(jié)果。2)創(chuàng)新要求: 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如改善嵌入式軟件實(shí)時(shí)性能;擴(kuò)展嵌入式軟件功能及改善其圖形用戶(hù)界面。3)課程設(shè)計(jì)論文編寫(xiě)要求(1)要按照書(shū)稿的規(guī)格打印謄寫(xiě)課程設(shè)計(jì)論文。(2)論文包括目錄、正文、小結(jié)、參考文獻(xiàn)、謝辭、附錄等(以上可作微調(diào))。(3)課程設(shè)計(jì)論文裝訂按學(xué)校的統(tǒng)一要

3、求完成。4) 課程設(shè)計(jì)評(píng)分標(biāo)準(zhǔn): (1)學(xué)習(xí)態(tài)度:20分;(2)回答問(wèn)題及系統(tǒng)演示:30分(3)課程設(shè)計(jì)報(bào)告書(shū)論文質(zhì)量:50分。成績(jī)?cè)u(píng)定實(shí)行優(yōu)秀、良好、中等、及格和不及格五個(gè)等級(jí)。不及格者需重做。5)參考文獻(xiàn):(1)羅蕾.嵌入式實(shí)時(shí)操作系統(tǒng)及應(yīng)用開(kāi)發(fā)北京航空航天大學(xué)出版社 (2)Jean J.Labrosse. 嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II北京航空航天大學(xué)出版社(3)王田苗.嵌入式設(shè)計(jì)(shj)與開(kāi)發(fā)實(shí)例.北京航空航天大學(xué)出版社(4)北京(bi jn)博創(chuàng)科技公司. 嵌入式系統(tǒng)實(shí)驗(yàn)指導(dǎo)書(shū)6) 課程設(shè)計(jì)進(jìn)度(jnd)安排(1)準(zhǔn)備階段(4學(xué)時(shí)):選擇設(shè)計(jì)題目、了解設(shè)計(jì)目的要求、查閱相關(guān)資料

4、。(2)嵌入式軟件設(shè)計(jì)分析階段(4學(xué)時(shí)):程序總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)。(3)嵌入式軟件代碼編寫(xiě)調(diào)試階段(8學(xué)時(shí)):程序模塊代碼編寫(xiě)、調(diào)試、測(cè)試。(4)撰寫(xiě)論文階段(4學(xué)時(shí)):總結(jié)課程設(shè)計(jì)任務(wù)和設(shè)計(jì)內(nèi)容,撰寫(xiě)課程設(shè)計(jì)論文。7) 課程設(shè)計(jì)題目具體要求:本題的具體任務(wù)是設(shè)計(jì)多任務(wù)的嵌入式軟件嵌入式圖像處理軟件設(shè)計(jì),通過(guò)分析、設(shè)計(jì)、編程、調(diào)試、測(cè)試等步驟,形成一個(gè)基于ucos可穩(wěn)定運(yùn)行的嵌入式多任務(wù)軟件系統(tǒng)。學(xué)生簽名: 2015 年 6 月22 日課程設(shè)計(jì)(論文)評(píng)審意見(jiàn)(1)考勤(10分): 優(yōu)()、良()、中()、一般()、差(); (2)系統(tǒng)設(shè)計(jì)(20分):優(yōu)( )、良()、中()、一般()、差()

5、; (3)編程調(diào)試(10分):優(yōu)()、良()、中()、一般()、差();(4)回答問(wèn)題(15分):優(yōu)()、良()、中()、一般()、差();(5)論文撰寫(xiě)(35分):優(yōu)()、良()、中()、一般()、差(); (6)創(chuàng)新思想(10分):優(yōu)()、良()、中()、一般()、差();綜合評(píng)定等級(jí):評(píng)閱人: 職稱(chēng): 2015 年6 月 26日目 錄 TOC o 1-3 h z u HYPERLINK l _Toc422944341 1 引言(ynyn) PAGEREF _Toc422944341 h 4 HYPERLINK l _Toc422944342 1.1 課程設(shè)計(jì)的意義(yy) PAGEREF

6、 _Toc422944342 h 4 HYPERLINK l _Toc422944343 1.2 課程設(shè)計(jì)的目的(md) PAGEREF _Toc422944343 h 4 HYPERLINK l _Toc422944344 2 系統(tǒng)設(shè)計(jì)原理 PAGEREF _Toc422944344 h 5 HYPERLINK l _Toc422944345 2.1圖像處理技術(shù)原理和成像原理 PAGEREF _Toc422944345 h 5 HYPERLINK l _Toc422944346 2.2 BMP文件格式簡(jiǎn)介 PAGEREF _Toc422944346 h 5 HYPERLINK l _Toc4

7、22944347 2.3 圖像顯示原理 PAGEREF _Toc422944347 h 6 HYPERLINK l _Toc422944348 3 開(kāi)發(fā)環(huán)境簡(jiǎn)介及搭建 PAGEREF _Toc422944348 h 8 HYPERLINK l _Toc422944349 3.1 硬件平臺(tái) PAGEREF _Toc422944349 h 8 HYPERLINK l _Toc422944350 3.2 系統(tǒng)軟件平臺(tái)構(gòu)建 PAGEREF _Toc422944350 h 8 HYPERLINK l _Toc422944351 3.3 LCD顯示模塊 PAGEREF _Toc422944351 h 8

8、HYPERLINK l _Toc422944352 4 系統(tǒng)設(shè)計(jì)的與具體實(shí)現(xiàn) PAGEREF _Toc422944352 h 10 HYPERLINK l _Toc422944353 4.1 BMP文件的讀入 PAGEREF _Toc422944353 h 10 HYPERLINK l _Toc422944354 4.2 圖像增強(qiáng)算法設(shè)計(jì) PAGEREF _Toc422944354 h 10 HYPERLINK l _Toc422944355 4.3 圖像分割算法設(shè)計(jì) PAGEREF _Toc422944355 h 11 HYPERLINK l _Toc422944356 4.4 圖像平滑 P

9、AGEREF _Toc422944356 h 11 HYPERLINK l _Toc422944357 4.5 圖像縮放(平移以及轉(zhuǎn)置) PAGEREF _Toc422944357 h 13 HYPERLINK l _Toc422944358 5 程序主要源代碼分析 PAGEREF _Toc422944358 h 15 HYPERLINK l _Toc422944359 5.1 圖像數(shù)據(jù)存儲(chǔ)的主程序如下: PAGEREF _Toc422944359 h 15 HYPERLINK l _Toc422944360 5.3 圖像平移主要代碼 PAGEREF _Toc422944360 h 18 HY

10、PERLINK l _Toc422944361 5.4 圖像縮放主要代碼 PAGEREF _Toc422944361 h 21 HYPERLINK l _Toc422944362 5.5 轉(zhuǎn)置圖像主要代碼 PAGEREF _Toc422944362 h 24 HYPERLINK l _Toc422944363 6 運(yùn)行測(cè)試結(jié)果 PAGEREF _Toc422944363 h 26 HYPERLINK l _Toc422944364 6.1圖像平移效果 PAGEREF _Toc422944364 h 26 HYPERLINK l _Toc422944365 6.2圖像轉(zhuǎn)置效果 PAGEREF _

11、Toc422944365 h 27 HYPERLINK l _Toc422944366 6.3圖像的縮放效果 PAGEREF _Toc422944366 h 27 HYPERLINK l _Toc422944367 7 總結(jié) PAGEREF _Toc422944367 h 28 HYPERLINK l _Toc422944368 參考文獻(xiàn) PAGEREF _Toc422944368 h 29嵌入式圖像處理軟件課程設(shè)計(jì)第 PAGE 35 頁(yè) 共 NUMPAGES 35 頁(yè)1 引言(ynyn)1.1 課程設(shè)計(jì)的意義(yy)圖像處理技術(shù)在工業(yè)自動(dòng)化、儀表檢測(cè)安全、以及安全、消費(fèi)電子、醫(yī)學(xué)中被越來(lái)越廣

12、泛的應(yīng)用。在現(xiàn)代戰(zhàn)爭(zhēng)中,利用圖像進(jìn)行精確制導(dǎo)、火控、無(wú)人飛機(jī)的電視導(dǎo)航等,在國(guó)防中也受到了高度(god)的重視。圖像處理算法中常有大量的運(yùn)算,特別是在實(shí)時(shí)圖像處理方面,因此通常采用DSP1或FPGA3來(lái)實(shí)現(xiàn)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)字圖像處理技術(shù)也取得了新的進(jìn)展,但是計(jì)算機(jī)圖像處理系統(tǒng)具體有體積大,應(yīng)用單一,不能充分發(fā)揮計(jì)算機(jī)的功能,同時(shí)也不能滿(mǎn)足日益增長(zhǎng)的室外簡(jiǎn)單圖像檢測(cè)應(yīng)用的需求。作為嵌入式圖像處理技術(shù),其主要技術(shù)包括兩個(gè)方面,一個(gè)是圖像處理技術(shù),另一個(gè)則是嵌入式系統(tǒng)4應(yīng)用技術(shù)。本文主要研究圖像處理技術(shù)在嵌入式系統(tǒng)中的應(yīng)用。1.2 課程設(shè)計(jì)的目的圖像數(shù)據(jù)是一種重要的信息資源,隨著以計(jì)算

13、機(jī)和計(jì)算機(jī)技術(shù)為核心的信息科學(xué)的發(fā)展,圖像處理在通訊、管理、醫(yī)學(xué)、地震、氣象、航空航天以及教育等領(lǐng)域,發(fā)揮著愈來(lái)愈重要的作用。但傳統(tǒng)的圖像處理技術(shù)主要依賴(lài)于大批量的電子計(jì)算設(shè)備,它們帶來(lái)巨大的保養(yǎng)、增加行業(yè)成本。嵌入式平臺(tái)擁有小巧、價(jià)格低廉、功耗小及維護(hù)成本低等優(yōu)點(diǎn)。因此基于嵌入式平臺(tái)構(gòu)建圖像處理系統(tǒng)可以降低其生產(chǎn)維護(hù)成本,提高其可靠性和可控件,具有較高的市場(chǎng)價(jià)值。本文主要針對(duì)采集到的圖像(bmp格式)實(shí)現(xiàn)平移、轉(zhuǎn)置、縮放、平滑等處理。2 系統(tǒng)設(shè)計(jì)(shj)原理2.1圖像處理(t xin ch l)技術(shù)原理和成像原理圖像處理(t xin ch l)技術(shù)又稱(chēng)“機(jī)器視覺(jué)”5,乃是將被測(cè)對(duì)象的圖像作

14、為信息的載體,從中提取有用的信息來(lái)達(dá)到測(cè)量的目的,具有非接觸、高速、獲得信息豐富等優(yōu)點(diǎn)。系統(tǒng)一般通過(guò)攝像頭采集對(duì)象的圖像信息,然后通過(guò)處理系統(tǒng)對(duì)采集到的圖像進(jìn)行數(shù)字化的處理和分析,根據(jù)檢測(cè)要求可得到對(duì)象的特征信息,隨后進(jìn)一步對(duì)此進(jìn)行判斷并輸出結(jié)果。如圖2.1 所示,連桿的表面缺陷通過(guò)一個(gè)方形LED漫反射光源均勻照亮待檢測(cè)的破口區(qū)域,光線(xiàn)照射到對(duì)象表面后,通過(guò)光學(xué)鏡頭成像在攝像頭內(nèi)的光電耦合CCD 元件3上并轉(zhuǎn)化成相應(yīng)的數(shù)字圖像信號(hào),CCD 元件可理解為一個(gè)由感光像素組成的點(diǎn)陣,每一個(gè)像素都一一對(duì)應(yīng)了被測(cè)對(duì)象的二維圖像特征。數(shù)字圖像信號(hào)經(jīng)過(guò)圖像處理系統(tǒng)對(duì)圖像特征信息的提取和計(jì)算得到所需的測(cè)量值,

15、隨后通過(guò)RS232 通訊接口把數(shù)據(jù)傳輸給PLC 進(jìn)行邏輯判斷,判斷的結(jié)果直接通過(guò)設(shè)備前面板上的指示燈輸出。 CCD 透鏡 LED 光源 對(duì)象 CCD 攝像機(jī)圖2.1 攝像頭采集對(duì)象的圖像信息2.2 BMP文件格式簡(jiǎn)介一個(gè)BMP文件包括以下四部分:文件頭,信息頭,調(diào)色板數(shù)據(jù)和圖像數(shù)據(jù)。文件頭長(zhǎng)度為14個(gè)字節(jié)。分別為:bffype:指定文件結(jié)構(gòu),必須是Ox424D,即字符串“BM ; bfSize:指定文件大小,包括這14個(gè)字節(jié);bfReservedl,bfReserved2:分別為2個(gè)字節(jié),為保留字,不用考慮:bfOffBits:從文件頭到實(shí)際的圖像數(shù)據(jù)的偏移字節(jié)數(shù)。信息 頭 長(zhǎng) 度為40個(gè)字節(jié)

16、,分別為:biSize:指定這個(gè)結(jié)構(gòu)的長(zhǎng)度,為40,單位字節(jié):biWidth, biHeight:指定圖像的寬度和高度,單位為像素;biPlanes:必須為1; biBitCount:指定表示顏色時(shí)要用到的位數(shù);biCompression:指定是否壓縮:biSizelmage:指定實(shí)際圖像數(shù)據(jù)占用的字節(jié)數(shù),注意,計(jì)算時(shí)圖像寬度取大于等于biWidth的最小的4的整數(shù)倍數(shù);biXPelsPerMeter, biYPelsPerMeter:指定目標(biāo)設(shè)備的水平和垂直分辨率;biClrUsed:指定本圖像實(shí)際用到的顏色數(shù),如果該值為零,則用到的顏色數(shù)為2的biBitCount次方:biCIrImpor

17、tant:指定本圖像中重要的顏色數(shù),如果該值為零,則所有的顏色都是重要的。第三部分(b fen)為調(diào)色板,當(dāng)然,這是對(duì)那些需要調(diào)色板的文件而言的。在這里,所采集的圖像數(shù)據(jù)是真彩色624位)的,故不需要(xyo)調(diào)色板。調(diào)色 板 實(shí) 際上是一個(gè)(y )數(shù)組,共有biClrUsed個(gè)元素。數(shù)組中每個(gè)元素占用4個(gè)字節(jié),依次是一字節(jié)的藍(lán)色分量,一字節(jié)的綠色分量,一字節(jié)的紅色分量,以及一字節(jié)的保留值。第四部分就是實(shí)際的圖像數(shù)據(jù)了。對(duì)于用到調(diào)色板的文件,圖像數(shù)據(jù)是該像素值在調(diào)色板中的索引值。這里需要注意的是:每一行的字節(jié)數(shù)必須是4的整倍數(shù),如果不是,則需要補(bǔ)齊,這在biSizelmage中有介紹。一般來(lái)說(shuō)

18、 ,BMP文件的數(shù)據(jù)是從下到上,從左到右。也就是說(shuō),從文件中最先讀到的是圖像最下面一行的左邊第一個(gè)像素,然后是左邊第二個(gè)像素一接下來(lái)是倒數(shù)第二行左邊第一個(gè)像素,以此類(lèi)推,最后得到的是最上面一行的最右一個(gè)像素,這與采集出的圖像數(shù)據(jù)順序是不同的。每像素的順序?yàn)锽GR6.2.3 圖像顯示原理本課程設(shè)計(jì)設(shè)計(jì)采用的是一個(gè)240X320分辨率的16位液晶屏幕,可以通過(guò)操作S3C2410內(nèi)部的相關(guān)寄存器來(lái)直接控制顯示,由于采用了ARMLinux作為操作系統(tǒng),可以直接操作“nux下的Framebuffer設(shè)備來(lái)完成圖像的顯示,幀緩沖(Framebuffer)是Linux為顯示設(shè)備提供的一個(gè)接口,把顯存抽象后的

19、一種設(shè)備,他允許上層應(yīng)用程序在圖形模式下直接對(duì)顯示緩沖區(qū)進(jìn)行讀寫(xiě)操作。這種操作是抽象的、統(tǒng)一的。用戶(hù)不必關(guān)心物理顯存的位置、換頁(yè)機(jī)制等等具體細(xì)節(jié)。這些都是由Framebuffer設(shè)備驅(qū)動(dòng)來(lái)完成的。在應(yīng)用程序中首先要打開(kāi)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ū)映射到用戶(hù)空間,F(xiàn)ramebuffer設(shè)備可以看成是顯存的映像,但是Linux所有的設(shè)備驅(qū)動(dòng)均在內(nèi)核態(tài)工作,所以無(wú)法在當(dāng)前進(jìn)程

20、空間中直接訪(fǎng)問(wèn),通過(guò)映射機(jī)制可以直接把顯存的起始地址映射到當(dāng)前進(jìn)程的地址空間,從而可以快速方便的實(shí)現(xiàn)顯存,建立映射的方法如下:Pfd=mmap(0,F(xiàn)BDraw_finfo,smem_len,PROT_READ|PROT_WRFTE,MAP_SHARED,df,0);/以read、write和share方式(fngsh)映射屏幕上左邊為(x,y)的點(diǎn)在顯存中的位置(wi zhi)是:Pfd+x*(fb_vinfo.bits_pixel)3)+y*fb_finfo.line_length,對(duì)這個(gè)位置賦相應(yīng)的顏色值就可以再屏幕上顯示出來(lái)(ch li)。需要注意的是當(dāng)色深(fb_vinfo.bits

21、_per_pixel)不同時(shí),顏色值的格式也不一樣。把經(jīng)過(guò)圖像處理后的圖像數(shù)據(jù)或者采集到的原始圖像數(shù)據(jù)轉(zhuǎn)化成Framebuffer設(shè)備的顏色數(shù)據(jù)格式(RGB565、RGB888等)后,將數(shù)據(jù)復(fù)制到從地址pfb開(kāi)始的內(nèi)存中,就可以事先圖像的顯示。3 開(kāi)發(fā)(kif)環(huán)境簡(jiǎn)介及搭建3.1 硬件平臺(tái)數(shù)字圖像處理系統(tǒng)是執(zhí)行(zhxng)處理圖像、分析理解圖像信息任務(wù)的計(jì)算機(jī)系統(tǒng).盡管圖像處理技術(shù)應(yīng)用廣泛,圖像處理系統(tǒng)種類(lèi)很多,但他們的基本組成是相近的口它們主要(zhyo)含有:圖像輸入設(shè)備、執(zhí)行處理分析與控制的計(jì)算機(jī)圖像處理機(jī)、輸出設(shè)備、存儲(chǔ)系統(tǒng)中的圖像數(shù)據(jù)庫(kù)、圖像處理程序庫(kù)與模型庫(kù)。其中,負(fù)責(zé)執(zhí)行圖像

22、處理與分析的圖像處理機(jī)是整個(gè)系統(tǒng)的核心部分,它關(guān)系著圖像的處理效果,及系統(tǒng)的整體性能。本系統(tǒng)選用的是韓國(guó)三星電子公司推出的一款基于ARM920T內(nèi)核的S3C2410嵌入式微處理器。S3C2410把外部復(fù)位信號(hào)作為一個(gè)中斷處理,在系統(tǒng)復(fù)位時(shí),程序指針(PC)被設(shè)置為0,程序跳轉(zhuǎn)到0 x00000000開(kāi)始運(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)過(guò)初始化和自檢后,BootLoader負(fù)責(zé)把16MBNANDFlash的zlmag

23、e(即軟件系統(tǒng)的鏡像文件)復(fù)制到0 xc0008000地址(此地址是系統(tǒng)64MB SDRAM的首地址)。然后,引導(dǎo)程序把PC指向0 xc0008000地址,系統(tǒng)開(kāi)始運(yùn)行。3.2 系統(tǒng)軟件平臺(tái)構(gòu)建結(jié)合S3C2410處理器的特點(diǎn)基于該芯片構(gòu)建嵌入式圖像處理系統(tǒng),設(shè)計(jì)者必須考慮其通用性、響應(yīng)速度及對(duì)于硬件的可操控性。正是基于這樣的考慮,分三層構(gòu)建嵌入式圖像處理系統(tǒng)的軟件體系:ARM Linux的建立;圖形用戶(hù)界面(MiniGui)的移植;圖像處理軟件的設(shè)計(jì)編碼。其中ARM Linux的建立是構(gòu)建嵌入式Linux系統(tǒng)的通用步驟 3.3 LCD顯示(xinsh)模塊從S3C24 10的LCD控制器出來(lái)(

24、ch li)的信號(hào)線(xiàn)包括24根數(shù)據(jù)線(xiàn)和若干根控制線(xiàn)。這些(zhxi)信號(hào)線(xiàn)是經(jīng)過(guò)74HC245隔離后接到LCD模塊的,對(duì)于256色LCD只需要其中低8位數(shù)據(jù)線(xiàn)即可(如圖所示)。LCD模塊除了需要控制信號(hào)和數(shù)據(jù)信號(hào)外,還需要一個(gè)22V左右的工作電壓和上千伏的背光電壓。前者M(jìn)AX629升壓后得到,后者由一個(gè)逆變器模塊提供。圖3.3 S3C24 104 系統(tǒng)設(shè)計(jì)(shj)的與具體實(shí)現(xiàn)基于上文的闡述,本軟件系統(tǒng)的具體(jt)實(shí)現(xiàn)工作主要包括:圖像文件的讀入、圖像處理的具體實(shí)現(xiàn)等。下文將具體介紹實(shí)現(xiàn)工作。4.1 BMP文件(wnjin)的讀入在嵌入式平臺(tái)上,并沒(méi)有現(xiàn)成的BMP文件的庫(kù)函數(shù)可以使用。因此,

25、如何把一個(gè)BMP文件讀人到內(nèi)存中進(jìn)行圖像處理算法移植的根本前提。本系統(tǒng)中,主要處理的圖像有兩大塊:真彩圖和256色的圖像(包括256級(jí)厭度圖),因此對(duì)應(yīng)設(shè)計(jì)了兩個(gè)BMP文件的讀入函數(shù),并將這兩個(gè)函數(shù)放在Graphich和Graphicc中,以備后續(xù)的開(kāi)發(fā)使用。兩個(gè)函數(shù)為:GetTruePixel(char bmpnameIl,U32 color24011320J,int*mapwidthint*mapheight);Get256Pixel(char bmpname。U8 cdorbutl240113201,U32 pale256int 4mapwidth,int*mapheight)。函數(shù)l用

26、于將一個(gè)名稱(chēng)為bmpnameH的真彩圖像數(shù)據(jù)讀入color矩陣,同時(shí)獲得圖像的寬和高;函數(shù)2用于將一個(gè)名稱(chēng)為bmpname的256色圖像數(shù)據(jù)讀人colorbuf矩陣,同時(shí),對(duì)應(yīng)的調(diào)色板數(shù)據(jù)讀入pale矩陣中并獲得圖像的寬和高。4.2 圖像增強(qiáng)算法(sun f)設(shè)計(jì)在圖像處理中,當(dāng)光學(xué)系統(tǒng)成像時(shí)出現(xiàn)背景與目標(biāo)灰度范圍相對(duì)比較窄,即低對(duì)比度的情況,一般會(huì)采用對(duì)圖像進(jìn)行灰度的拉伸(l shn)變換5,從而加大特征目標(biāo)與背景的灰度差,實(shí)現(xiàn)圖像增強(qiáng),以利于提取出特征目標(biāo)來(lái)灰度變換可分為線(xiàn)性灰度變換、分段(fn dun)線(xiàn)性變換、非線(xiàn)性變換本研究采用線(xiàn)性灰度變換,該方法用于克服當(dāng)圖像由于成像時(shí)曝光不足或過(guò)

27、度所產(chǎn)生的對(duì)比度不足的弊病假設(shè)原圖像八茗,y)的灰度范圍為a,b,希望變換后圖像g(x,y)的灰度范圍擴(kuò)展到c,d,其數(shù)學(xué)表達(dá)式為:g(x,y)=c (0f(x,y)a)g(x,y)=(d-c)/(b-a)+c (af(x,y) b)g(x,y)=d (bf(x,y) Mf)式中:Mf表示(x,y)的最大值4.3 圖像分割算法設(shè)計(jì)經(jīng)過(guò)圖像增強(qiáng)后,要將一幅圖像分解為若干互不交疊的、有意義的、具有相同性質(zhì)的區(qū)域,并從中提取出所感興趣的目標(biāo),即圖像分割圖像分割有邊緣檢測(cè)和閾值分割,這里采用閾值分割方法閾值分割是基于灰度閾值的分割方法,它通過(guò)設(shè)置閾值,把像素點(diǎn)按灰度級(jí)分若干類(lèi),從而實(shí)現(xiàn)圖像分割把一幅灰

28、度圖像轉(zhuǎn)換成二值圖像是閾值分割的最簡(jiǎn)單形式,設(shè)原始圖像為f(x,y),首先就是按一定準(zhǔn)則在f(x,y)中找出一個(gè)灰度值t作為閾值,將圖像分割為兩部分,即把大于等于該閾值的像素點(diǎn)的值置成1,小于閾值的像素點(diǎn)置為0閾值運(yùn)算后的圖像為二值圖像g(x,Y)g(x,y)=1 (f(x,y) t)g(x,y)=0 (f(x,y)t)上式中全局閾值t的選擇直接影響到分割效果通??梢酝ㄟ^(guò)分析灰度直方圖來(lái)確定它的值,最常見(jiàn)的方法是利用灰度直方圖來(lái)確定它的值,利用灰度直方圖求雙峰,選擇兩峰之間谷底處的灰度值作為閾值4.4 圖像(t xin)平滑圖像在生成和傳輸過(guò)程中常受到各種嗓聲的干擾和影響,使圖像質(zhì)量下降。為了

29、抑制噪聲改善圖像質(zhì)量,必須對(duì)圖像進(jìn)行(jnxng)平滑處理。通常,將數(shù)字圖像的平滑技術(shù)4劃分為兩類(lèi)。一類(lèi)是全局處理,即對(duì)噪聲圖像的整體或大的塊進(jìn)行校正得到平滑圖像。但這類(lèi)方法需要知道信號(hào)和噪聲的統(tǒng)計(jì)模型,且運(yùn)算量較大。另一類(lèi)平滑技術(shù)是對(duì)噪聲圖像使用(shyng)局部算子。當(dāng)對(duì)某一像素進(jìn)行平滑處理時(shí),僅對(duì)它的局部小鄰域的一些像素加以運(yùn)算,其優(yōu)點(diǎn)是計(jì)算效率高,而且可以多個(gè)像素并行處理,因此可以實(shí)現(xiàn)實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)處理。(1)平滑線(xiàn)性濾波器(均值濾波)一般來(lái)說(shuō),假設(shè)MXN的圖像(x,y)為給定的含有噪聲的圖像,用m*n大小的濾波器掩模進(jìn)行線(xiàn)性濾波結(jié)果為g(x,y),在數(shù)學(xué)上可以表現(xiàn)為:其中,a=(m-

30、1)/12, b=(n-1)/12, w(s,t)為濾波器系數(shù)。為了得到一副完整的經(jīng)過(guò)濾波處理的圖像,必須對(duì)x=0,1,2,.M-1和y =0,工,2,.,N-1依次應(yīng)用公式。這樣,就保證了對(duì)圖像中的所有像素進(jìn)行了處理。一般可選取以下幾種模板: 模版1 模版2 模版3比較常用 的是模板3,它又被稱(chēng)為高斯(Gauss)模板,它為了突出模板中心像素本身的重要性,對(duì)所有的模板系數(shù),不是一視同仁,而是引入了加權(quán)系數(shù),可以看出,離原點(diǎn)距離越近的點(diǎn),加權(quán)系數(shù)越大??臻g均值處理的一個(gè)結(jié)果是,較大物體變得像“斑點(diǎn)”而易于檢測(cè),但那些較小物體的強(qiáng)度與背景混合在了一起。為此,在濾波后可增加閥值處理,即將濾波后的圖

31、像與選定的閥值相比較,根據(jù)比較結(jié)果決定最后的灰度值。該方法對(duì)抑制椒鹽噪聲比較有效,對(duì)保護(hù)僅有微小灰度差的細(xì)節(jié)(xji)和紋理也有效。(2)平滑(pnghu)非線(xiàn)性濾波器(統(tǒng)計(jì)(tngj)排序?yàn)V波器)統(tǒng)計(jì)排序 濾波器是一種非線(xiàn)性的空間濾波器,它的響應(yīng)基于圖像濾波器包圍的圖像區(qū)域中像素的排序,然后由統(tǒng)計(jì)排序結(jié)果決定的值代替中心像素的值。統(tǒng)計(jì)排序?yàn)V波器中最常見(jiàn)的例子就是中值濾波器,正如其名,它是將像素鄰域內(nèi)灰度的中值代替該像素的值。中值濾波器的主要功能是使擁有不同灰度的點(diǎn)看起來(lái)更接近于它的臨近值。中值濾波器使用非常普遍,這是因?yàn)閷?duì)于一定類(lèi)型的隨機(jī)噪聲,它提供了一種優(yōu)秀的去噪能力,比小尺寸的線(xiàn)性平滑濾

32、波器的模糊程度明顯要低。中值濾波器對(duì)處理脈沖噪聲(椒鹽噪聲)非常有效,因?yàn)檫@種噪聲是以黑白點(diǎn)疊加在圖像上的。盡管在圖像處理中,中值濾波器是用得最廣泛的統(tǒng)計(jì)濾波器,但這并不是說(shuō)它是唯一的。所謂中值就是一系列像素值的第50%個(gè)值,當(dāng)我們?nèi)?00%個(gè)值,此時(shí)就是最大濾波器,相反,當(dāng)取0%的值時(shí)就變成了最小濾波器。4.5 圖像縮放(平移以及轉(zhuǎn)置)一般采用插值法,有如下幾種插值算法:最鄰近插值(近鄰取樣法):最臨近插值的的思想很簡(jiǎn)單。對(duì)于通過(guò)反向變換得到的的一個(gè)浮點(diǎn)坐標(biāo),對(duì)其進(jìn)行簡(jiǎn)單的取整,得到一個(gè)整數(shù)型坐標(biāo),這個(gè)整數(shù)型坐標(biāo)對(duì)應(yīng)的像素值就是目的像素的像素值,也就是說(shuō),取浮點(diǎn)坐標(biāo)最鄰近的左上角點(diǎn)(對(duì)于DI

33、B是右上角,因?yàn)樗膾呙栊惺悄嫘虼鎯?chǔ)的)對(duì)應(yīng)的像素值。可見(jiàn),最鄰近插值簡(jiǎn)單且直觀,但得到的圖像質(zhì)量不高。雙線(xiàn)性?xún)?nèi)插值:對(duì)于一個(gè)目的像素,設(shè)置坐標(biāo)通過(guò)反向變換得到的浮點(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) 可由原圖像中坐標(biāo)為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對(duì)應(yīng)的周?chē)膫€(gè)像素的值決定,即: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)其中f(i,j)表示(biosh)源圖像(i

34、,j)處的的像素值,以此類(lèi)推.這就是雙線(xiàn)性?xún)?nèi)插值法。雙線(xiàn)性?xún)?nèi)插值法計(jì)算量大,但縮放后圖像質(zhì)量高,不會(huì)出現(xiàn)像素值不連續(xù)的的情況(qngkung)。由于雙線(xiàn)性插值具有低通濾波器的性質(zhì),使高頻分量受損,所以可能會(huì)使圖像輪廓在一定程度上變得模糊。三次卷積法能夠克服以上兩種算法的不足,計(jì)算精度高,但計(jì)算量大,他考慮一個(gè)浮點(diǎn)坐標(biāo)(i+u,j+v)周?chē)?6個(gè)鄰點(diǎn),目的像素值f(i+u,j+v)可由如下插值公式(gngsh)得到:f(i+u,j+v) = A * B * CA= S(u + 1) S(u + 0) S(u - 1) S(u - 2) f(i-1, j-1) f(i-1, j+0) f(i-1

35、, j+1) f(i-1, j+2) B= f(i+0, j-1) f(i+0, j+0) f(i+0, j+1) f(i+0, j+2) f(i+1, j-1) f(i+1, j+0) f(i+1, j+1) f(i+1, j+2) f(i+2, j-1) f(i+2, j+0) f(i+2, j+1) f(i+2, j+2) S(v + 1) C= S(v + 0) S(v - 1) S(v - 2) 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)=2S(x)是對(duì) Sin(x*Pi)/

36、x 的逼近(Pi是圓周率)最鄰近插值(近鄰取樣法)、雙線(xiàn)性?xún)?nèi)插值、三次卷積法 等插值算法對(duì)于旋轉(zhuǎn)變換、錯(cuò)切變換、一般線(xiàn)性變換 和 非線(xiàn)性變換 都適用。5 程序(chngx)主要(zhyo)源代碼分析5.1 圖像數(shù)據(jù)(shj)存儲(chǔ)的主程序如下:FILE*file=fopen(O.bmp,wb);writebmpfileheader(file);/*寫(xiě)文件頭函數(shù)*/writebmpinfoheader(file);/* 寫(xiě)信息頭函數(shù)*/writeimagedata(file);/* 寫(xiě)圖像數(shù)據(jù)函數(shù)*/fclose(fi le);寫(xiě)文件頭和寫(xiě)信息頭函數(shù)比較簡(jiǎn)單,這里bfSize為230454;b i

37、Width,biHeight為320,240;bi Sizelmage為230400;biXPelsPerMeter,bi YPelsPerMeter,biClrUsed,biCIrImportant均為Oa以下給出 writeimagedata(file)II 數(shù)的原型:voidwriteimagedata(FILE* file)Int datapointer;Int mydata ;for (int i= 0; i = 239; i+)/*共240行*/datapointer -data+(239-i )*3 20 ;/*data為采集映射時(shí)圖像數(shù)據(jù)首地址(dzh),計(jì)算每一要寫(xiě)入的行在內(nèi)

38、存中的首地址*/for(int j= 0;j = 31 9;j + + )/* 共 320列*/mydata=*( datapointer+j);fwrite(&mydata,1, 1, fil e); /*寫(xiě)入一行(yxng)數(shù)據(jù)*/ 5.2 圖像(t xin)平滑模塊Typedef structunsigned short bfType;Unsigned bfSize;Unsigned short bfReserved 1;Unsigned short bfReserved 2;Unsigned bfOffBits;BMPHEADER;BMPHEADER header;Typedef st

39、ructunsigned biSize;unsigned biWidth;unsigned biHeight;unsigned short biplanes;unsigned short biBitCount;unsigned biCompression;unsigned biSizelmage;unsigned biXpelsPerMeter;unsigned biYpelsPerMeter;unsigned biClrUsed;unsigned biClrUsed;unsigned biClrImportant; BMPINFOHEADER;BMPINFOHEADER infobeader

40、;在進(jìn)行處理之前(zhqin),先讀取文件信息,假設(shè)我們將采集到的數(shù)據(jù)存放成0.bmp文件;FILE*fp;Fp=fopen(“0.bmp”,“rb”);fread(&(header.bfType),2,1,fp);fread(&(header.bfSize),4,1,fp);fread(&(header.bfReserved),2,1,fp);fread(&(header.bfOffBits),4,1,fp);fread(&(header.bfzeof(BMPINFOHEADER),1,fp);接下來(lái),將圖像數(shù)據(jù)(shj)存入我們的內(nèi)存中,并將圖像數(shù)據(jù)灰度化:Unsigned char*pr

41、odata;Unsigned char*middledata;Int size=infoheader.bitSizeImage;Prodata=malloc(size);Fread(prodata,1,size,fp);Fclose(fp);For(z=0,zinfoheader.biSizeImage;z+)middledataz=(unsigned char)(*prodata+z+2)*3 +(unsigned char )(*(prodata+z+1)*0.6 + (unsigned char)(*prodata +z)*0.1);Z+;Middledataz=middledataz-

42、1;Z+;Middledataz=middledataz-1; Memcpy(prodata,middledata,infoheader.biSizeImge);以下是高斯(o s)平滑的主程序:Double Template9;/*運(yùn)算(yn sun)模版*/Double Coef=(double)(1.0/16.0);/*模版均值(jn zh)*/*模版?zhèn)€稀疏聲明*/Template0=1.0;Template1=2.0;Template2=1.0; Template3=2.0;Template4=4.0; Template5=2.0;Template6=1.0; Template7=2.

43、0;Template8=1.0;For(x=1;xXSaveDim-1;x+)for(y=1;yYSaveDim-1;y+)/*XsaveDim,YsaveDim為圖像存儲(chǔ)尺寸,x,y從1開(kāi)始并且以XsaveDim-1,YsaveDim-1結(jié)束,是為了去除邊界*/for(j=1;j3;j+)for(k=0;k255)Result=255;Z=GetPixelOffset(x,y);Middledataz=(unsigned char)(Result+0.5);Z+;Middledataz=middledataz-1;Z+;Middledataz=middledataz-2;5.3 圖像(t x

44、in)平移主要代碼int Main(int argc, char *argv)ARMTargetInit(); OSInit(); uHALr_ResetMMU();LCD_Init(); LCD_printf(LCD initialization is OKn);LCD_printf(320 x 240 Text Moden);initOSGUI();LoadFont();LoadConfigSys();LCD_printf(Create task on uCOS-II.n);OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_StackST

45、ACKSIZE*8-1, Main_Task_Prio); shuoF();OSTaskCreate(Main_Task2, (void *)0, (OS_STK *)&Main_Stack2STACKSIZE*8-1, Main_Task_Prio);/ 創(chuàng)建(chungjin)系統(tǒng)任務(wù)OSAddTask_Init();LCD_printf(Starting uCOS-II.n);LCD_printf(Entering graph mode.n);LCD_ChangeMode(DspGraMode);InitRtc();Nand_Rw_Sem=OSSemCreate(1); OSStart(

46、);return 0;void Main_Task(void *Id) int x=0,y=0; char xz=x:; char yz=y:; U16 x1100,y1100,textcontext120,*text1context,*text2context,textinit120;/ char textcontext=; char textinit=0; char bmpname12=1,2,7,_,1,3, , ,B,M,P,0; strChar2Unicode(x1,xz); strChar2Unicode(y1,yz); strChar2Unicode(textcontext1,t

47、extcontext); strChar2Unicode(textinit1,textinit); pposition1=&position1; poutrect=&outrect; poutrect1=&outrect1; outrect.left=240; outrect.top=20; outrect.right=300; outrect.bottom=40; outrect1.left=240; outrect1.top=50; outrect1.right=300; outrect1.bottom=70; outrect2.left=0; outrect2.top=0; outrec

48、t2.right=200; outrect2.bottom=240; text1=CreateTextCtrl(100,poutrect,1,3,NULL,NULL); text2=CreateTextCtrl(101,poutrect1,1,3,NULL,NULL); SetTextCtrlText(text1,textinit1,TRUE); SetTextCtrlText(text2,textinit1,TRUE); LCD_ChangeMode(DspGraMode); pdc=CreateDC(); ClearScreen(); TextOut(pdc,220,30,x1,TRUE,

49、1); TextOut(pdc,220,60,y1,TRUE,1); DrawTextCtrl(text1); DrawTextCtrl(text2); DrawRectFrame(pdc,0,0,200,240); while(1) ClearScreen(); ShowBmp(pdc,bmpname,50,pos); itoa(50,strx); itoa(pos,stry); pos+=10; if(pos=150) pos=0; for(t=0;t5;t+) textinit1t=strxt; SetTextCtrlText(text1,textinit1,TRUE); for(t=0;t=0;i-)pbmp=bmp;if(!ReadOSFile(pfile, bmp,wold*nbyte+(wold*nbyte)%2)break;for(j=0;jwold;j+) color=*pbmp; for(k=0;knbyte-1;k+)color=8;pbmp+;color|=*pbmp; pbmp+;colorbufij=color; num1=(float)(1.0/zoomRatio);wnew = (

溫馨提示

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

評(píng)論

0/150

提交評(píng)論