陳 旅,劉國忠,孫容海
(1.廣西師范大學(xué)計算機(jī)科學(xué)與信息工程學(xué)院,桂林541004;2.廣西桂平市木樂第一中學(xué),桂平 537202)
?
面向Android手機(jī)的序列圖像采集工具
陳旅1,劉國忠2,孫容海1
(1.廣西師范大學(xué)計算機(jī)科學(xué)與信息工程學(xué)院,桂林541004;2.廣西桂平市木樂第一中學(xué),桂平537202)
摘要:智能手機(jī)的普及使得人們越來越喜愛用手機(jī)來拍攝圖像。針對Android手機(jī)用戶,設(shè)計和開發(fā)一個序列圖像采集工具。該工具是在Eclipse環(huán)境下開發(fā),通過使用ADT插件來實現(xiàn)用手機(jī)攝像頭捕獲連續(xù)場景并轉(zhuǎn)化為序列圖像,可有效捕捉每個精彩的鏡頭。
關(guān)鍵詞:Android;圖像采集;序列圖像
隨著Android操作系統(tǒng)的不斷成熟與快速發(fā)展,其開源的操作系統(tǒng)和良好的用戶體驗得到了手機(jī)制造商和用戶的喜愛。在2011年第一季度,Android的全球市場總額超過了塞班操作系統(tǒng)。如今,Android在中國市場占據(jù)了大部分的市場總額,越來越多的用戶成為Android智能手機(jī)的使用群體。由于每臺智能手機(jī)都配備有攝像頭,使得智能手機(jī)可以完成拍照和攝像等功能。用戶可以在沒有照相機(jī)或攝像機(jī)等采集工具的情況下,通過手機(jī)也能進(jìn)行圖像采集。隨著手機(jī)配備的攝像頭硬件性能提升,手機(jī)攝像頭能在單位時間內(nèi)捕獲更多的圖像資源。相對于一般的拍照功能,連續(xù)圖像采集的功能更強(qiáng)大。它可以讓愛好攝影人士更容易采集到滿意的圖像,又不必?fù)?dān)心由于時機(jī)把握得不準(zhǔn)確而丟失精彩的鏡頭。因此,設(shè)計和開發(fā)基于Android的圖像序列采集工具具有重要的應(yīng)用意義。為此,本文在Eclipse環(huán)境下,使用ADT插件[1]開發(fā)了一個序列圖像采集工具。下面詳細(xì)介紹該工具的系統(tǒng)功能、采集流程、采集方法和測試結(jié)果。
本文設(shè)計的序列圖像采集工具的主要功能為圖像采集和視頻采集。另外,為方便用戶查看采集結(jié)果,增加瀏覽圖片和瀏覽視頻兩個輔助功能。圖1是本文的序列圖像采集工具的功能模塊圖。

圖1 功能模塊圖
各模塊的詳細(xì)功能介紹如下。(1)圖像采集:打開手機(jī)攝像頭采集視頻資源,保存到臨時目錄下。讀取臨時目錄下的視頻資源,提取視頻的幀圖片,按時間順序保存到圖片目錄下。(2)視頻采集:打開手機(jī)攝像頭采集視頻資源,保存到臨時目錄下。讀取臨時目錄下的視頻資源,提取視頻的第一幀圖片作為縮略圖,按時間順序保存到視頻目錄下。(3)瀏覽圖片:查看JPG格式的序列圖片集合。(4)瀏覽視頻:查看MP4格式的序列視頻。
圖2為本文的序列圖像采集流程,具體過程如下。圖像采集開始后,系統(tǒng)打開手機(jī)攝像頭進(jìn)入預(yù)覽狀態(tài)。該過程可由Android的硬件開發(fā)包Camera[2]包提供的功能來完成,通過Camera包提供的功能加載攝像機(jī)預(yù)設(shè)的參數(shù)。用戶啟動采集按鈕,系統(tǒng)按照預(yù)設(shè)的參數(shù)開始圖像的采集工作。圖像的采集工作是將采集到的視頻資源轉(zhuǎn)換成有序列的圖像的過程。最后保存序列圖像,采集結(jié)束。

圖2 圖像采集流程
Android手機(jī)的圖像采集方式大致分為拍照方式采集和攝像頭錄制采集兩種方式。拍照采集方式的特點(diǎn)是采集圖像的質(zhì)量較高,但是單位時間內(nèi)采集的數(shù)量少;而攝像頭錄制采集方式則可以獲得足夠的圖像資源。隨著手機(jī)搭載攝像頭的像素提升,通過攝像頭錄制采集的圖片資源可以達(dá)到高清級別。本文采用攝像頭錄制方式采集圖像,即先通過攝像頭采集成一段視頻,然后提取視頻里的幀圖片,最后轉(zhuǎn)換為序列圖像。圖3為圖像采集過程示意圖。具體的操作是,首先打開手機(jī)攝像頭采集視頻資源。為了保證采集的視頻資源完整性,將采集完整的視頻資源先保存到臨時目錄下。保存時為視頻生成隨機(jī)的視頻簽名編號,以便于之后圖片的分組編號。最后,提取臨時視頻資源進(jìn)行提取視頻幀的操作。下面詳細(xì)介紹提取視頻的幀圖片的關(guān)鍵步驟:
視頻幀的結(jié)構(gòu)如圖4所示。由于攝像頭的打開和關(guān)閉也會作為一幀來處理,因此視頻幀的首幀和尾幀一般是黑屏的幀,在提取視頻的幀圖像時要跳過這兩幀。從第二幀開始是有資源的幀圖片。該過程的實現(xiàn)函數(shù)在JavaCV開源視覺處理庫的com.googlecode.javacv. FFmpegFrameGrabber包中,它能完成抓取視頻中的幀圖像并轉(zhuǎn)化為一系列有序列的圖像的相關(guān)操作。

