999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2013-07-13 06:30:42陳勝利
電子設(shè)計工程 2013年3期
關(guān)鍵詞:嵌入式設(shè)備系統(tǒng)

錢 鷹,陳勝利

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

隨著科技的進步和社會的發(fā)展,數(shù)字視頻圖像的采集、存儲、處理及傳輸技術(shù)在最近幾年得到了廣泛的應(yīng)用,與傳統(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ù),但該論文沒有說明具體實際的應(yīng)用。在文獻[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谇度胧较到y(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è)備正常工作,必須加載相應(yīng)的驅(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è)備的應(yīng)用程序編程提供一系列接口函數(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)和對比度等。基于V4L的視頻采集程序流程圖如圖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中相應(yīng)變量賦新值,再利用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攝像頭的圖像采集及顯示的方法,主要涉及應(yīng)用Video4Linux對圖像采集的實現(xiàn)及由QT設(shè)計的GUI對采集圖像的顯示,本文設(shè)計的圖像采集和顯示系統(tǒng)可廣泛用于工廠、銀行等場合全天候的智能監(jiān)控、圖像的網(wǎng)絡(luò)通信等,而且具有廣闊的市場和應(yīng)用前景。

[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.

猜你喜歡
嵌入式設(shè)備系統(tǒng)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運行維護探討
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 国产午夜无码片在线观看网站| 亚洲精品国产首次亮相| 五月婷婷综合在线视频| 欧美日韩国产在线观看一区二区三区| 伊人久久大线影院首页| 国产精品久久久久婷婷五月| 91免费观看视频| 亚洲欧洲免费视频| 亚洲高清日韩heyzo| 99久久国产综合精品2020| 日韩毛片免费观看| 四虎永久在线| 久久综合九色综合97网| 91精品福利自产拍在线观看| 亚洲狠狠婷婷综合久久久久| 最新无码专区超级碰碰碰| 1769国产精品视频免费观看| 亚洲色无码专线精品观看| 欧美福利在线| 亚洲人成网线在线播放va| 免费毛片网站在线观看| 欧美性精品不卡在线观看| 色综合激情网| 91色综合综合热五月激情| 网友自拍视频精品区| 国产熟睡乱子伦视频网站| 国产一区二区福利| a级毛片一区二区免费视频| 亚洲天堂网在线观看视频| 亚洲综合18p| AV片亚洲国产男人的天堂| 毛片在线区| 欧美亚洲国产日韩电影在线| 日本成人福利视频| 亚洲性日韩精品一区二区| 亚洲日韩精品伊甸| a毛片在线播放| 在线日本国产成人免费的| 成人免费午间影院在线观看| 日韩成人高清无码| 国产精品私拍在线爆乳| 日韩无码视频网站| 免费在线视频a| 亚洲成人免费在线| 亚洲黄网视频| 99热这里都是国产精品| 97精品伊人久久大香线蕉| 99热线精品大全在线观看| 最新国产精品鲁鲁免费视频| 久久久久人妻一区精品色奶水| 亚洲婷婷六月| 一级毛片免费播放视频| 欧美精品v欧洲精品| 9丨情侣偷在线精品国产| 精品91视频| 久久免费成人| 国产一区二区三区在线精品专区| 亚洲精品无码专区在线观看| 日本91视频| 欧美国产日韩在线| 露脸一二三区国语对白| 国产成人三级在线观看视频| 香蕉蕉亚亚洲aav综合| 特级aaaaaaaaa毛片免费视频| 亚洲无限乱码| 日本道中文字幕久久一区| 欧美日韩高清在线| 综合亚洲色图| 日韩小视频网站hq| 专干老肥熟女视频网站| 2020国产精品视频| 国产一级二级在线观看| 亚洲精品午夜无码电影网| 欧美第二区| 夜夜操天天摸| 国产在线观看精品| 免费精品一区二区h| 亚洲女人在线| 国产一级做美女做受视频| 亚洲天堂精品在线观看| 久久综合九九亚洲一区 | 国产一区免费在线观看|