版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-2"\h\u32060第一章研究背景及意義 34508第二章Android系統(tǒng)相關(guān)知識(shí)介紹 4169322.1Android系統(tǒng)的誕生與發(fā)展 45822.2Android系統(tǒng)框架 4155182.3Android優(yōu)缺點(diǎn) 634682.4Android編譯環(huán)境搭建 72644第三章算法解析 9140733.1算法理論介紹 9130563.2算法java實(shí)現(xiàn) 1014393第四章仿真實(shí)驗(yàn)及分析 12325324.1程序演示及分析 1280964.2重難點(diǎn)及解決方案 15134614.3關(guān)鍵代碼 1720505第五章總結(jié)與收獲 2029651參考文獻(xiàn) 2221885附錄 23基于安卓平臺(tái)的圖像引導(dǎo)濾波算法的實(shí)現(xiàn)研究背景及意義在計(jì)算機(jī)視覺(jué)和計(jì)算機(jī)圖形學(xué)中大多數(shù)程序都牽涉到通過(guò)圖像濾波來(lái)降低噪音或者提取有用的圖像結(jié)構(gòu)來(lái)對(duì)圖片進(jìn)行相應(yīng)優(yōu)化的思想。一些簡(jiǎn)單的線性平滑濾波算法如高斯濾波器,拉普拉斯算子過(guò)濾器,索貝爾過(guò)濾器廣泛的應(yīng)用于圖像模糊,圖像銳化,邊緣檢測(cè)和特征提取等方面。但是線性平滑濾波過(guò)濾器的濾波核是固定不變,獨(dú)立于任何圖像內(nèi)容。但在許多情況下,我們可能希望在過(guò)濾過(guò)程中將給定的引導(dǎo)圖像額外的信息體現(xiàn)出來(lái)。第一種解決方案就是通過(guò)考慮引導(dǎo)圖像優(yōu)化算法所執(zhí)行的二次方程,這種解決方案是通過(guò)處理以引導(dǎo)圖像信息編碼的大型稀疏矩陣,這些非齊次的矩陣隱含了變動(dòng)的濾波核。這種處理方法廣泛的應(yīng)用在許多應(yīng)用比如;著色,摳圖,多次度分解和圖片消霧中。另外的一種方法通過(guò)引導(dǎo)圖像生成濾波核。比如雙邊濾波器可以實(shí)現(xiàn)平滑濾波的同時(shí)還能具有良好的邊緣保持性能,但是會(huì)產(chǎn)生一些額外的梯度逆轉(zhuǎn)偽影。而由微軟亞洲研究院何愷明博士提出的一種圖像引導(dǎo)濾波算法[[]引自kaiminghe,JianSun,xiaoou,Tang《guideimagefilter》2]。這種算法本質(zhì)上是引導(dǎo)圖像的線性轉(zhuǎn)換。該算法能夠像雙邊濾波算法一樣較好的實(shí)現(xiàn)平滑濾波還能具有良好的邊緣保持性能,而且不產(chǎn)生梯度逆轉(zhuǎn)偽影。而且他也和拉普拉斯矩陣相關(guān),也是在平滑濾波方法中可被接受的一種理念,圖像引導(dǎo)濾波算法計(jì)算與濾波核的大小無(wú)關(guān)。此外,引導(dǎo)濾波器對(duì)于灰階圖和彩色圖都有精確地算法,在大量的應(yīng)用中實(shí)驗(yàn)證明圖像引導(dǎo)濾波算法在效果和效率上有很不錯(cuò)的表現(xiàn)。[]引自kaiminghe,JianSun,xiaoou,Tang《guideimagefilter》2隨著android手機(jī)的普及,各式各樣的應(yīng)用層出不窮,但是在手機(jī)圖像方面人們往往希望在手機(jī)屏幕中顯示更為絢麗清晰的圖像。但是目前很多高像素手機(jī)拍攝出來(lái)的照片因?yàn)橄鄼C(jī)硬件問(wèn)題,光照,抖動(dòng)等各種因素照成不如人意的圖片。如果能夠在手機(jī)上直接對(duì)剛生成的圖片進(jìn)行相應(yīng)的處理和優(yōu)化那無(wú)疑是對(duì)手機(jī)拍照功能的一大補(bǔ)充。針對(duì)這一情況,本次課題的目的是在Android手機(jī)平臺(tái)上使用圖像引導(dǎo)濾波算法實(shí)現(xiàn)對(duì)圖像的優(yōu)化及處理。Android系統(tǒng)相關(guān)知識(shí)介紹2.1Android系統(tǒng)的誕生與發(fā)展2003年10月,有“Android之父”之稱的AndyRubin在美國(guó)加利福尼亞州帕洛阿爾托創(chuàng)建了Android科技公司.2005年8月17日,Google收購(gòu)了Android科技公司,Android科技公司成為Google旗下的一部分。之后,魯賓著手負(fù)責(zé)開發(fā)基于Linux內(nèi)核的移動(dòng)操作系統(tǒng)即后來(lái)的Android操作系統(tǒng)。2007年11月5日,在Google的領(lǐng)導(dǎo)下,手持設(shè)備聯(lián)盟(OpenHandsetAlliance)成立,第一批成員包括Broadcom公司、HTC、Intel、LG、Marvell等公司。開放手持設(shè)備聯(lián)盟的創(chuàng)建目的是為了創(chuàng)建一個(gè)更加開放自由的移動(dòng)電話環(huán)境。也在同一日,手持設(shè)備聯(lián)盟聯(lián)盟對(duì)外展示了他們的第一個(gè)產(chǎn)品:一部搭載了以Linux2.6為內(nèi)核基礎(chǔ)的Android操作系統(tǒng)的智能手機(jī)。后來(lái)新一批成員陸續(xù)加入聯(lián)盟,同時(shí),一個(gè)負(fù)責(zé)持續(xù)發(fā)展Android操作系統(tǒng)的開源代碼項(xiàng)目成立了AOSP(AndroidOpenSourceProject)。除了開放手持設(shè)備聯(lián)盟之外,Android還擁有全球各地開發(fā)者組成的開源社區(qū)來(lái)專門負(fù)責(zé)開發(fā)Android應(yīng)用程序和第三方Android操作系統(tǒng)來(lái)延長(zhǎng)和擴(kuò)展Android的功能和性能。[[],24.5.2013[],24.5.20132.2Android系統(tǒng)框架如圖2-1所示Android系統(tǒng)架構(gòu)為四層結(jié)構(gòu),從上層到下層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層以及Linux內(nèi)核層。圖2-1Android系統(tǒng)的應(yīng)用層主要是開發(fā)人員使用JAVA語(yǔ)言進(jìn)行開發(fā)的一些具有特定功能的應(yīng)用,如照相機(jī),瀏覽器,短信發(fā)送程序以及一些小游戲等應(yīng)用。Android系統(tǒng)的應(yīng)用框架層是開發(fā)人員從事Android開發(fā)的基礎(chǔ),很多核心應(yīng)用程序也是通過(guò)這一層來(lái)實(shí)現(xiàn)其核心功能的,該層簡(jiǎn)化了組件的重用,開發(fā)人員可以直接使用應(yīng)用框架層所提供的組件來(lái)進(jìn)行應(yīng)用程序開發(fā),也可以通過(guò)重寫而實(shí)現(xiàn)個(gè)性化的拓展。Android系統(tǒng)的系統(tǒng)運(yùn)行庫(kù)層可以分成兩部分,分別是系統(tǒng)庫(kù)和Android運(yùn)行時(shí)庫(kù)。其中系統(tǒng)庫(kù)中主要的庫(kù)有[[]/,24.5.2013[]/,24.5.2013MediaFramework:多媒體庫(kù),基于PacketVideoOpenCore;支持多種常用的音頻、視頻格式錄制和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。SQLite:小型的關(guān)系型數(shù)據(jù)庫(kù)引擎。OpenGL|ES:根據(jù)OpenGLES1.0API標(biāo)準(zhǔn)實(shí)現(xiàn)的3D繪圖函數(shù)庫(kù)。FreeType:提供點(diǎn)陣字與向量字的描繪與顯示。WebKit:一套網(wǎng)頁(yè)瀏覽器的軟件引擎。SGL:底層的2D圖形渲染引擎。Libc:從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù),專門為基于embeddedlinux的設(shè)備定制。Android應(yīng)用程序時(shí)庫(kù)采用Java語(yǔ)言編寫,程序在Android運(yùn)行時(shí)中執(zhí)行,其運(yùn)行時(shí)分為核心庫(kù)和Dalvik虛擬機(jī)兩部分:核心庫(kù):提供了Java語(yǔ)言API中的大多數(shù)功能,同時(shí)也包含了Android的一些核心API,如android.os、、android.media等等。Dalvik虛擬機(jī):Dalvik虛擬機(jī)是一種基于寄存器的Java虛擬機(jī),而不是傳統(tǒng)的基于棧的虛擬機(jī),并進(jìn)行了內(nèi)存資源使用的優(yōu)化以及支持多個(gè)虛擬機(jī)的特點(diǎn)。Android系統(tǒng)的內(nèi)核層是基于Linux2.6內(nèi)核,其核心系統(tǒng)服務(wù)如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型都依賴于Linux內(nèi)核。2.3Android優(yōu)缺點(diǎn)優(yōu)點(diǎn)一:開放性Google公司將Android系統(tǒng)的源代碼對(duì)外開放意味著允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來(lái)。因?yàn)锳ndroid的開源,專業(yè)人士可以利用開放的源代碼來(lái)進(jìn)行二次開發(fā),打造出個(gè)性化的Android。例如中國(guó)的MIUI就是基于Android2.3原生系統(tǒng)深度開發(fā)的Android系統(tǒng),其與原生系統(tǒng)相比有了較大的改動(dòng)。而且開放性可以縮短開發(fā)周期,降低開發(fā)成本。如此一來(lái)跟有利于Android的發(fā)展[[]李芙蓉.當(dāng)前智能手機(jī)操作系統(tǒng)及其比較分析[J].信息技術(shù),2008優(yōu)點(diǎn)二:用戶自由度更高Android操作系統(tǒng)給予了用戶跟高的自由度,熟悉Android的都清楚:用戶可以根據(jù)自己的喜好來(lái)設(shè)置手機(jī)界面,Android的應(yīng)用市場(chǎng)甚至上還有各式各樣的啟動(dòng)器來(lái)供用戶自己選擇,讓自己的手機(jī)與眾不同。例如,用戶要是喜歡HTC的操作界面,便馬上可以在應(yīng)用市場(chǎng)上找到,甚至還能模仿IOS的界面。相比于IOS操作系統(tǒng),Iphone手機(jī)只有一成不變的手機(jī)界面,不能對(duì)其進(jìn)行更改。優(yōu)點(diǎn)三:大量Android應(yīng)用程序正是因?yàn)锳ndroid平臺(tái)的開放性,吸引了大量的開發(fā)人員進(jìn)行應(yīng)用程序開發(fā)。從而使android應(yīng)用程序數(shù)量快速上升。截止去年10月30日,Android應(yīng)用首次超過(guò)ios應(yīng)用達(dá)到71.3萬(wàn).缺點(diǎn)一:安全問(wèn)題由于Android系統(tǒng)的開源以及快速的發(fā)展以及審核機(jī)制的不完善導(dǎo)致Android市場(chǎng)上出現(xiàn)了一些惡意軟件。2009年11月10日Android平臺(tái)出現(xiàn)第一個(gè)惡意間諜軟件:Mobile
Spy。2010年8月12日,出現(xiàn)了第一個(gè)木馬病毒:Trojan-SMS.AndroidOS.FakePlayer.a[楊豐盛Android
應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010楊豐盛Android
應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010缺點(diǎn)二:用戶體驗(yàn)不一因?yàn)锳ndroid系統(tǒng)的流暢運(yùn)行需要硬件支持。而手機(jī)廠商對(duì)于Android的定制多種多樣,導(dǎo)致了一些高配置手機(jī)上Android的運(yùn)行流暢度良好,而低配置手機(jī)運(yùn)行緩慢。缺點(diǎn)三:程序平均質(zhì)量不高隨著Android系統(tǒng)的開源,越來(lái)越多的手機(jī)廠商在智能手機(jī)上使用Android手機(jī),Android手機(jī)應(yīng)用開發(fā)者也越來(lái)越多,Android應(yīng)用程序的數(shù)量也在快速上升。但是Android程序開發(fā)者的開發(fā)水平難免良莠不齊。在高端應(yīng)用上,相較于蘋果應(yīng)用,Android應(yīng)用程序因?yàn)槠渥陨矶酁槊赓M(fèi)程序,許多應(yīng)用功能強(qiáng)大Android應(yīng)用程序的為了商業(yè)用途難免在應(yīng)用程序中夾雜許多推送廣告,引起人們的反感。2.4Android編譯環(huán)境搭建2.4.1JDK安裝與配置 在網(wǎng)頁(yè)/down/html/43205.html中下載相應(yīng)版本的JDK安裝文件,解壓之后按照提示進(jìn)行安裝。新版本的JDK在安裝過(guò)程中將自置JDK環(huán)境變量,安裝后打開cmd窗口,在命令行中輸入java(此處有空格)-version查看JDK版本信息,若顯示版本信息則說(shuō)明安裝成功,若顯示錯(cuò)誤,請(qǐng)先確認(rèn)環(huán)境變量是否設(shè)置。以Windows7系統(tǒng)為例,假設(shè)JDK安裝路徑在C:\ProgramFiles\Java\jdk1.6.0_31,進(jìn)入計(jì)算機(jī)—>高級(jí)系統(tǒng)設(shè)置—>環(huán)境變量—>系統(tǒng)變量中90點(diǎn)擊新建,在變量名中輸入classpath,變量值為C:\ProgramFiles\Java\jdk1.6.0_31\lib\dt.jar;C:\ProgramFiles\Java\jdk1.6.0_31\lib\tools.jar;2.點(diǎn)擊新建,在變量名中輸入JAVA_HOME,變量值為C:\ProgramFiles\Java\jdk1.6.0_313.找到path選項(xiàng),在變量值后面添加C:\ProgramFiles\Java\jdk1.6.0_31\bin記得用“;”和前面隔開。配置完成后再輸入java-version進(jìn)行測(cè)試。2.4.2eclipse安裝與配置進(jìn)入/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-java-juno-SR2-win32.zip網(wǎng)頁(yè)中并下載eclipse進(jìn)行解壓,解壓后可直接使用,進(jìn)入eclipse主界面在主界面上方點(diǎn)擊help->InstallNewSoftware,點(diǎn)擊add在name中隨意輸入名字,location中輸入/android/eclipse,確定返回后選中developtools下載并安裝相應(yīng)組件。2.4.3SDK在網(wǎng)上搜索并下載SDK,將其解壓后的文件所在目錄配置到菜單window->preferences->android->SDKlocation.,因?yàn)镾DK可能存在過(guò)時(shí),要進(jìn)行文件更新才能正常使用。點(diǎn)擊eclipse界面的androidSDKManager,為了方便選擇,將顯示的所有安裝文件選中并開始下載安裝。2.4.4創(chuàng)建AVD因?yàn)閍ndroid系統(tǒng)是建立在Linux操作系統(tǒng)基礎(chǔ)上。所以編寫好的android程序不能直接在windows系統(tǒng)下運(yùn)行。因此我們需要搭建一個(gè)模擬的平臺(tái)來(lái)測(cè)試安卓程序的運(yùn)行。在eclipse主界面選中androidvirtualdevicemanager,在顯示的界面中點(diǎn)擊new設(shè)置主要參數(shù)。主要包括AVD的name,device,target(虛擬機(jī)的版本)。其他參數(shù)當(dāng)有需要時(shí)可以自行設(shè)定。至此關(guān)于android開發(fā)的平臺(tái)搭建完畢。算法解析3.1算法理論介紹在圖像引導(dǎo)濾波算法中,首先明確一個(gè)概念,輸出圖像Q是輸入圖像P和引導(dǎo)圖像I進(jìn)行線性變換的結(jié)果。輸入圖像P和引導(dǎo)圖像I都是已知量,而且兩者可以完全相同。輸入圖像P的像素點(diǎn)i的值在經(jīng)過(guò)處理之后生成一個(gè)加權(quán)平均數(shù)并成為輸出圖像Q的像素點(diǎn)i;公式SEQ公式\*ARABIC1在本函數(shù)中,i和j都代表像素的索引,濾波核Wij是輸入圖像I的函數(shù)并且與P無(wú)關(guān)。但是濾波器是與P線性相關(guān)的。我們假設(shè)q是I在以像素K為中心的小窗口WK上進(jìn)行線性變換的結(jié)果。則有以下函數(shù)公式SEQ公式\*ARABIC2其中(ak,bk)是在窗口Wk中恒定不變的線性參數(shù)。我們使用一個(gè)半徑為R的正方形窗口。這個(gè)線性模型確保僅當(dāng)引導(dǎo)圖像I有邊緣時(shí)q才有邊緣。因?yàn)椋?q=a?I。這個(gè)模型已經(jīng)在多個(gè)應(yīng)用中證明是可行的比如,摳圖,圖像超分辨率,和清除迷霧。為了確定這些線性參數(shù),我們尋找一種解決方案來(lái)最小化輸出圖像q和輸入圖像p之間的差別。尤其的,我們列出下面的函數(shù) 公式SEQ公式\*ARABIC3在本函數(shù)中,ε是一個(gè)不變的參數(shù)用來(lái)防止ak的值過(guò)大,本函數(shù)通過(guò)計(jì)算得到答案 公式SEQ公式\*ARABIC4 公式SEQ公式\*ARABIC5在上述函數(shù)中,是引導(dǎo)圖像I在窗口WK中的平均值,是引導(dǎo)圖像I在窗口WK的方差,是在窗口WK里面的像素?cái)?shù)目,是p在窗口WK的平均值。下面,我們將線性模型應(yīng)用于整個(gè)圖片中的局部窗口,然而像素I可能包含在許多WK中,所以在函數(shù)1中的值在不同窗口計(jì)算出來(lái)的值不相同。一個(gè)簡(jiǎn)單的方法就是計(jì)算出所有qi可能值的平均數(shù)。所以當(dāng)計(jì)算出圖片中每個(gè)模塊的(ak.bk),我們計(jì)算輸出濾波器 公式SEQ公式\*ARABIC6 公式7 公式8至此輸出圖像q的像素點(diǎn)i的值生成。循環(huán)重復(fù)計(jì)算每個(gè)像素點(diǎn),從像素點(diǎn)擴(kuò)散到全圖,就生成了輸出圖像q[[]引自kaiminghe,JianSun,xiaoou,Tang《guideimagefilter》4][]引自kaiminghe,JianSun,xiaoou,Tang《guideimagefilter》43.2算法java實(shí)現(xiàn)眾所周知圖像格式多種多樣,在本程序中,我們僅為了研究算法,不對(duì)圖片格式進(jìn)行細(xì)化分析。暫時(shí)對(duì)以bmp為代表的彩色24位圖片進(jìn)行處理。此類圖片的存儲(chǔ)方式可看為一個(gè)三維數(shù)組,其中變量i和j代表圖片的像素的索引,當(dāng)i,j確定時(shí)即可確定一個(gè)像素點(diǎn)k,k的值包括透明度alpha,紅色值R,綠色值G藍(lán)色值B,其中alpha,R,G,B都為0到255的整數(shù),為了方便算法的實(shí)現(xiàn),我們單獨(dú)講所有的R值,G值,B值取出來(lái)形成三個(gè)新的灰階二維數(shù)組分別進(jìn)行處理。[[]引自wilhelmBurgerMarkJ.Burge《數(shù)字圖像處理java語(yǔ)言算法描述》清華大學(xué)出版社首先打開程序,點(diǎn)擊按鈕并瀏覽選擇要優(yōu)化的圖片I。程序中為了方便,將輸入圖像I與引導(dǎo)圖像P設(shè)為同一張圖的,既將輸入圖像I的值賦給引導(dǎo)圖像P。然后設(shè)定小窗口半徑r為16(此處可發(fā)散開來(lái)讓用戶自己選擇喜歡的半徑,但不宜過(guò)大,)以及定義一個(gè)浮點(diǎn)型小數(shù)并賦值,該小數(shù)作用等同于上文公式中的ε。首先將圖片I,P中的數(shù)據(jù)提取成4個(gè)二維數(shù)組分別表示alpha值的數(shù)組,R值的數(shù)組,G值的數(shù)組,B值的數(shù)組,注意因?yàn)閍lpha值不參與運(yùn)算,因此提取后不作處理。下面以R值的二維數(shù)組運(yùn)算過(guò)程來(lái)表現(xiàn)算法。首先定義方法boxfilter該方法輸入?yún)?shù)為一個(gè)浮點(diǎn)型二維數(shù)組a和一個(gè)整型r,返回值是一個(gè)浮點(diǎn)型的二維數(shù)組。方法實(shí)現(xiàn)的功能是計(jì)算一個(gè)二維數(shù)組a在半徑為r的小窗口的所有值之和sum,隨著小窗口的移動(dòng),sum的值也不斷發(fā)生變化,生成一個(gè)新的二維數(shù)組[[][]引自/,24.5.2013float[][]N=newBoxfilter().boxfilter(p,r);//此時(shí),數(shù)組N即函數(shù)4中|W|表示該窗口所有像素個(gè)數(shù)之和float[][]mean_I=newOperation().Division(newBoxfilter().boxfilter(a,r),N);//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值平均數(shù)float[][]mean_p=newOperation().Division(newBoxfilter().boxfilter(b,r),N);//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值平均數(shù)float[][]mean_Ip=newOperation().Division(newBoxfilter().boxfilter(newOperation().multiplication(a,b),r),N);float[][]cov_Ip=newOperation().subtraction(mean_Ip,newOperation().multiplication(mean_I,mean_p));//獲得二維數(shù)組I與P的協(xié)方差float[][]mean_II=newOperation().Division(newBoxfilter().boxfilter(newOperation().multiplication(a,a),r),N);float[][]var_I=newOperation().subtraction(mean_II,newOperation().multiplication(mean_I,mean_I));//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值方差float[][]A=newOperation().Division(cov_Ip,newOperation().add(var_I,eps));float[][]B=newOperation().subtraction(mean_p,newOperation().multiplication(A,mean_I));//獲取所有小窗口的值(a,b)所構(gòu)成的二維數(shù)組A,Bfloat[][]mean_b=newOperation().Division(newBoxfilter().boxfilter(B,r),N);float[][]q=newOperation().add_a(newOperation().multiplication(mean_a,a),mean_b);//生成輸出圖像q其中Boxfilter(double[][]I,r)方法實(shí)現(xiàn)效果是計(jì)算輸入的參數(shù)二維矩陣I在以輸入?yún)?shù)r為半徑的小窗口中的所有值之和。Operation()是定義的操作類,Division是定義的操作方法,表示行列相等的兩個(gè)數(shù)組之間相應(yīng)位置的值相除,a和b在這里分別表示傳入方法的輸入圖像的R值二維數(shù)組與引導(dǎo)圖像R值二維數(shù)組。實(shí)際上,在此處存在一下關(guān)系:float[][]mean_p=mean_I;將以上代碼分別與論文中參數(shù)對(duì)應(yīng)起來(lái)就有:mean_I對(duì)應(yīng),表示圖像I在窗口Wk里的平均值。mean_p對(duì)應(yīng)表示圖像p在窗口Wk里的平均值。Cov_IP對(duì)應(yīng),表示圖像I與圖像P的協(xié)方差。var_I對(duì)應(yīng),表示I在窗口Wk里的方差。A對(duì)應(yīng)ak,B對(duì)應(yīng)bk,q對(duì)應(yīng)函數(shù)中的qi;至此,圖像引導(dǎo)濾波算法基本完成。仿真實(shí)驗(yàn)及分析4.1程序演示及分析在手機(jī)上啟動(dòng)照相機(jī)現(xiàn)場(chǎng)拍攝一張圖片。啟動(dòng)編寫好的Myguidefilter應(yīng)用。選擇剛才拍攝的圖片并顯示在手機(jī)屏幕上拖動(dòng)滑動(dòng)條,根據(jù)滑動(dòng)條的移動(dòng)手機(jī)屏幕將顯示不同效果的照片。算法結(jié)構(gòu)圖如下:賦值賦值轉(zhuǎn)換轉(zhuǎn)換P_R,P_G,P_B三個(gè)二維數(shù)組輸入圖像I引導(dǎo)圖像P三維矩陣三維矩陣I_R,I_G,I_B三個(gè)二維數(shù)組分別使用圖像引導(dǎo)濾波算法運(yùn)算輸出生成圖像q轉(zhuǎn)換轉(zhuǎn)換圖3-1下面四幅圖是滑動(dòng)條在滑動(dòng)過(guò)程中生成的結(jié)果展示圖。圖像增強(qiáng)核心計(jì)算公式是: I_enhanced=(I-q)*progress+q;公式9其中I_hancement是結(jié)果圖片,I是輸入圖片,q是通過(guò)圖像引導(dǎo)濾波算法生成圖片,progress是滑動(dòng)條滑動(dòng)中產(chǎn)生的值。很明顯有以下結(jié)論:當(dāng)progress=1時(shí),I_enhanced=I,輸出圖像為原圖。如圖3-2;當(dāng)progress=0時(shí),I_enhanced=q;輸出圖像為圖像引導(dǎo)濾波輸出圖像。如圖3-3;經(jīng)多次測(cè)試,當(dāng)progress=5,輸出圖像為增強(qiáng)圖像。如圖3-4,此時(shí)給人的視覺(jué)效果最好。若progress取值過(guò)大progress=10,輸出圖像為增強(qiáng)圖像如圖3-5,圖像視覺(jué)效果反而降低。圖3-2 圖3-3圖3-4 圖3-54.2重難點(diǎn)及解決方案在安卓上實(shí)現(xiàn)圖像引導(dǎo)濾波算法中遇到了各種各樣的問(wèn)題,通過(guò)網(wǎng)上搜索解決方案和咨詢同學(xué)解決了大部分,現(xiàn)在我將我在實(shí)現(xiàn)過(guò)程中所遇到的比較突出的重點(diǎn)難點(diǎn)展示出來(lái):重難點(diǎn)一:如何將圖像信息轉(zhuǎn)換為數(shù)組并進(jìn)行處理。解決方案:android開發(fā)環(huán)境中刪除了java開發(fā)包中關(guān)于AWT的組件的許多功能。因此不能使用原有java開發(fā)包中提供的getred()等方法,但是android同時(shí)提供了更符合android環(huán)境的開發(fā)工具包??烧{(diào)用android.graphics.Color包中Getpixel(j,i)[[][]引自android圖片處理總結(jié)24.5.2013重難點(diǎn)二:boxfilter()的功能實(shí)現(xiàn)解決方案:boxfilter()實(shí)現(xiàn)的功能是輸入?yún)?shù)二維像素矩陣a[][],以及小窗口半徑r,計(jì)算出二維矩陣在以像素點(diǎn)k為中心以r為半徑的小窗口中的所有值之和。在實(shí)現(xiàn)該功能的時(shí)候首先要確定一點(diǎn),隨著小窗口的k的變動(dòng),小窗口所包括的像素點(diǎn)值之和是在不斷變化的,而且當(dāng)像素點(diǎn)k接近二維像素矩陣所構(gòu)成的邊緣時(shí),小窗口的半徑也會(huì)發(fā)生變化,保持小窗口不會(huì)超出像素矩陣所構(gòu)成的窗口中。所以常規(guī)的做法是在四重嵌套for循環(huán)中分條件計(jì)算出最后值,也在網(wǎng)絡(luò)上查詢了相關(guān)信息,嘗試過(guò)使用積分圖[[][]Franklin,Crow.Summed-AreaTablesforTextureMapping.ComputerSciencesLaboratory:XeroxPaloAltoResearch重難點(diǎn)三:用算法處理之后的矩陣轉(zhuǎn)換為圖片。解決方案:和重難點(diǎn)一類似,android中都提供了類似的方法可供開發(fā)人員調(diào)用,查詢相應(yīng)的API可以獲得方法細(xì)節(jié)。但是實(shí)際處理是存在一個(gè)問(wèn)題,經(jīng)過(guò)算法計(jì)算出來(lái)的像素值存在為負(fù)或大于1的情況。而android開放的API中只有使用范圍是0-255的整形值才能反向生成某一具體像素點(diǎn)的color值,通過(guò)每個(gè)像素乘以255然后強(qiáng)制轉(zhuǎn)換成整形,并將大于255的值全部設(shè)為255,小于0的像素值全部設(shè)為0,這樣在存在誤差的情況下總體上保證了程序功能的實(shí)現(xiàn)。重難點(diǎn)四:內(nèi)存不足,數(shù)組計(jì)算耗時(shí)較久解決方案:當(dāng)程序大致完成主要功能之后運(yùn)行時(shí)發(fā)現(xiàn)因?yàn)閳D片過(guò)大,同時(shí)一些必要的數(shù)組計(jì)算產(chǎn)生的中間變量及結(jié)果變量浪費(fèi)大量?jī)?nèi)存,而java自身的內(nèi)存回收機(jī)制詳細(xì)介紹Java的內(nèi)存管理與內(nèi)存泄露詳細(xì)介紹Java的內(nèi)存管理與內(nèi)存泄露4.3關(guān)鍵代碼4.3.1讀取圖像及壓縮顯示buttonLoadImage.setOnClickListener(newView.OnClickListener(){ publicvoidonClick(Viewarg0){ Intenti=newIntent(Intent.ACTION_PICK,vider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i,RESULT_LOAD_IMAGE); }}); //添加監(jiān)聽(tīng)器,當(dāng)點(diǎn)擊按鈕時(shí)觸發(fā)protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){//相應(yīng)事件 super.onActivityResult(requestCode,resultCode,data); if(requestCode==RESULT_LOAD_IMAGE&&resultCode==RESULT_OK&&null!=data){ UriselectedImage=data.getData(); String[]filePathColumn={MediaStore.Images.Media.DATA};Cursorcursor=getContentResolver().query(selectedImage,filePathColumn,null,null,null);//獲取圖像文件目錄 cursor.moveToFirst(); intcolumnIndex=cursor.getColumnIndex(filePathColumn[0]); Stringimgpath=cursor.getString(columnIndex); cursor.close();} //獲取圖片在SD卡中路徑imgpath Intentintent=newIntent(Loadimg.this,MainActivity.class); intent.putExtra("path",imgpath); startActivity(intent);//將圖像路徑值從Loadimg這個(gè)Activity傳到MainActivity。 Bundleextras=getIntent().getExtras(); Stringpath=extras.getString("path");//接受圖像路徑path值BitmapFactory.Optionsoptions=newBitmapFactory.Options(); options.inJustDecodeBounds=false; options.inSampleSize=8;//width,hight設(shè)為原來(lái)的四分之一 bm=BitmapFactory.decodeFile(path,options);//顯示壓縮圖片4.3.2讀取bitmap圖片的值并分別賦值給三個(gè)二維數(shù)組 for(inti=0;i<height;i++){ for(intj=0;j<width;j++){ intcolor=bm.getPixel(j,i); a[i*width+j]=Color.red(color)/255.0; b[i*width+j]=Color.green(color)/255.0; c[i*width+j]=Color.blue(color)/255.0; }} 4.3.3算法的實(shí)現(xiàn)代碼float[][]N=newBoxfilter().boxfilter(p,r);此時(shí),數(shù)組N即函數(shù)4中|W|表示該窗口所有像素個(gè)數(shù)之和float[][]mean_I=newOperation().Division(newBoxfilter().boxfilter(a,r),N);//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值平均數(shù)float[][]mean_p=newOperation().Division(newBoxfilter().boxfilter(b,r),N);//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值平均數(shù)float[][]mean_Ip=newOperation().Division(newBoxfilter().boxfilter(newOperation().multiplication(a,b),r),N);float[][]cov_Ip=newOperation().subtraction(mean_Ip,newOperation().multiplication(mean_I,mean_p));//獲得二維數(shù)組I與P的協(xié)方差float[][]mean_II=newOperation().Division(newBoxfilter().boxfilter(newOperation().multiplication(a,a),r),N);float[][]var_I=newOperation().subtraction(mean_II,newOperation().multiplication(mean_I,mean_I));//獲得二維數(shù)組I在以r為半徑大小的小窗口中的像素值方差float[][]A=newOperation().Division(cov_Ip,newOperation().add(var_I,eps));float[][]B=newOperation().subtraction(mean_p,newOperation().multiplication(A,mean_I));//獲取所有小窗口的值(a,b)所構(gòu)成的二維數(shù)組A,Bfloat[][]mean_b=newOperation().Division(newBoxfilter().boxfilter(B,r),N);float[][]q=newOperation().add_a(newOperation().multiplication(mean_a,a),mean_b);//生成輸出圖像q將輸出三維矩陣轉(zhuǎn)換為圖像for(i=0;i<height;i++){ for(j=0;j<width;j++){ newR=(int)(a[i][j][0]*255); newG=(int)(a[i][j][1]*255); newB=(int)(a[i][j][2]*255); newR=Math.min(255,Math.max(0,newR)); newG=Math.min(255,Math.max(0,newG)); newB=Math.min(255,Math.max(0,newB)); intcolor=newColor().rgb(newR,newG,newB); pixels[i*width+j]=color; newR=0; newG=0; newB=0; } }Bitmapbitmap=Bitmap.createBitmap(pixels,width,height,Bitmap.Config.RGB_565);總結(jié)與收獲本論文對(duì)圖像引導(dǎo)濾波算法的實(shí)現(xiàn)完成了開始定下的目標(biāo),能夠?qū)崟r(shí)讀取手機(jī)上的圖片文件并通過(guò)對(duì)滑動(dòng)條的操作實(shí)現(xiàn)圖片的優(yōu)化,在優(yōu)化過(guò)程中采用了圖像引導(dǎo)濾波算法實(shí)現(xiàn)了對(duì)圖片的優(yōu)化。但是在程序中也存在了一些問(wèn)題還沒(méi)解決或者還可以進(jìn)行深度研究。尤其是關(guān)于數(shù)組運(yùn)算與android程序內(nèi)存節(jié)約問(wèn)題任然可以進(jìn)行相應(yīng)改良優(yōu)化。在本對(duì)圖像引導(dǎo)濾波算法的學(xué)習(xí)與android程序的編寫過(guò)程中,通過(guò)自己網(wǎng)上搜尋所遇到問(wèn)題的解決方案,我獲益匪淺。首先,在對(duì)圖像引導(dǎo)濾波算法的學(xué)習(xí)過(guò)程中,我了解到關(guān)于濾波器的定義以及相關(guān)的種類,算法。也參考過(guò)其他的關(guān)于圖像銳化,模糊,浮雕效果,懷舊,底片效果的資料并了解大致算法。其次在學(xué)習(xí)算法的過(guò)程中,為了了解算法中每個(gè)參數(shù),每個(gè)公式的含義,通過(guò)在網(wǎng)上收索得到公式的數(shù)學(xué)變換方式發(fā)現(xiàn)所有理論知識(shí)的堆積只是為了計(jì)算出一個(gè)看似簡(jiǎn)單的數(shù)學(xué)協(xié)方差公式。第一次領(lǐng)悟到數(shù)學(xué)微積分在計(jì)算機(jī)領(lǐng)域的作用。其次,為了編寫這個(gè)android程序,我第一次以開發(fā)者身份初步的接觸android系統(tǒng)而非使用者,在開發(fā)不斷地遇到問(wèn)題與解決問(wèn)題的過(guò)程中學(xué)到了android開發(fā)的一些基礎(chǔ)性知識(shí),為將來(lái)android的深一步學(xué)習(xí)打下了基礎(chǔ)。致謝在論文即將交付之際,我要感謝所有曾經(jīng)在學(xué)習(xí)上和生活中給予過(guò)我?guī)椭睦蠋熀屯瑢W(xué)們。尤其要感謝我的指導(dǎo)老師呂鳳齊呂老師,呂老師不僅給予我項(xiàng)目的題目,更是為我明確了項(xiàng)目研究的大方向。呂鳳齊老師不僅從單純的技術(shù)方法上對(duì)我進(jìn)行指導(dǎo),同時(shí)也鼓勵(lì)我通過(guò)自己的方式在網(wǎng)上和書籍中獲得相應(yīng)的答案。在獲取問(wèn)題答案的過(guò)程中我學(xué)到的遠(yuǎn)比在論文中體現(xiàn)的還要多得多。呂鳳齊老師那嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度及一絲不荀的工作精神時(shí)刻鞭策和激勵(lì)著我勤奮踏實(shí)地學(xué)習(xí)和研究。我為能成為呂鳳齊老師的弟子而感到榮幸。同時(shí)也要學(xué)校及學(xué)員領(lǐng)導(dǎo)表示謝意,學(xué)校及學(xué)員領(lǐng)導(dǎo)對(duì)我們畢業(yè)設(shè)計(jì)比較重視,給我們安排好了畢業(yè)論文的時(shí)間規(guī)劃,讓我們不至于面對(duì)畢業(yè)設(shè)計(jì)手足無(wú)措。同時(shí)每個(gè)項(xiàng)目都安排了項(xiàng)目指導(dǎo)老師為我們解決項(xiàng)目中遇到的問(wèn)題,給與我們很大幫助。衷心感謝各位專家百忙之中對(duì)本文的審閱和賜教!參考文獻(xiàn)[1]kaiminghe,JianSun,xiaoou,Tang《guideimagefilter》[E]/en-us/um/people/kahe/publications/eccv10guidedfilter.pdfIEEETransactionsonPatternAnalysisandMachineIntelligence(TPAMI),2012[2]李芙蓉.當(dāng)前智能手機(jī)操作系統(tǒng)及其比較分析[J].信息技術(shù),2008[3]楊豐盛.Android
應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010[4]極限優(yōu)化:Haar特征的另一種的快速計(jì)算方法—boxfilter,/easymind223/archive/2012/11/13/2768680.html,2013.4.22[5]WilhelmBurgerMarkJ.Burge著,黃華等譯,《數(shù)字圖像處理java語(yǔ)言算法描述》[M],清華大學(xué)出版社2010年2月[6]耿祥義,張躍平編著,《JAVA2實(shí)用教程》[M],清華大學(xué)出版社,2006年8月[7]Franklin,Crow.Summed-AreaTablesforTextureMapping.ComputerSciencesLaboratory:XeroxPaloAlto[8]方帥,楊靜榮,曹洋,武鵬飛,饒瑞中。圖像引導(dǎo)濾波的局部多尺度Retinex算法[J]。中國(guó)圖象圖形學(xué)報(bào)。2012,17(7)748-755.附錄在計(jì)算機(jī)視覺(jué)和計(jì)算機(jī)圖形學(xué)中大多數(shù)程序都牽涉到通過(guò)圖像濾波來(lái)降低噪音或者提取有用的圖像結(jié)構(gòu)來(lái)對(duì)圖片進(jìn)行相應(yīng)優(yōu)化的思想。一些簡(jiǎn)單的線性平滑濾波算法如高斯濾波器,拉普拉斯算子過(guò)濾器,索貝爾過(guò)濾器廣泛的應(yīng)用于圖像模糊,圖像銳化,邊緣檢測(cè)和特征提取等方面。線性平滑濾波算法還包括解決泊松方程的過(guò)程,比如在高動(dòng)態(tài)光照渲染,圖片拼接,摳圖這些過(guò)濾內(nèi)核是隱式地定義為一個(gè)同質(zhì)的逆拉普拉斯算子的矩陣的操作上。線性平滑濾波過(guò)濾器的濾波核是固定不變,獨(dú)立于任何圖像內(nèi)容。但在許多情況下,我們可能希望在過(guò)濾過(guò)程中將給定的引導(dǎo)圖像額外的信息體現(xiàn)出來(lái)。第一種解決方案就是通過(guò)考慮引導(dǎo)圖像優(yōu)化算法所執(zhí)行的二次方程,這種解決方案是通過(guò)處理以引導(dǎo)圖像信息編碼的大型稀疏矩陣。這些非齊次的矩陣隱含了變動(dòng)的濾波核。這種處理方法廣泛的應(yīng)用在許多應(yīng)用比如;著色,摳圖,多次度分解和圖片消霧中。另外的一種方法通過(guò)引導(dǎo)圖像生成濾波核。比如雙邊濾波器,他在某個(gè)像素點(diǎn)的輸出值是周圍同等權(quán)重的其他像素點(diǎn)的值的平均值。應(yīng)到圖像可以是圖像本身或者是其他圖像。雙邊濾波器可以實(shí)現(xiàn)平滑濾波的同時(shí)還能具有良好的邊緣保持性能。但是會(huì)產(chǎn)生一些額外的圖像陰影。在本設(shè)計(jì)中,我將介紹一種由微軟亞洲研究院何愷明博士提出的一種圖像引導(dǎo)濾波算法。這種算法本質(zhì)上是引導(dǎo)圖像的線性轉(zhuǎn)換。該算法能夠像雙邊濾波算法一樣較好的實(shí)現(xiàn)平滑波動(dòng)還能具有良好的邊緣保持性能。而且不產(chǎn)生圖像陰影。而且他也和拉普拉斯矩陣相關(guān),也是在平滑濾波方法中可用的一種理念,此外,引導(dǎo)濾波器對(duì)于灰階圖和彩色圖都有精確地算法,在大量的應(yīng)用中實(shí)驗(yàn)證明圖像引導(dǎo)濾波算法在效果和效率上有很不錯(cuò)的表現(xiàn)。在圖像引導(dǎo)濾波算法中,首先明確一個(gè)概念,輸出圖像Q是輸入圖像P和引導(dǎo)圖像I進(jìn)行線性變換的結(jié)果。輸入圖像P和引導(dǎo)圖像I都是已知量,而且兩者可以完全相同。輸入圖像P的像素點(diǎn)i的值在經(jīng)過(guò)處理之后生成一個(gè)加權(quán)平均數(shù)并成為輸出圖像Q的像素點(diǎn)i;在本函數(shù)中,i和j都代表像素的索引,濾波核Wij是輸入圖像I的函數(shù)并且與P無(wú)關(guān)。但是濾波器是與P線性相關(guān)的。我們假設(shè)q是I在以像素K為中心的小窗口WK上進(jìn)行線性變換的結(jié)果。則有以下函數(shù)其中(ak,bk)是在窗口Wk中恒定不變的線性參數(shù)。我們使用一個(gè)半徑為R的正方形窗口。這個(gè)線性模型確保僅當(dāng)引導(dǎo)圖像I有邊緣時(shí)q才有邊緣。因?yàn)椋?q=a?I。這個(gè)模型已經(jīng)在多個(gè)應(yīng)用中證明是可行的比如,摳圖,圖像超分辨率,和清除迷霧。為了確定這些線性參數(shù),我們尋找一種解決方案來(lái)最小化輸出圖像q和輸入圖像p之間的差別。尤其的,我們列出下面的函數(shù)在本函數(shù)中,ε是一個(gè)不變的參數(shù)用來(lái)防止ak的值過(guò)大,本函數(shù)通過(guò)計(jì)算得到答案在上述函數(shù)中,是引導(dǎo)圖像I在窗口WK中的平均值,是引導(dǎo)圖像I在窗口WK的方差,是在窗口WK里面的像素?cái)?shù)目,是p在窗口WK的平均值。下面,我們將線性模型應(yīng)用于整個(gè)圖片中的局部窗口,然而像素I可能包含在許多WK中,所以在函數(shù)1中的值在不同窗口計(jì)算出來(lái)的值不相同。一個(gè)簡(jiǎn)單的方法就是計(jì)算出所有qi可能值的平均數(shù)。所以當(dāng)計(jì)算出圖片中每個(gè)模塊的(ak.bk),我們計(jì)算輸出濾波器其中,.目錄TOC\o"1-2"\h\z\u第一章總論 51.1項(xiàng)目概要 51.2可行性研究報(bào)告編制依據(jù) 81.3綜合評(píng)價(jià) 8第二章項(xiàng)目背景及必要性 112.1項(xiàng)目建設(shè)背景 112.2項(xiàng)目建設(shè)的必要性 13第三章建設(shè)條件 163.1項(xiàng)目區(qū)概況 163.2項(xiàng)目建設(shè)條件優(yōu)劣勢(shì)分析 21第四章市場(chǎng)分析與銷售方案 264.1市場(chǎng)分析 264.2銷售策略、營(yíng)銷方案和模式 294.3風(fēng)險(xiǎn)分析 30第五章項(xiàng)目建設(shè)方案 325.1建設(shè)任務(wù)和規(guī)模 325.2建設(shè)規(guī)劃和布局 325.3工藝(技術(shù))方案 325.4建設(shè)內(nèi)容 355.5實(shí)施進(jìn)度安排
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門窗行業(yè)市場(chǎng)拓展與渠道建設(shè)合同4篇
- 2025版寵物醫(yī)院害蟲防治與寵物健康服務(wù)合同4篇
- 2025年度鎳氫電池關(guān)鍵部件研發(fā)與制造合同4篇
- 二零二五年度智慧交通管理系統(tǒng)詢價(jià)合同協(xié)議書3篇
- 二零二五年度智能交通管理系統(tǒng)采購(gòu)合同樣本3篇
- 二零二五年度奶業(yè)集團(tuán)奶制品品牌授權(quán)及銷售合同
- 2025年度路燈采購(gòu)安裝及LED照明產(chǎn)品研發(fā)合同3篇
- 二零二五年度機(jī)關(guān)辦公樓物業(yè)智能化升級(jí)改造服務(wù)合同5篇
- 2025年度智能化培訓(xùn)學(xué)校教師團(tuán)隊(duì)聘用合同4篇
- 二零二五年度模特廣告代言聘用合同
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測(cè)濟(jì)南期末試題和答案
- 中儲(chǔ)糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 河南退役軍人專升本計(jì)算機(jī)真題答案
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項(xiàng)整治三年行動(dòng)實(shí)施方案全國(guó)安全生產(chǎn)專項(xiàng)整治三年行動(dòng)計(jì)劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 產(chǎn)鉗助產(chǎn)護(hù)理查房
- 招聘專員轉(zhuǎn)正述職報(bào)告
評(píng)論
0/150
提交評(píng)論