圖4 視頻的幀序列
提取視頻的幀圖像后,將第一幀的圖像單獨(dú)提取出來作為圖片集的縮略圖。用前面生成的簽名數(shù)字編號和生成圖像的時間來標(biāo)注每一張?zhí)崛〕鰜淼膸瑘D像及其縮略圖,作為這一組提取出來的幀圖像的標(biāo)識。完成這一步驟之后,分別將圖像集和縮略圖保存到相應(yīng)的文件夾下就完成了序列圖像的采集工作。該過程可由Android的圖像開發(fā)包Bitmap[3]和BitmapFactory[4]包中提供的功能來完成。視頻采集功能和圖像采集的操作大致相同,視頻采集最后生成的是按時間排序的視頻。最后將縮略圖和圖像集、視頻布置到手機(jī)顯示的界面上。用戶點(diǎn)擊縮略圖,由縮略圖上的簽名編號就能索引到相應(yīng)的序列圖像集合或視頻。
在Android智能手機(jī)模擬環(huán)境下安裝測試序列圖像采集工具,圖5為該軟件的運(yùn)行界面。主界面上設(shè)置有4個可點(diǎn)擊按鈕,分別是圖片采集、視頻采集、瀏覽圖片、瀏覽視頻。由于大部分用戶操作手機(jī)的時候都是習(xí)慣用右手操作,所以本次界面設(shè)計采用了相對布局的方式。將4個可點(diǎn)擊按鈕按照相對于屏幕的方式對齊到右下角。圖6為圖像采集界面。布局的上層會出現(xiàn)兩個按鈕,分別是采集按鈕和停止按鈕。默認(rèn)情況下,采集按鈕是可以點(diǎn)擊的,而停止按鈕是不可使用。當(dāng)用戶點(diǎn)擊了采集按鈕,此時手機(jī)將進(jìn)入采集狀態(tài),采集按鈕會變成不可使用,而停止按鈕則變成可用。圖7(a)為圖片集的縮略圖,點(diǎn)擊圖中的任意一張縮略圖像便會進(jìn)入如圖7(b)所示的詳細(xì)圖界面。此時點(diǎn)擊的圖片對應(yīng)的圖片集合就會顯示成一組卡片模型的顯示方式。手指左右滑動圖片可以瀏覽上一頁或者下一頁的圖片。點(diǎn)擊單擊圖7(c)的任意一個視頻的縮略圖,系統(tǒng)便會進(jìn)入如圖7(d)所示的播放界面,系統(tǒng)將自動播放與縮略圖對應(yīng)的視頻資源。
本文設(shè)計和開發(fā)了一個面向Android手機(jī)的圖像采集工具。該工具通過視頻采集方式來獲取圖像,能夠在短時間內(nèi)獲取較多的序列圖像資源。經(jīng)測試,在手機(jī)硬件支持的情況下,通過提取視頻圖片資源的采集方式可以獲得每秒鐘30幀甚至更多的圖像。

圖7 圖像與視頻展示界面
?
參考文獻(xiàn):
[1]王英強(qiáng),陳綏陽,張文勝. Android應(yīng)用程序設(shè)計.北京:清華大學(xué)出版社,2013.
[2]Android.hardware.Camera API [EB/OL]. https://developer.android.com/reference/android/graphics/Bitmap.html?, 2014-4-5.
[3]Android.graphics.Bitmap API [EB/OL]. https://developer.android.com/reference/android/graphics/Bitmap.html?, 2014-4-5.
[4]Android.graphics.BitmapFactory API [EB/OL]. https://developer.android.com/reference/android/graphics/BitmapFactory.html?, 2014-4-5.
陳旅(1991-),男,廣西柳城人,碩士生,研究方向為圖像處理
劉國忠(1975-),男,廣西桂平人,中學(xué)一級教師,主要從事計算機(jī)教育
Sequence Image Acquisition Tool for Android Mobile Phone
CHEN Lv1,LIU Guo-zhong2,Sun Rong-hai1
(1. College of Computer Science and Information Technology, Guangxi Normal University, Guilin 541004 2. No. 1 Middle School of Mule in Guiping city of Guangxi, Guiping 537202)
Abstract:The popularity of smart phones makes it more and more popular to use mobile phones to shoot images. For Android mobile phone users, designs and develops a sequence of image acquisition tool. The tool is developed in Eclipse environment, through the use of ADT plugins to achieve the use of a mobile phone camera to capture a continuous scene and transformed into a sequence of images, which can effectively capture each wonderful lens.
Keywords:Android; Image Acquisition; Sequence Images
收稿日期:2016-01-22修稿日期:2016-03-10
通訊作者:孫容海(1971-),男,湖南安化人,碩士,工程師,研究方向為圖像處理
作者簡介:
文章編號:1007-1423(2016)09-0063-04
DOI:10.3969/j.issn.1007-1423.2016.09.015
基金項目:國家自然科學(xué)基金項目(No.61562007)、廣西高等學(xué)校科研項目(No.KY2015LX006)、桂林市科學(xué)研究與技術(shù)開發(fā)計劃項目(No.20140103-17)