freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺(tái)的車輛信息查詢系統(tǒng)的開發(fā)畢業(yè)論文(參考版)

2025-07-01 00:54本頁(yè)面
  

【正文】 數(shù)據(jù)庫(kù)的模式創(chuàng)建如下:CREATE TABLE Info(_id, licence, type, vin, name, phone, gender, birth, d。數(shù)據(jù)庫(kù)設(shè)計(jì)一節(jié)中已經(jīng)描述了本應(yīng)用中數(shù)據(jù)庫(kù)的表和視圖的結(jié)構(gòu)。 數(shù)據(jù)庫(kù)模式在Android中,SQLite數(shù)據(jù)庫(kù)作為應(yīng)用程序永久保存數(shù)據(jù)的重要機(jī)制,得到了Android的強(qiáng)大支持。以類“VehicleItemViewActivity”為例,其代碼和輪廓視圖如圖23。4) 重寫Activity即將失去與用戶的交互能力(如成為其他UI元素的背景,或用戶啟動(dòng)別的應(yīng)用,或用戶按Home鍵;用戶可能永遠(yuǎn)也不再當(dāng)前Activity,因此須保存數(shù)據(jù))時(shí)的回調(diào)函數(shù)onPause(),保存用戶花時(shí)間創(chuàng)建的數(shù)據(jù)。2) 重寫Activity開始能與用戶交互時(shí)的回調(diào)函數(shù)onResume(),做以下工作:a) 從數(shù)據(jù)庫(kù)或文件重新讀入數(shù)據(jù),更新視圖元素的顯示。 類的實(shí)現(xiàn)編寫Android應(yīng)用,很大部分工作在于與用戶的交互,UI類占很大的比重。為了最大限度地降低用戶使用本系統(tǒng)的難度,本項(xiàng)目不使用普遍使用的從網(wǎng)絡(luò)下載SD卡上所需資源文件的方法,而是將它直接放置在項(xiàng)目assets目錄下。 支撐數(shù)據(jù)項(xiàng)目用到了圖像識(shí)別,前文詳細(xì)講述了專用于中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌的語(yǔ)言包的訓(xùn)練方法。項(xiàng)目JavaCV為完整地支持各種圖像、視頻的處理,引用了許多共享庫(kù)。JavaCV采用JavaCPP技術(shù)訪問(wèn)本地代碼。(2)javacv開源項(xiàng)目JavaCV的引用類似。其他項(xiàng)目要調(diào)用上述本地代碼。將這兩個(gè)共享庫(kù)復(fù)制到項(xiàng)目lib/armeabi目錄下。通過(guò)Android NDK編譯二者。f) 獲取非精確(ACCESS_COARSE_LOCATION)的地點(diǎn)和精確的地點(diǎn)(ACCESS_FINE_LOCATION)。d) 振動(dòng)(VIBRATE),用于在識(shí)別出“搖一搖”動(dòng)作時(shí)給出振動(dòng)反饋。b) 通話(CALL_PHONE)。e) 通話與短信(非必須),用于快速撥打車主電話、發(fā)送車輛信息??赏ㄟ^(guò)點(diǎn)擊按鈕或選擇菜單進(jìn)入登記車輛功能??墒止ぬ顚懟虿惶睢?墒止ぽ斎胲嚺铺?hào)。c) 為支持國(guó)際化合作開發(fā),項(xiàng)目源代碼中不存在任何全角字符,注釋全部采用英文。本項(xiàng)目面向Android設(shè)備開發(fā),為適應(yīng)各種Andrroid手機(jī),須遵循Android應(yīng)用設(shè)計(jì)與設(shè)備獨(dú)立的標(biāo)準(zhǔn),主要指標(biāo)如下:a) 用戶界面元素的大小和位置使用相對(duì)比例(使用android:weight等屬性)或分辨率獨(dú)立單位(dp、sp等單位),對(duì)Android手機(jī)的各種分辨率都有較好的支持。(2)運(yùn)行平臺(tái)1) 最小SDK版本:本系統(tǒng)最小SDK版本為API 10(Android )。4) Android NDK最新版本(非必須)。2) Android ADT最新版本。圖22 項(xiàng)目目錄結(jié)構(gòu) 支撐條件 支撐平臺(tái)(1)開發(fā)平臺(tái)1) Eclipse IDE for Java Developers最新版本。 系統(tǒng)實(shí)現(xiàn)為更加清楚地顯示項(xiàng)目的實(shí)現(xiàn)輪廓,首先給出項(xiàng)目的目錄結(jié)構(gòu),包括類的組成(src目錄)、引用的Jar包(lib目錄)和So共享庫(kù)(lib/armeabi目錄)、XML資源文件(res目錄)等。因此,我們需要?jiǎng)?chuàng)建一個(gè)視圖“車輛登記信息單”,將之與類“車輛登記單”綁定:車輛登記信息單(車牌號(hào),車主姓名,車主電話,時(shí)間,地點(diǎn),車輛登記照片,備注)。表“車輛信息庫(kù)”中的所有信息,將與類“車輛信息庫(kù)”列表中的每一項(xiàng)完好對(duì)應(yīng)。其中(車牌號(hào),時(shí)間,地點(diǎn))為候選碼;車輛登記照片指登記時(shí)拍攝的照片。因?yàn)檐囍餍畔⒉]有其他的用例,并沒有為車主信息建立一個(gè)專用的表。 數(shù)據(jù)庫(kù)設(shè)計(jì)系統(tǒng)涉及兩個(gè)表:1)車輛信息庫(kù)(車牌號(hào),車型,車架號(hào),車主姓名,車主電話,車主性別,車主出生年月,車主駕照號(hào),車輛備案照片,備注)。為了加快有大量圖像綁定車輛信息庫(kù)和車輛登記單的顯示速度,并極大地減少內(nèi)存消耗,將使用新的線程執(zhí)行圖像綁定,并使用較小的圖像緩存而非原圖作為圖像視圖的圖像源。3) 車輛登記記錄編輯頁(yè)類VehicleQueryEditActivity,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取指定ID的車輛登記記錄,顯示在用戶界面上,接受用戶的,妥善暫存、保存用戶的編輯。本系統(tǒng)中分析出來(lái)的主要的類如下:1) 車輛查看頁(yè)類VehicleItemViewActivity,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取指定ID或車牌號(hào)的車輛的信息及其登記記錄列表,顯示在用戶界面上,接收用戶對(duì)車輛信息和車輛登記記錄的菜單操作。用例“瀏覽車輛信息庫(kù)”和“瀏覽車輛登記單”,最后設(shè)計(jì)出的類圖如圖21。于是可以抽象出一個(gè)父類——“車輛列表”,負(fù)責(zé)類“車輛信息庫(kù)”與類“車輛登記單”相同的業(yè)務(wù)邏輯;類“車輛信息庫(kù)”與類“車輛登記單”繼承類“車輛列表”,重寫用戶界面的標(biāo)題和菜單文本等屬性,重寫列表綁定和列表項(xiàng)布局,重寫菜單即可。 程序邏輯設(shè)計(jì)經(jīng)對(duì)需求分析中獲取的交互圖的分析,發(fā)現(xiàn)類“車輛信息庫(kù)”與類“車輛登記單”有幾乎完全相同的交互行為??傮w設(shè)計(jì)中,將依據(jù)需求分析中獲取的交互圖發(fā)現(xiàn)與抽象類,并設(shè)計(jì)其屬性和方法,以實(shí)現(xiàn)程序邏輯。該類更加深入地描述了上一節(jié)中的用例模型。圖20 UI類的交互圖如圖20中所示,我們將類“車輛信息庫(kù)”定為本車輛查詢程序的主入口,由其顯示所有車輛信息的列表;通過(guò)它,可以快速轉(zhuǎn)到其他功能模塊。我們將以一幅相對(duì)完整的交互圖,來(lái)直觀地展示各個(gè)UI類(或功能模塊,在Android中為Activity的子類)之間的關(guān)系。上述順序圖僅僅展示了一個(gè)用例中類與類之間的交互。仔細(xì)分析,可以發(fā)現(xiàn),交互圖中的消息,與用戶界面中的菜單(在Android中有上下文菜單和選項(xiàng)菜單兩種)或可點(diǎn)擊視圖(如列表項(xiàng)、按鈕)等UI控件有良好的對(duì)應(yīng)關(guān)系;用戶在一個(gè)類的上下文中(或在一個(gè)用戶界面下),對(duì)UI控件的操作,即向該類的實(shí)例(對(duì)象)發(fā)送消息;監(jiān)聽用戶動(dòng)作的該對(duì)象獲得這一消息,通過(guò)自身的動(dòng)作(如改變用戶界面的顏色)、調(diào)用其他對(duì)象并獲取返回值(如向數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象請(qǐng)求最新數(shù)據(jù)并顯示在用戶界面)或轉(zhuǎn)到其他類(不再返回)等形式執(zhí)行用戶的命令。類”車輛信息編輯頁(yè)”同樣地向類“數(shù)據(jù)庫(kù)適配器”請(qǐng)求指定的車輛數(shù)據(jù),獲得后將其顯示在用戶界面上并接受用戶的編輯。用戶通過(guò)觸摸某一列表項(xiàng),向類“車輛信息庫(kù)”發(fā)送“查看車輛”的消息;類“車輛信息庫(kù)”將該消息連同該列表項(xiàng)所對(duì)應(yīng)的車輛ID發(fā)送至類“車輛查看頁(yè)”;類“車輛查看頁(yè)”向類“數(shù)據(jù)庫(kù)適配器”請(qǐng)求指定車輛的數(shù)據(jù),獲得后將其顯示在用戶界面并等待用戶的操作。首先,用戶啟動(dòng)系統(tǒng),類“車輛信息庫(kù)”啟動(dòng),并向類“數(shù)據(jù)庫(kù)適配器”請(qǐng)求獲得車輛信息列表數(shù)據(jù)。圖19用例“編輯車輛信息”的順序圖用戶或執(zhí)行者已經(jīng)確定,是保安或巡警。該用例是用例“瀏覽車輛信息庫(kù)”和“查看車輛信息”共有的擴(kuò)展用例;用戶可直接對(duì)車輛信息庫(kù)的某一列表項(xiàng)選擇進(jìn)行編輯,也可以先查看該列表項(xiàng),再選擇進(jìn)行編輯。 交互圖本系統(tǒng)存在大量與用戶的交互,用交互圖(順序圖或協(xié)作圖)來(lái)描述每個(gè)用例中系統(tǒng)與用戶之間的交互,從而進(jìn)一步明確用例的上下文和系統(tǒng)的職責(zé),特別合適。(4)查看車輛查看車輛信息以及與該車特有的登記記錄單。(3)查詢/登記車輛以指定方式(手工或圖像識(shí)別,可在設(shè)置中指定)輸入車牌號(hào)??赏ㄟ^(guò)輸入關(guān)鍵詞快速找到所需車輛登記記錄。每一個(gè)列表項(xiàng)(對(duì)應(yīng)一個(gè)車輛信息),有如下操作:編輯車輛信息,刪除車輛信息,復(fù)制車輛信息(可單獨(dú)復(fù)制信息中的某一項(xiàng)或全部,以供進(jìn)一步處理),短信發(fā)送車輛信息,電話聯(lián)系車主,登記該車(新建一個(gè)車輛登記記錄)。分別描述如下:(1)瀏覽車輛信息庫(kù)以列表形式顯示所有的車輛信息;列表項(xiàng)包括車輛的注冊(cè)圖片,車牌號(hào)、車型、車架號(hào),車主的姓名、聯(lián)系方式、性別、年齡、駕照號(hào),以及備注等內(nèi)容。圖17 系統(tǒng)抽象用例模型細(xì)化并擴(kuò)展以上用例,得到一個(gè)能指導(dǎo)程序開發(fā)中類的設(shè)計(jì)與實(shí)現(xiàn)的詳細(xì)用例模型,用例圖如圖18。圖16 本系統(tǒng)直接用例模型所有上述用例本質(zhì)上,可以抽象為單一用例——保安(巡警)進(jìn)行車輛識(shí)別、登記與信息查詢。直接用例模型表征最原始的角色與場(chǎng)景,沒有作抽象與細(xì)化。 功能需求我們將通過(guò)建立用例模型來(lái)逐步描述、抽象、細(xì)化功能需求。在面向?qū)ο蟮男枨蠓治龇椒ㄖ校琔ML模型圖起到了十分關(guān)鍵的作用。 4 需求分析與設(shè)計(jì)從本章開始,我們將回到緒論中所描述的問(wèn)題,應(yīng)用前面兩章所提供的技術(shù)手段,分析、設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于Android平臺(tái)的車輛信息查詢系統(tǒng)。解決辦法是兩個(gè)項(xiàng)目均使用方式2引用。但在實(shí)踐過(guò)程中發(fā)現(xiàn),在包含JavaCV項(xiàng)目(使用方式2)的同時(shí)引用tesseractandroidtools項(xiàng)目(使用方式1),本項(xiàng)目將在運(yùn)行時(shí)報(bào)錯(cuò),找不到JavaCV中的so文件。庫(kù)項(xiàng)目tesseractandroidtools為本項(xiàng)目使用,有兩種方式:1)本項(xiàng)目直接引用打開的庫(kù)項(xiàng)目(具體見Android官方文檔[27]);2)將庫(kù)項(xiàng)目生成的jar文件和so文件包含至本項(xiàng)目中。l String ()返回UTF8格式的識(shí)別出的文本。l void (int mode)設(shè)置頁(yè)面分割模式,決定OCR引擎在識(shí)別文字之前要作多少處理。它們主要包括:l ()構(gòu)造TessBaseAPI實(shí)例。 OCR引擎的Java接口。圖15 項(xiàng)目tesseractandroidtools的目錄結(jié)構(gòu);目錄jin下存放的是這兩個(gè)庫(kù)的C/C++源文件和編譯指令。開源項(xiàng)目tesseractandroidtools[26]是一個(gè)Android庫(kù)項(xiàng)目[27],提供了用于使用Tesseract OCR和Leptonica圖像處理庫(kù)的一系列Android API和構(gòu)建文件。關(guān)于上述過(guò)程的討論,詳見Tessearct項(xiàng)目第557號(hào)問(wèn)題討論[25]。重要提醒:訓(xùn)練語(yǔ)言包的過(guò)程中,可能會(huì)有這樣或那樣的問(wèn)題。按訓(xùn)練Tesseract3中的步驟://訓(xùn)練Tesseract:tesseract nobatch //計(jì)算字符集:unicharset_extractor //讀取字體屬性:(新建字體屬性文件font_properties,內(nèi)容為“l(fā)pft 0 0 1 0 0”)mftraining F font_properties U unicharset //分類歸并:mftraining F font_properties U unicharset O training //其他文件(數(shù)據(jù)字典、unicharambigs)均不必提供。圖14便能完好地生成72行字符數(shù)據(jù)。因此,我們可以為不連通的字符添上筆畫,使之完全連通。其實(shí),針對(duì)上述問(wèn)題,有一個(gè)簡(jiǎn)單的辦法。如果自動(dòng)生成的盒子文件中的字符能與正確字符良好對(duì)應(yīng)(如本訓(xùn)練圖片中的數(shù)字1在盒子文件中被識(shí)別成了“|”),修改例子文件將非??旖荩恼址纯?;如果一個(gè)字符被tesseract解釋成了多個(gè)字符(如“蘇”被解析成了“艸”和“辦”),在盒子文件中得到了多行記錄,則需要采取一定的手段找到所識(shí)別行與目標(biāo)字符的對(duì)應(yīng)關(guān)系,并合并錯(cuò)誤的行。文件中每一行均為所識(shí)別出的字符、其在訓(xùn)練圖片中的坐標(biāo)(四列分別是左、下、右、下,坐標(biāo)原點(diǎn)為圖片左下角)以及頁(yè)號(hào)(單頁(yè)訓(xùn)練圖片頁(yè)號(hào)恒為0)。首先在計(jì)算機(jī)上安裝Tesseract引擎( )。如圖13(由于警車車牌不在本課題討論范圍之內(nèi),為簡(jiǎn)化操作,未將其包含進(jìn)來(lái))。圖像寬高建議為1056*2000(單位像素),圖像分辨率96dpi,命名為“”。GA 362007 外廓尺寸為440mm140mm的號(hào)牌[1],是最佳的材料。Tesseract為訓(xùn)練過(guò)程提供了一定的支持。因此須為Tesseract OCR引擎訓(xùn)練出專供車牌識(shí)別的語(yǔ)言包。原因在于,國(guó)家車牌字符使用的是一種特殊的字符,以便于區(qū)分。目前該引擎已經(jīng)對(duì)中文識(shí)別有了一定的支持。1995年到2006年間,它沒有大的改進(jìn);之后,它被谷歌大幅改進(jìn),很可能是識(shí)別率最高的可用開源OCR引擎之一了。為了提高識(shí)別率,還可以增加字符與背景的對(duì)比度,并應(yīng)準(zhǔn)偱OCR引擎對(duì)前景背景色的要求。所得的單個(gè)的字符如圖11。判斷方法為:輪廓的外框,高度大于車牌高度的二分之一,且寬度小于車牌寬度的四分之一者,即為車牌字符。圖10 車牌圖像的輪廓//對(duì)車牌圖像進(jìn)行邊緣檢測(cè)cvCanny(licenceImage, plateImageCanny, 128, 255, 3)。(車牌的偏斜矯正一般情況下沒有必要,本文不討論。//接下來(lái):進(jìn)行車牌字符的分割 //TODO: character segmentation on the licence image }}檢測(cè)出的車牌圖像如圖9。amp。//檢查輪廓寬高比 double plate_HWratio = ((double) ()) / ((double) ())。amp。示例代碼如下://獲得多邊形輪廓CvSeq polyContours = cvApproxPoly(contours, (), cvCreateMemStorage(0), CV_POLY_APPROX_DP, cvContourPerimeter(contours) * , 0)。圖8 輪廓圖像(黑色背景上的白色輪廓線,不易觀察) 基于邊緣檢測(cè)的車牌探測(cè)經(jīng)檢測(cè),提取的圖像輪廓中有約1800個(gè)獨(dú)立輪廓區(qū)域。圖7 二值圖像 從二值圖像中提取輪廓CvSeq contours = new CvSeq()。cvEqualizeHist(vehicleImageGray, vehicleImageGray)。圖4 原始車輛圖像 將原始圖像轉(zhuǎn)化為灰階圖像cvCvtColor(mVehicleImage, vehicleImageGray, CV_BGR2GRAY)。本課題采用基于邊緣檢測(cè)的車牌探測(cè)技術(shù)。該技術(shù)涉及神經(jīng)網(wǎng)絡(luò)等算法,限于知識(shí)水平,暫不研究。具體請(qǐng)參照項(xiàng)目主頁(yè)的介紹。作為本項(xiàng)目的引用包;,即完成了對(duì)JavaCV庫(kù)引用。JavaCV開源項(xiàng)目
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1