• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于嵌入式平臺的USB攝像頭圖像采集及顯示

      2013-07-13 06:30:42陳勝利
      電子設(shè)計工程 2013年3期
      關(guān)鍵詞:內(nèi)核嵌入式攝像頭

      錢 鷹,陳勝利

      (1.重慶郵電大學 軟件學院,重慶 400065;2.重慶郵電大學 自動化學院,重慶 400065)

      隨著科技的進步和社會的發(fā)展,數(shù)字視頻圖像的采集、存儲、處理及傳輸技術(shù)在最近幾年得到了廣泛的應用,與傳統(tǒng)圖像處理系統(tǒng)相比,嵌入式圖像處理系統(tǒng)具有體積小、成本低、可靠性高等優(yōu)點,在智能交通、遠距離監(jiān)控、計算機視覺等領(lǐng)域廣泛運用。而嵌入式Linux系統(tǒng)具有源代碼開放、內(nèi)核穩(wěn)定、可裁減性、驅(qū)動豐富等特點,吸引著眾多商業(yè)公司和自由軟件開發(fā)者的目光,成為嵌入式系統(tǒng)領(lǐng)域不可或缺的操作系統(tǒng)之一。

      文獻[1]詳細介紹了嵌入式中的交叉編譯環(huán)境的搭建及移植技術(shù),但該論文沒有說明具體實際的應用。在文獻[2]中介紹了ARM920T的嵌入式Linux下利用USB攝像頭采集圖像的硬件、軟件設(shè)計過程,但在設(shè)計圖片顯示的GUI時只是簡單的顯示而沒有設(shè)計對采集圖片的操作。文獻[3]分析了V4L2的圖像采集驅(qū)動和流程,然后在Qt環(huán)境下設(shè)計并實現(xiàn)采集終端軟件設(shè)計,最后在Tiny6410平臺上移植嵌入式視頻采集終端,受該文獻的啟發(fā),本文在完成V4L圖像采集驅(qū)動及內(nèi)核的定制之后,直接利用Qt庫設(shè)計GUI顯示,并在設(shè)計GUI時考慮了對采集圖像的放大、縮小等簡單操作,最終在Linux環(huán)境下完成交叉編譯,并將交叉編譯所得的可執(zhí)行文件直接運行于OK6410開發(fā)板。

      1 系統(tǒng)架構(gòu)

      文中使用的系統(tǒng)架構(gòu)如圖1所示。該架構(gòu)采用Samsung公司的處理器S3C6410,該處理器是一款低功耗、高性價比的RSIC處理器,它基于 ARM11內(nèi)核(ARM1176JZF-S),資源豐富,執(zhí)行ARMv6架構(gòu)的指令,ARMv6指令包含了針對媒體處理的單指令流多數(shù)據(jù)流(SIMD)擴展,采用特殊的設(shè)計,以改善視頻處理性能,擁有強大的內(nèi)部資源和視頻處理能力,可穩(wěn)定運行在667 MHz主頻以上,支持Mobile DDR和多種NAND Flash。

      開發(fā)板硬件模塊包括1個100 M網(wǎng)口、無線網(wǎng)卡、高速SD卡座、CMOS攝像頭接口、JTAG接口。在處理器豐富的資源基礎(chǔ)上,還進行了相關(guān)配置和擴展,平臺另外配置了128 M字節(jié)Mobile DDR內(nèi)存和1 G字節(jié)NAND Flash。

      2 嵌入式Linux內(nèi)核的定制及攝像頭驅(qū)動的加載

      圖1 系統(tǒng)整體架構(gòu)Fig.1 Structure of the system

      由于嵌入式Linux具有成本低、代碼開放、移植性好的特點,其用于嵌入式系統(tǒng)的優(yōu)勢和發(fā)展?jié)摿κ遣蝗葜靡傻?。在嵌入式系統(tǒng)中,由于硬件資源有限,需要對Linux內(nèi)核進行嵌入式化,即通過配置內(nèi)核、裁剪shell和嵌入式C庫對系統(tǒng)進行定制,使得整個系統(tǒng)能夠存放到容量較小的FLASH中。

      Linux平臺的驅(qū)動一般分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備3種類型。而在Linux下要使系統(tǒng)所掛接的外部設(shè)備正常工作,必須加載相應的驅(qū)動程序,Linux下對于一個硬件的驅(qū)動,可以有兩種方式:一種是直接加載到系統(tǒng)的內(nèi)核當中去,另一種是以模塊方式進行加載,就是在編譯內(nèi)核的時候,同時生成可重定位的目標文件(.o文件),動態(tài)方式與靜態(tài)方式相比,測試時要簡單的多,不需要下載整個內(nèi)核,只需通過NFS加載驅(qū)動即可測試,在測試成功后就可以編譯進內(nèi)核[4],因此本文采用第一種方法。

      又由于Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,并為針對視頻設(shè)備的應用程序編程提供一系列接口函數(shù),因此,在Linux下進行圖像的采集首先必須加在Video4Linux模塊和USB及ZC301設(shè)備驅(qū)動模塊。在內(nèi)核源目錄下運行make menuconfig,具體步驟為:

      1)在配置菜單中選擇Multimedia support→Video for Linux,加載video4linux模塊,為實現(xiàn)圖像的采集提供了編程接口;

      2)在配置菜單中選擇USB Support→Support for Host_side USB 及 USB announce new devices,Multimedia support→Video capture adapter→V4L USB Video device→CSPCA based webcams→ZC301 USB Camera Driver使得內(nèi)核中加入了對采用ZC301接口芯片的USB數(shù)字攝像頭的驅(qū)動支持[5]。

      3 基于Video4Linux的圖像采集

      Video4Linux(簡稱V4L)模塊提供的主要API函數(shù)有:VIDIOCGCAP函數(shù)以數(shù)據(jù)結(jié)構(gòu)video_capability返回視頻采集設(shè)備的基本信息,包括設(shè)備名稱、設(shè)備類型、信道數(shù)、最大及最小像素高度和寬度等;VIDIOCSFBUF函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_buffer設(shè)置采集設(shè)備的幀緩存參數(shù),包括緩存區(qū)大小、同時采集的幀數(shù)、偏移量等;VIDIOGWIN函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_windows來設(shè)置采集窗口參數(shù),使用參數(shù)1調(diào)用VIDIOCCAPTURE開始視頻信號采集;VIDIOCSPICT函數(shù)使用數(shù)據(jù)結(jié)構(gòu)video_picture來獲取和設(shè)置采集圖像幀的屬性,如亮度、色調(diào)和對比度等?;赩4L的視頻采集程序流程圖如圖2所示[6]。

      以下簡單介紹程序的編寫,給出關(guān)鍵部分的實現(xiàn)代碼。

      圖2 視頻采集程序流程圖Fig.2 Video acquisition program flow chart

      首先,必須聲明包含sys/types.h、linux/videodev.h2個頭文件:

      其次,設(shè)備的初始化[7]:

      在獲得圖像信息后,還可根據(jù)需要改變這些信息,例如對比度、調(diào)色、亮度板等,具體做法是先給video_picture中相應變量賦新值,再利用VIDIOCSPICT ioct1函數(shù)。

      最后,調(diào)用 ioctl(grab_fd ,VIDIOCSYNC,&frame)函數(shù),該函數(shù)成功返回則表示采集完畢,采集到的圖像數(shù)據(jù)放到以data為起始地址,長度為240×320×3的內(nèi)存區(qū)域中,讀取該內(nèi)存中的數(shù)據(jù)便可得到圖像數(shù)據(jù)。

      4 基于QT/Embedded的圖像顯示

      目前的桌面機操作系統(tǒng)大多有著美觀、操作方便、功能齊全的GUI(圖形用戶界面),GUI的存在為使用者提供了友好便利的界面,并大大方便了非專業(yè)用戶的使用,使得人們從繁瑣的命令中解脫出來,可以通過窗口、菜單方便地進行操作。在嵌入式領(lǐng)域 GUI種類繁多,如:QT/Embedded、MiniGUI、OpenGUI等,其比較如表 1 所示[8]。

      表1 常見GUI比較Tab.1 Comparison of common GUI

      QT/Embedded是一個為訪問嵌入式設(shè)備的API,它的類庫完全采用C++封裝,豐富的控件資源和較好的可移植性是其最優(yōu)秀的一方面,因此,本文通過QT/Embedded編寫圖像顯示程序。

      QPixmap和QImage對象都能實現(xiàn)對圖片的顯示,和QPixmap不同,QImage是獨立于硬件的,它可以同時被另外一個線程訪問,因此,對QImage的使用是非常方便的,本文使用QImage加載后轉(zhuǎn)換為QPixmap顯示,使得當圖片較大時,通過QImage將圖片加載進來,然后縮放成需要的尺寸,最后轉(zhuǎn)換為QPixmap進行顯示[9-10]。關(guān)鍵代碼如下:

      至此完成基于Qt編寫的圖片瀏覽界面程序,實現(xiàn)了將USB攝像頭實時采集到的圖片在開發(fā)板的LCD上的顯示,顯示結(jié)果如圖3所示,其中紅色方框區(qū)域內(nèi)為圖像的顯示區(qū)域,藍色方框區(qū)域為對圖片的操作區(qū)域。

      圖3 結(jié)果在開發(fā)板上的顯示Fig.3 Showing on the demoboard

      5 結(jié)束語

      文中在ARM11+嵌入式Linux的平臺基礎(chǔ)上介紹了一種基于USB攝像頭的圖像采集及顯示的方法,主要涉及應用Video4Linux對圖像采集的實現(xiàn)及由QT設(shè)計的GUI對采集圖像的顯示,本文設(shè)計的圖像采集和顯示系統(tǒng)可廣泛用于工廠、銀行等場合全天候的智能監(jiān)控、圖像的網(wǎng)絡(luò)通信等,而且具有廣闊的市場和應用前景。

      [1]華晶,賈晶,何火嬌.基于Qt/Embedded的嵌入式GUI在ARM上的移植[J].計算機與現(xiàn)代化,2009(10):117-119.

      HUA Jing,JIA Jing,HE Huo-Jiao.Porting of embedded GUI toARMbasedonQt/Embedded[J].ComputerandModernization,2009(10):117-119.

      [2]王永清,何波.Linux下基于ARM920T的USB攝像頭圖像采集[J].微計算機信息,2007(23):116-117.

      WANG Yong-Qing,HE Bo.Getting image data with USB camera based on LINUX and ARM920T[J].Micro-Computer Information,2007(23):116-117.

      [3]郝俊,孟傳良.基于V4L2的ARM11 USB視頻采集終端的設(shè)計與實現(xiàn)[J].貴州大學學報:自然科學版,2011(4):74-78.

      HAO Jun,MENG Chuan-liang.Design and implement of the ARM11 USB video capture terminal based on V4L2[J].Joural of Guizhou University:Natural Science Edit,2011(4):74-78.

      [4]華清遠見嵌入式培訓中心.嵌入式Linux系統(tǒng)開發(fā)[M].北京:人民郵電出版社,2009.

      [5]暢衛(wèi)功.嵌入式Linux中USB攝像頭驅(qū)動的研究[J].微計算機信息,2008(2):54-56.

      CHANG Wei-gong.The investigation of USB camera driving program in embedded linux system[J].Micro-Computer Information,2008(2):54-56.

      [6]劉永林,程耀瑜.基于ARM的圖像采集系統(tǒng)的硬件設(shè)計與實現(xiàn)[J].電子測試,2011(6):12-15.

      LIU Yong-lin,CHENG Yao-yu.Hardware design and implementation of image acquisition system based on ARM[J].Electronic Test,2011(6):12-15.

      [7]楊水清.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:北京航空航天大學出版社,2011.

      [8]俞輝,李永.ARM嵌入式Linux系統(tǒng)設(shè)計與開發(fā)[M].北京:機械工業(yè)出版社,2010.

      [9]Blanchtte J,Summerfield M,著.C++GUI Qt4編程[M].2版.閆峰欣,曾泉人,等譯.北京:電子工業(yè)出版社,2008.

      [10]薛敏彪,吳廣偉,王健,等.嵌入式機載視頻輸出接口設(shè)計[J].現(xiàn)代電子技術(shù),2011(2):9-11,14.

      XUE Min-biao,WU Guang-wei,WANG Jian,et al.Design of embedded airborne video output interface[J].Modern Electronics Technique,2011(2):9-11,14.

      猜你喜歡
      內(nèi)核嵌入式攝像頭
      浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
      萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
      攝像頭連接器可提供360°視角圖像
      強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于嵌入式Linux內(nèi)核的自恢復設(shè)計
      Linux內(nèi)核mmap保護機制研究
      搭建基于Qt的嵌入式開發(fā)平臺
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
      奔馳360°攝像頭系統(tǒng)介紹
      Altera加入嵌入式視覺聯(lián)盟
      铁岭县| 浦江县| 永平县| 深水埗区| 灵台县| 武邑县| 宜兴市| 临湘市| 绥芬河市| 汉川市| 无极县| 白山市| 微博| 安图县| 溆浦县| 清丰县| 瑞金市| 石棉县| 平度市| 陵川县| 汉川市| 信宜市| 兰考县| 东乌珠穆沁旗| 柘城县| 定日县| 收藏| 英山县| 龙门县| 昌平区| 临清市| 永春县| 新竹县| 介休市| 宁德市| 富源县| 云安县| 错那县| 遂平县| 奉贤区| 昔阳县|