第一篇:深度學習方法在圖像處理中的應用與研究(總結)
深度學習方法在圖像處理中的應用與研究
1.概述和背景........................................................................................................1 2.人腦視覺機理......................................................................................................3 3.深度學習的基本思想..........................................................................................6 4.深度學習的常用方法..........................................................................................7 5.總結與展望.......................................................................................................9
深度學習方法在圖像處理中的應用與研究
1.概述和背景
Artificial Intelligence,也就是人工智能,就像長生不老和星際漫游一樣,是人類最美好的夢想之一。雖然計算機技術已經取得了長足的進步,但是到目前為止,還沒有一臺電腦能產生“自我”的意識。是的,在人類和大量現成數據的幫助下,電腦可以表現的十分強大,但是離開了這兩者,它甚至都不能分辨一個喵星人和一個汪星人。
圖靈(圖靈,大家都知道吧。計算機和人工智能的鼻祖,分別對應于其著名的“圖靈機”和“圖靈測試”)在 1950 年的論文里,提出圖靈試驗的設想,即,隔墻對話,你將不知道與你談話的,是人還是電腦。這無疑給計算機,尤其是人工智能,預設了一個很高的期望值。但是半個世紀過去了,人工智能的進展,遠遠沒有達到圖靈試驗的標準。這不僅讓多年翹首以待的人們,心灰意冷,認為人工智能是忽悠,相關領域是“偽科學”。
但是自 2006 年以來,機器學習領域,取得了突破性的進展。圖靈試驗,至少不是那么可望而不可及了。至于技術手段,不僅僅依賴于云計算對大數據的并行處理能力,而且依賴于算法。這個算法就是,Deep Learning。借助于 Deep Learning 算法,人類終于找到了如何處理“抽象概念”這個亙古難題的方法。
在實際應用中,例如對象分類問題如對象的分類(對象可是文檔、圖像、音頻等),我們不得不面對的一個是問題是如何用數據來表示這個對象,當然這里的數據并非初始的像素或者文字,也就是這些數據是比初始數據具有更為高層的含義,這里的數據往往指的就是對象的特征。例如人們常常將文檔、網頁等數據用詞的集合來表示,根據文檔的詞集合表示到一個詞組短語的向量空間(vector space model, VSM模型)中,然后才能根抓不同的學習方法設計出適用的分類器來對目標對象進行分類;又如在圖像處理中,像素強度的集合的表示方法可以最初淺的表示一幅圖像,這也是我們視覺意義上的圖像,一可是由于各種原因人們提出了更高層的語義的特征,如SIFT為經典的幾何特征、以LBP為經典的紋理特征、以特征臉為經典的統計特征等,像SIFT,特征在很多圖像處理的應用中突顯出其優越性,因此特征選取得好壞對于實際應用的影響是很深刻的。因此,選取什么特征或者用什么特征來表示某一對象對于解決一個實際問題非常的重要。然而,人為地選取特征的時間代價是非常昂貴,另外勞動成本也高,而所謂的啟發式的算法得到的結果往往不穩定,結果好壞經常是依靠經驗和運氣。既然如此,人們自然考慮到自動學習來完成特征抽取這一任務。Deep Learning的產生就是緣于此任務,它又被稱為無監督的特征學習(Unsupervised Feature Learning),一顯然從這個名稱就可以知道這是一個沒有人為參與的特征選取方法。
深度學習(Deep Learning)的概念是2006年左右由 Geoffrey Hinton等人在《science》上發表的一篇文章((Reducing the dimensionality of data with neural networks》》提出來的,主要通過神經網絡(Neural Network NN)來模擬人的大腦 的學習過程,希望借鑒人腦的多層抽象機制來實現對現實對象或數抓(圖像、語音及文木等)的抽象表達,整合特征抽取和分類器到一個學習框架下,特征的抽取過程中應該盡量少地減少人為的干預。
深度學習是通過大量的簡單神經元組成,每層的神經元接收更低層的神經元的輸入,通過輸入與輸出之間的非線性關系,將低層特征組合成更高層的抽象表示,并發現觀測數據的分布式特征。通過自下而上的學習形成多層的抽象表示,并多層次的特征學習是大連理卜大學碩十學位論文一個自動地無人工干預的過程。根據學習到的網絡結構,系統將輸入的樣本數據映射到各種層次的特征,并利用分類器或者匹配算法對頂層的輸出單元進行分類識別等。
2.人腦視覺機理
研究表明,哺乳動物的大腦皮層,處理輸入信息時是采用了一種分層機制,信息從感知器官輸入后,經過多層的神經元,在經過每一層神經元時,神經元會將能夠體現對象本質的特征抽取出來,然后將這些特征繼續傳遞到下一層神經元上,同樣地,后繼的各層神經元都是以類似的方式處理和傳遞信息,最后傳至大腦。深層的人工神經網絡的誕生很大程度上受這一發現的啟示,即構建一種包含多層結點,并且使得信息、得以逐層處理抽象的神經網絡。
換言之,哺乳動物的大腦是以深度方式組織的,這一類深層的結構組織里的每一層會對于輸入進行不同層次的信息處理或者抽象表示,因此,實際生活中,層次化的方法經常被用于表示一些抽象的語義概念。與哺乳動物一樣,人類的大腦處理信矛息時也是采用逐層傳輸和表達的方式,人腦的初級視覺系統,首先利用某些神經元探測物體邊界、元形狀,然后又利用其他的神經元組織,逐步向上處理形成更復雜的視覺形狀。人腦識別物體的原理是:外部世界中的物體先在視網膜上進行投影,然后大腦的視皮層對于聚集在視網膜上的投影進行分解處理,最后利用這些分解處理后的信息進行物體識別。因此視皮層的功能不是僅限于簡單的重現視網膜圖像,而是提取和計算感知信號。
視覺系統的輸入數據量在人類感知系統的層次結構進行了維數減約,并剔除了與物體個性無關的信息;例如對于處理潛在結構是復雜的豐富數據(如圖像、視頻、主意等),深度學習應該與人類視覺系統一樣可以精準地獲取對象的本質特征。深度學習的構想是借鑒大腦的分層組織方式,通過由下向上、由簡單到高級的逐層抽象的特征學習,研究者們期望深度網絡結構能通過模擬大腦來解決復雜的模式識別難題。因此,深層的人工神經網絡是一種人工定義用于模擬人腦組織形式的多層神經網絡。
從文本來說,一個doc表示什么意思?我們描述一件事情,用什么來表示比較合適?用一個一個字嘛,我看不是,字就是像素級別了,起碼應該是term,換句話說每個doc都由term構成,但這樣表示概念的能力就夠了嘛,可能也不夠,需要再上一步,達到topic級,有了topic,再到doc就合理。但每個層次的數量差距很大,比如doc表示的概念->topic(千-萬量級)->term(10萬量級)->word(百萬量級)。
一個人在看一個doc的時候,眼睛看到的是word,由這些word在大腦里自動切詞形成term,在按照概念組織的方式,先驗的學習,得到topic,然后再進行高層次的learning。
那我們需要有多少個特征呢?我們知道需要層次的特征構建,由淺入深,但每一層該有多少個特征呢?
任何一種方法,特征越多,給出的參考信息就越多,準確性會得到提升。但特征多意味著計算復雜,探索的空間大,可以用來訓練的數據在每個特征上就會稀疏,都會帶來各種問題,并不一定特征越多越好。
一些淺層的算法(指僅含一個隱層的神經網絡、核回歸、支撐向量機等),當
給定有限數量的樣本和計算單元時,淺層結構難以有效地表示復雜函數,并且對于復雜分類問題表現性能及泛化能力針均有明顯的不足,尤其當目標對象具有豐富的含義。深度學習通過大量的簡單神經元組成的網絡,利用輸入與輸出之間的非線性關系,對復雜函數進行近似,對觀測樣本進行擬合,并在學習輸入樣本本質特征的抽取上體現了強大的能力。有文獻中就列舉出一系列無法使用淺層網絡表示的函數,這些研究成果揭示了淺層網絡的局限性,從而也激發了人們探尋深度網絡在一些復雜函數表示和復雜分類的應用前景。指出深度學習結構在對于復雜函數的表示問題上具有非常高的效率及效果,而一個不適用的結構模型否(如淺層網絡)對數據建模時可能需要數目非常大的計算單元。
3.深度學習的基本思想
假設一個系統S,它是一個n層(S1,?,Sn)的結構,I是系統的輸入,O是系統輸出,形象地表示為:I =>S1=>S2=>...=>Sn=>O,如果輸出O等于輸入I,物理意義也就是表明在經過系統變化之后,輸入I的信息量沒有任何損失,和原始的輸入保持了不變,這表明了輸入I經過每一層S;均沒有丟失任何信息,,即在任何一層S;,它都是輸入I也就是原始信息的另外一種表示。簡單說,深度學習的精髓也就是,在一個n層的神經網絡中,任何一層的輸入I和輸出O是“相等.’的。學習過程中,我們希望它是不需要人為干預的,它能夠自動地學習對象的特征。在給定一組原始的輸入I(可以理解為是一堆圖像或者文本、一段語音之類),經過一個包含n層的系統S時,我們通過調整系統中參數,使得輸出與輸出相等,即輸出O仍然是輸入I,這樣,我們就獲取了輸入I(原始數據)的一系列的層次特征,記為S,...Sn。
另外,前面是假設輸出嚴格地等于輸入,即這個地方“相等”有兩個含義在里面:第一個是說O和I不是在絕對形式上的相等,而是在抽象意義上的相等;另外一點指的是限制的約束的程度,比如說是不會造成歧義的完全“相等”還是有適當寬松條件的“相等”。而絕對意義上的“相等”這個限制太嚴格,我們可以略微地放松這個限制,例如我們只要使得輸入與輸出的差別盡可能地小即可,這個放松會形成另外一類不同的深度學習的方法。舉個不太恰當的例子,比如說對“交通工具”這個概念上,I是“可以駕駛的四個輪子”,O是“車”,這樣雖然對兩者的描述不一致,但是我們都一可以理解為“交通工具”了。上述就是深度學習的基本思想,而上述中的兩個思想也對應了深度學習中的兩個經典的方法AutoEncoder和Sparse Coding,還有一個很常用的方法就是受限玻爾茲曼機(Restrict Boltzmann Machine,RBM)。
4.深度學習的常用方法
4.1AutoEncoder自動編碼器
最簡單的一種方法是利用人工神經網絡的特點,人工神經網絡(ANN)本身就是具有層次結構的系統,如果給定一個神經網絡,我們假設其輸出與輸入是相同的,然后訓練調整其參數,得到每一層中的權重,自然地,我們就得到了輸入I的兒種不同表示(每一層是輸入的一種表示),這些表示就是特征,在研究中可以發現,如果在原有的特征中加入這些自動學習得到的特t正可以大大提高精確度,甚至在分類問題中比}」前址好的分類算法效果還要好,這種方法稱為自動編碼(AutoEncoder)。
4.2、Sparse Coding稀疏編碼
如果我們把輸出必須和輸入相等的限制放松,同時利用線性代數中基的概念,即O=Wx B, +硯x B, +...+W,x B, , B是基,W;是系數,我們可以得到這樣一個優化問題:Min 11一Olo 通過求解這個最優化式子,我們可以求得系數W和基B;,這些系數和基礎就是輸入的另外一種近似表達,因此,它們可以被當成特征來表達輸入I,這個過程也是自動學習得到的。如果我們在上述式子上加上L1的Regularity限制,得到:
Min}I一O}+u*(IW卜}硯I+?+}W,})。(2.1)種方法被稱為Sparse Coding,它是一種對對象的簡潔表征的方法,這種方法可以自動地學習到隱藏在對象數據潛在的基函數。
4.3、Restricted Boltzmann Machine(RBM)限制波爾茲曼機
假設有一個二部圖,每一個相同層的節點之間沒有鏈接,一層是可視層,即輸入數據層(v),一層是隱層(h),如果假設所有的節點都是二值變量節點(只能取0或者1值),同時假設聯合概率分布p(v, h)滿足Boltzmann分布,我們稱這個模型是受限玻爾茲曼機(RBM)。下面我們來看看為什么它是Deep Learning方法。首先,這個模型因為是二部圖,所以在己知v的情況下,所有的隱藏節點之間是條件獨立的,即p(hIv卜p(h, I 1,)...p(h-I v)。同理,在己知隱藏層h的情況下,所有的可視節點都是條件獨立的,同時又由于所有的v和h滿足Boltzmann分布,因此,當輸入v的時候,通過p(hlv)可以得到隱藏層h,而得到隱藏層h之后,通過p(vlh)又能重構可視層,通過調整參數,我們就是要使得從隱藏層得到的可視層VI與原來的可視層v如果一樣,那么得到的隱藏層就是可視層的另外一種表達,因此隱藏層可以作為可視層輸入數據的特征,所以它就是一種Dcep Learning方法。文獻X32]從理論一上證明,當隱層節點足夠多時,深度網絡就可以表示任意離散分布;文獻[33]指出受限玻爾茲曼機中的隱層節點與可視節點可以為任意的指數族單元(即給定隱單元(可見單元),可見單元(隱單元)的分布的
形式一可以為任意的指數族分布),如高斯單元、softmax單元、泊松單元等等。
4.4、Deep BeliefNetworks深信度網絡
DBNs是一個概率生成模型,與傳統的判別模型的神經網絡相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了后者,也就是P(Label|Observation)。對于在深度神經網絡應用傳統的BP算法的時候,DBNs遇到了以下問題:
(1)需要為訓練提供一個有標簽的樣本集;(2)學習過程較慢;
(3)不適當的參數選擇會導致學習收斂于局部最優解。
目前,和DBNs有關的研究包括堆疊自動編碼器,它是通過用堆疊自動編碼器來替換傳統DBNs里面的RBMs。這就使得可以通過同樣的規則來訓練產生深度多層神經網絡架構,但它缺少層的參數化的嚴格要求。與DBNs不同,自動編碼器使用判別模型,這樣這個結構就很難采樣輸入采樣空間,這就使得網絡更難捕捉它的內部表達。但是,降噪自動編碼器卻能很好的避免這個問題,并且比傳統的DBNs更優。它通過在訓練過程添加隨機的污染并堆疊產生場泛化性能。訓練單一的降噪自動編碼器的過程和RBMs訓練生成模型的過程一樣。
4.5 Networks卷積神經網絡
卷積神經網絡是人工神經網絡的一種,已成為當前語音分析和圖像識別領域的研究熱點。它的權值共享網絡結構使之更類似于生物神經網絡,降低了網絡模型的復雜度,減少了權值的數量。該優點在網絡的輸入是多維圖像時表現的更為明顯,使圖像可以直接作為網絡的輸入,避免了傳統識別算法中復雜的特征提取和數據重建過程。卷積網絡是為識別二維形狀而特殊設計的一個多層感知器,這種網絡結構對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。
CNNs是受早期的延時神經網絡(TDNN)的影響。延時神經網絡通過在時間維度上共享權值降低學習復雜度,適用于語音和時間序列信號的處理。
CNNs是第一個真正成功訓練多層網絡結構的學習算法。它利用空間關系減少需要學習的參數數目以提高一般前向BP算法的訓練性能。CNNs作為一個深度學習架構提出是為了最小化數據的預處理要求。在CNN中,圖像的一小部分(局部感受區域)作為層級結構的最低層的輸入,信息再依次傳輸到不同的層,每層通過一個數字濾波器去獲得觀測數據的最顯著的特征。這個方法能夠獲取對平移、縮放和旋轉不變的觀測數據的顯著特征,因為圖像的局部感受區域允許神經元或者處理單元可以訪問到最基礎的特征,例如定向邊緣或者角點。
5.總結與展望
1)Deep learning總結
深度學習是關于自動學習要建模的數據的潛在(隱含)分布的多層(復雜)表達的算法。換句話來說,深度學習算法自動的提取分類需要的低層次或者高層次特征。高層次特征,一是指該特征可以分級(層次)地依賴其他特征,例如:對于機器視覺,深度學習算法從原始圖像去學習得到它的一個低層次表達,例如邊緣檢測器,小波濾波器等,然后在這些低層次表達的基礎上再建立表達,例如這些低層次表達的線性或者非線性組合,然后重復這個過程,最后得到一個高層次的表達。
Deep learning能夠得到更好地表示數據的feature,同時由于模型的層次、參數很多,capacity足夠,因此,模型有能力表示大規模數據,所以對于圖像、語音這種特征不明顯(需要手工設計且很多沒有直觀物理含義)的問題,能夠在大規模訓練數據上取得更好的效果。此外,從模式識別特征和分類器的角度,deep learning框架將feature和分類器結合到一個框架中,用數據去學習feature,在使用中減少了手工設計feature的巨大工作量(這是目前工業界工程師付出努力最多的方面),因此,不僅僅效果可以更好,而且,使用起來也有很多方便之處,因此,是十分值得關注的一套框架,每個做ML的人都應該關注了解一下。
當然,deep learning本身也不是完美的,也不是解決世間任何ML問題的利器,不應該被放大到一個無所不能的程度。2)Deep learning未來
深度學習目前仍有大量工作需要研究。目前的關注點還是從機器學習的領域借鑒一些可以在深度學習使用的方法,特別是降維領域。例如:目前一個工作就是稀疏編碼,通過壓縮感知理論對高維數據進行降維,使得非常少的元素的向量就可以精確的代表原來的高維信號。另一個例子就是半監督流行學習,通過測量訓練樣本的相似性,將高維數據的這種相似性投影到低維空間。另外一個比較鼓舞人心的方向就是evolutionary programming approaches(遺傳編程方法),它可以通過最小化工程能量去進行概念性自適應學習和改變核心架構。
Deep learning還有很多核心的問題需要解決:
(1)對于一個特定的框架,對于多少維的輸入它可以表現得較優(如果是圖像,可能是上百萬維)?
(2)對捕捉短時或者長時間的時間依賴,哪種架構才是有效的?(3)如何對于一個給定的深度學習架構,融合多種感知的信息?
(4)有什么正確的機理可以去增強一個給定的深度學習架構,以改進其魯棒性和對扭曲和數據丟失的不變性?
(5)模型方面是否有其他更為有效且有理論依據的深度模型學習算法?
探索新的特征提取模型是值得深入研究的內容。此外有效的可并行訓練算法也是值得研究的一個方向。當前基于最小批處理的隨機梯度優化算法很難在多計算機中進行并行訓練。通常辦法是利用圖形處理單元加速學習過程。然而單個機器GPU對大規模數據識別或相似任務數據集并不適用。在深度學習應用拓展方面,如何合理充分利用深度學習在增強傳統學習算法的性能仍是目前各領域的研究重點。
第二篇:PHOTOSHOP圖像處理在刑事物證中的應用
摘 要:隨著科技的不斷進步,數字技術得到廣泛的發展和應用,現實生活中的很多信息都可以以數字形式的數據進行處理和儲存,數字圖像就是這種以數字形式進行儲存和處理的圖像。
關鍵詞:物證檢驗;應用
隨著科技的不斷進步,數字技術得到廣泛的發展和應用,現實生活中的很多信息都可以以數字形式的數據進行處理和儲存,數字圖像就是這種以數字形式進行儲存和處理的圖像。利用photoshop 等圖像處理軟件可以對數碼案件照片進行后期的編排和處理,輕松地將數碼痕跡圖像處理為所需用比例物證檢驗照片;將數碼照相技術與指紋自動識別系統相連接,可使數碼指紋照片直接進入指紋自動識別系統中進行校驗比對,迅速鎖定作案嫌疑人。大大減輕了刑事技術人員的工作量和工作時間,為偵查破案爭取了寶貴的時間。
數字圖像在近幾年發展以及在公安工作中的應用
數字圖像是在刑事物證中是一種視聽資料,在1997年的刑事訴訟法修改后,視聽資料被列為一種獨立的證據使用。在下文中所指的數字圖像是指借助現代化精密儀器(如數字相機、數字攝像機、計算機)所提供的信息資料,它與視聽資料中的錄像資料相比較,其表現形式只是單幅圖像和多幅連續圖像之別,兩者只是表現形式不同,其本質是一樣的。作為現在化公安工作的發展,數字圖像在公安的基層辦公中越來越多地被應用。其優點在于對用數碼相機拍攝犯罪現場照片,在拍攝時可以邊拍攝邊察看,不滿意的照片可以當場刪除進行修改。還方便與保存、記錄以及日后的分析案情等等。在物證中,而使用數碼技術可隨時察看影像質量,根據需要改變拍照條件并及時做出調整,大大縮短了照片的制作周期,使痕跡物證得到及時地檢驗和鑒定。利用數字技術還可以為痕跡物證照相設定拍照比例,在計算機上測定痕跡物證的大小、深淺以及特征點之間的方位、距離,把得到的數據與樣本進行比較,做出科學的鑒定結論。并且能對照片質量進行優化,模糊的經過處理可提高清晰度,反差小的經過影調調整可提高反差,有彩色背景的痕跡可以改變背景的顏色使痕跡清晰可見,達到分色照相的目的。對于刑事物證中由于客觀的因素,導致的物證、人犯、痕跡的模糊變形,造成圖像不容易辨認、認定時,還可以利用數字技術進行修改阻礙辨認的像素,是照片帶到相應的要求。說到數字技術,現在應用較為廣泛的就是photoshop軟件了。
photoshop軟件在刑事物證中的應用實例
photoshop軟件是abode公司開發的圖像處理軟件,在我們日常的圖像處理中應用非常的廣泛,其對圖像的處理功能非常的強大,可以處理各種圖像問題。適應于公安刑事技術工作圖像的各個方面。本文所用到的photoshop版本photoshop cs3。
在日常文檢工作中,對痕跡特征、文件材料的檢驗,一般是借助尺子、放大鏡或者一些專業的輔助工具進行檢驗對比,這些工具無疑給我們的檢驗工作帶來了很多的不方便,并且也存在許多不足之處:1)傳統的用眼觀察、手工測量不夠精確;2)用放大鏡、顯微鏡觀察時,眼睛容易疲勞且只能觀察到很小的局部;3)檢驗時所觀察到的情況固定困難(照相);4)傳統檢驗方法比較單一。運用photoshop借助電腦和掃描儀檢驗印刷品和印文既操作方便、準確、直觀,又便于對放大、處理過的材料打印固定,而且對檢材不會造成絲毫磨損、破壞。在應用了photoshop軟件后,我們可以對痕跡特征、文件材料的檢材進行局部的放大、將其中某一顏色圖案分離出來、進行重疊比對檢驗、增加圖文同底色(背景的)反差來提高所檢部位的清晰度、精確測量檢材的搭配比例特征。(文中所有的圖片格式為.psd 注:psd 文件為photoshop 的缺省文件格式,它可以將所編輯圖像的所有有關圖層、通道等信息記錄下來。)
選擇“圖像”,“模式”,再選中“cmyk 顏色”,然后點擊“通道”,鼠標右擊“洋紅”通道,選擇“刪除通道”,接著鼠標右擊“黃色”通道,選擇“刪除通道”命令,便可以達到去朱存墨的效果了。(如圖1 所示)選擇“圖像”,“模式”,再選中“lab 顏色”,然后點擊“通道”,鼠標右擊“明度”通道,選擇“刪除通道”命令,接著鼠標右擊“b”通道,選擇“刪除通道”命令,便可以達到去墨存朱的效果了。(如圖2 所示)
我們在檢驗指紋特征、文件材料中有時某個部位(局部)因為拍攝或者其他的客觀原因造成圖文不夠清晰時,我們可以在軟件中執行“圖像/ 調整、曲線”命令,打開“曲線”對話框,根據文件的模式,選擇“通道”類型,通過調整曲線使圖像中某個部位反差增大,使整個圖文更加清晰。這種功能是一些專業比對儀所無法達到的。我們還可以通過調整色彩的平衡,使所選顏色的圖案更加突出。操作時,執行“圖像\\調整\\色彩平衡”命令,在“色彩平衡”對話框中,選擇“暗調”、“中間調”或“高光”中的一個著重進行色調范圍的更改,通過調整標注紅、綠、藍的顏色條上的三角形滑塊的位置調整色彩平衡,從而達到增強某一(幾)種顏色,減少“顏色輪”中相對應的幾
(一)種顏色,使圖文同底色反差加大,使某種顏色的圖文更加清晰可見。如在檢驗時出現印文同文字交叉情況,我們可用此方法隱去印文或文字,使文字或印文更清晰。
我們在痕跡檢驗中,有時候會對檢材與樣本是否同一進行利用重影也對接技術進行比對。進行比對時,大都需要用一些專用的痕跡比對儀器,這些儀器不是每一個公安部門所能擁有的,但是,利用了photoshop技術,可以處理一些簡單數字圖像。下面我那痕跡檢驗中的文件檢驗來舉例:
重影比對。打開樣本的圖像后,選中“圖層”調板,鼠標右鍵單擊“背景”圖層,選擇“復制圖層”命令,將新圖層命名為“樣本一”圖層,保存文件,建立重影比對工作文件。打開檢材文件,選擇“選擇(菜單)”、“全選(選項)”、將樣本印文圖像全部選中。選擇“移動工具”,將樣本印文選區拖至樣本圖像窗口,成為圖層1,關閉檢材文件窗口(釋放內存)。將圖層1 重命名為“檢材”圖層,并將“模式選項”設為“正片疊底(模式)”。選擇“編輯、菜單”、“變換(選項)”、選中“旋轉(子選項)”。即可拖動并旋轉檢材印文與樣本印文進行重影比對檢驗了(如圖4 所示)。比對完后別忘了保存文件。
第三篇:圖像處理在足球機器人方面的應用
數字圖像處理是指將圖像信號轉換成數字信號并利用計算機對其進行處理的過程。機器人視覺作為智能機器人的重要感覺器官,主要進行三維景物理解和失敗,是目前處于研究中的開放課題。機器視覺主要用于軍事偵察、危險環境的自主機器人,郵政、醫院和家庭服務的智能機器人,裝配線工件識別,定位太空機器人的自動操作等。下面一篇論文是關于圖像處理在足球機器人方面的應用說明: 圖像處理在足球機器人系統中的應用
蒙 梅(北京交通大學計算機與信息技術學院 北京 100044)
【摘要】機器人是目前綜合科學研究領域的前沿課題,足球機器人比賽是實現這一科學研究的有效方式,其中圖像處理是足球機器人的首要研究課題。在足球機器人比賽中,要保證及時迅速地為決策系統提供有效信息,對圖像處理的實時性有較高要求。本文將闡述如何把BMP圖像的游程編碼(RLE)壓縮格式應用于足球機器人的圖像處理數據結構中,并以實驗證明:游程編碼適用于足球機器人,能夠使圖像處理的運行效率和效果滿足足球機器人系統協調工作的要求。
【關鍵詞】圖像處理 足球機器人 游程編碼(RLE)引言
隨著科學技術日新月異的發展,智能機器人研究及應用已經成為人工智能研究的熱點。足球機器人是國際上廣泛開展的一項高科技對抗活動,比賽中機器人可以自動地踢足球。要在有各種干擾的環境下解決好足球機器人的協作,必須解決實時圖像識別處理、人工智能協作控制、實時動態策略、軌跡規劃和無限通信等一系列問題。毫無疑問,智能機器人的眼睛是其重要的“感知”來源,只有得到正確的信息,才有可能進行正確的決策處理,進而進行正確的操作。因此,圖像識別處理是智能機器人首先要解決的問題。圖像處理原理
數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉換成數字信號并利用計算機對其進行處理的過程。常用的圖像處理研究方向有圖像變換、圖像編碼壓縮、圖像增強和復原、圖像分割和圖像識別、圖像描述、圖像分類(識別)等。在足球機器人的圖像處理中,主要應用的研究領域為圖像分割和圖像編碼壓縮。
2.1 圖像分割
圖像分割就是將圖像劃為一些區域,在同一區域內,圖像的特征相近;而不同的區域,圖像特征相差較遠。圖像特征可以是圖像本身的特征,如像素的灰度、邊緣輪廓和紋理等。圖像的作用是從圖像中提取有用的信息。在圖像分析過程中,一般首先要對所給的圖像進行分割,再對分割的區域作適當描述,然后才能對圖像作某種分析。可見,圖象分割是圖象分析前的一個重要處理步驟。
圖像分割是圖像處理的基礎,雖然人們提出了很多種圖像分割方法,但沒有任何一種圖像分割方法能夠適用于所有的圖像。如何選擇分割方法,主要是根據實際的應用環境和具體目標而定。
閾值化方法因其簡單、計算量小、性能較穩定而成為圖像分割中應用最廣泛的分割技術。對于圖像的直方圖呈現明顯的兩塊或若干塊不同形狀分布時,閾值可以選擇在兩分布的交界處。所以說,閾值法主要適用于目標和背景差別較大的圖像區域劃分。
2.2 圖像編碼壓縮
圖像編碼壓縮技術可減少描述圖像的數據量(即比特數),以便節省圖像傳輸和處理時間,減少存儲容量。壓縮可以在不失真的前提下獲得,也可以在允許的失真條件下進行。編碼是壓縮技術中最重要的方法,它在圖像處理技術中是發展最早且比較成熟的技術。
有些圖像,尤其是計算機生成的圖形往往有許多顏色相同的圖塊。在這些圖塊中,許多連續的掃描行都具有同一種顏色,在這種情況下就可以不需要存儲每一個像素的顏色值,而僅僅存儲一個像素值以及具有相同顏色的像素數目。這種編碼稱為行程編碼,或稱游程編碼,常用RLE(Run-Length Encoding)表示。游程編碼技術相當直觀和經濟,運算也相當簡單,因此解壓縮速度很快。RLE壓縮編碼尤其適用于計算機生成的圖形圖像,對減少存儲容量很有效。
對于足球機器人系統,是通過攝像機或攝像頭獲取圖像,并且圖形的顏色也是有限的,根據游程編碼的原理,在足球機器人系統中應用RLE能有效壓縮圖像數據。
2.3 圖像處理在足球機器人系統中的應用要求
在足球機器人系統中,比賽的特定規則:在攝像機所獲取的比賽場地范圍內,顏色是有限的,綠色(場地)、橙色(球)、藍或黃色(隊標)、粉紅或紫色(判斷位置和方向)。也就是說,每次采集卡所獲得的圖像中,只要明確這六種顏色的位置方向,為下一步人工智能協作模塊做準備。
根據比賽的實際,系統的圖像處理要實現的目標是:攝像頭或攝像機在比賽進行中,在一定間隔內獲取比賽場地圖像,通過采集卡初步處理后,返回此時刻的比賽場地上的圖像,將圖像進行處理最終產生一個表,任何一個顏色,通過查詢這個表,可獲知這個顏色在圖像中的位置。
因此,根據系統的實際要求,采用改進的閾值分割法和游程編碼壓縮進行圖像處理是有效并可實現的。圖像處理如何在足球機器人比賽中實現
足球機器人的視覺系統在實時性、抗干擾性方面有較高的要求,需要快速、穩定的圖像處理方法,而圖像處理的實現等于處理算法和相應的數據結構。一個圖像的數據結構可有多種,既要盡量地減少圖像所占的內存,也不能使圖像數據丟失,更不能影響處理速度。以下將分析在足球機器人中如何利用由閾值分割和游程編碼獲得的數據結構,如何進行圖像處理,并以實驗進行了論證。
3.1 閾值化初步圖像分割
由于比賽場地的光線原因,由同種圖像分割算法得到的顏色閾值也不盡相同,因此,比賽前均需要實地進行顏色采樣,以形成此時比賽所需的顏色閾值表。方法:將比賽規定的每一種顏色設定一代表數值,在攝像機下進行分別采樣,通過圖形像素域值化算法,形成并保存對以上這6種顏色較為精確的閾值范圍,其他的顏色均屬于“未知顏色”。將所有顏色的閾值得到一個三維數組:
YUVClass [256][COLORNUMBER][3]
256 代表閾值所能達到的范圍
COLORNUMBER 為采樣的顏色總數(包括未知顏色)記錄每個像素的Y,U,V信息
也就是說,通過這個YUVClass表,可以判斷從攝像頭獲取的圖像的某個像素點,其顏色屬于所采集顏色的哪一種,這樣,圖像實際上被分割為6種顏色的像素。
3.2 圖像像素處理
比賽進行時,攝像頭或攝像機在一定時間片內獲取圖片l*w,通過計算機的采集卡進行處理,獲得的圖像的數據是一字節數組,每一個像素的RGB值占據數組的3個單元,即一幅像素為l*w的圖像,經采集卡轉換數據后,l*w個像素信息以長度為l*w*3的字節數組來存儲。為了方便對表YUVClass的查尋,需進行處理,即將格式為RGB的圖像數組轉換成格式為YUV的數組。其轉換公式為:
Y=0.299*R+0.587G+0.144*B
U=(-0.167)*R+(-0.331)*G+0.500*B+127
V= 0.500*R+(-0.419)*G+(-0.081)*B+127
也就是說,對每個像素的Y/U/V值分別查詢YUVClass表,如果這三個值在表中都為確定的,那么這個像素就為采集顏色的一種,否則就為“未知顏色”,這樣,就將一幅長度為l*w*3的圖像數據信息轉換成長度為l*w的字節數組 m_colorimg[l*w],從而即獲得了一幅多值圖像,圖像中的每個像素點的顏色值取自0~6。
根據實際的系統需求,我們并不需要存儲圖像每一個像素,只需要獲得這6種顏色的位置。因此,利用游程編碼的原理實質是,將獲得的這個多值圖像轉換成由數據結構run[]為單元的一維數組存儲的格式,其數據結構如下:
struct run{
public:
short x,y,width;// run結構中行像素的位置和寬度
cclass color;// run結構的顏色標志
int parent,next;// run在鏈表中的上下節點
};
這個數據結構實質是將連續的同種顏色的行像素點形成一個run結構。事實上,在足球機器人比賽中,由于比賽場地的顏色大多是連續性的,作為場地的綠色占了很大的比重,但是決策主要需要的是本方隊員、對方隊員、球和球門的位置。這個數據結構所需的圖像信息量比起多值圖像的存儲方法,在沒有減少主要有效信息量的情況下,存儲量卻能大大地減少。
對所得的這個run結構鏈表進行四連通操作,即將垂直、水平方向相聯的同種顏色的run[]結構的父節點設為最早的一個。在圖像邏輯上,就將圖像進一步的分割為6種顏色區域。
3.3 圖像有效信息的處理
run[]結構僅僅是對圖像像素的整理,他只記錄了采集的像素顏色信息,如果要作為足球機器人的位置判斷,還需要與相關數據結合。為了易于下一步的處理,將已經生成的run[]結構再次轉換為region[]結構,轉換如下:
struct region{
int color;//顏色編號
int x1,y1,x2,y2;//橫、縱坐標的最大值和最小值
float cen_x,cen_y;//一個region單元的橫、縱坐標的質心(位置判斷)
int area;//像素面積
int run_start;// 這個region結構的第一run結構
int iterator_id;// 唯一ID號
region *next;//鏈表中的下一個region結構
};
region結構最重要的一個數據是region單元的橫、縱座標的質心,這個質心在滿足一定的條件下,就是要所需要的球、本方隊員、對方隊員、球門的位置等信息。
每一個顏色就是一個region結構鏈表,在產生鏈表的同時,依面積由小到大的形成自己的鏈表。最后,將所有6種顏色的6個region結構鏈表,形成color_class_state表,把鏈表的頭指針賦予顏色信息的數據結構color_class_state,如下:
struct color_class_state{//存儲顏色信息的數據結構
region *list;//每種顏色的region鏈表的表頭指針
int num;//每種顏色的region結構數
int min_area;// 一個region結構的最小像素面積數
rgb color;// 每種顏色的RGB值
char *name;// 顏色名 }
到此,由采集卡所獲得的圖像,進行數據處理完畢。任何一種已采樣的顏色在圖像中的位置,都可以從color_class_state表中迅速得到。比如球為桔色,通過其顏色名返回其region鏈表的頭指針,那么就可以通過滿足條件下的質心得到球的位置,再將位置信息傳給決策系統,即可判斷機器人下一刻要運動的方向和速度。就如足球賽場是時刻變化的,采集卡也是不斷地將新的圖像采集到圖像緩沖區中,而圖像處理過程是動態進行的,其數據結構的各個表也是在不斷地更新中。
實驗表明,將游程編碼壓縮格式和閾值化分割運用在足球機器人的圖像處理系統中,不僅可以大大減少圖像數據信息所占的內存,機器人也可以快速地識別各種要求的目標位置,并且將位置的信息及時傳送給決策系統來分析判斷,使整個足球機器人系統能夠形成一個協和運作的多職能體系統。結束語
圖像處理在現今的應用越來越廣泛,其領域的研究和實現是多樣的,任何一個原理的優越性無法一概而論,具體的需求,環境,程序下,不同的圖像處理方法有其自己的特殊適用性。在足球機器人系統中,游程編碼和閾值化分割的原理思想是貫穿于整個圖像處理中,并且是相互作用的。本文在吸收了原理的實質基礎上,根據比賽要求,改進了相應得圖像處理算法和數據結構,希望對足球機器人的研究有一定幫助。
(收稿日期:2006-06-23;Email:onlymengmei@163
第四篇:MATLAB中GUI在圖像處理應用中的設計(包括各種算法)
用MATLAB 進行圖像處理算法的界面設計 /
目錄
1.設計目的???????????????????3 2.題目分析???????????????????3 3.總體設計???????????????????3 4.具體設計???????????????????5 5.結果分析???????????????????34 6.心得體會???????????????????34 7.附錄代碼???????????????????36
/ 52
1、設計目的:綜合運用MATLAB工具箱實現圖像處理的GUI程序設計,利用MATLAB圖像處理工具箱,設計和實現自己的Photoshop。
2、題目分析
利用matlab的GUI程序設計一個簡單實用的圖像處理程序。該程序應具備圖像處理的常用功能,以滿足用戶的使用。現設計程序有以下基本功能: 1)圖像的讀取和保存。
2)設計圖形用戶界面,讓用戶能夠對圖像進行任意的亮度和對比度變化調整,顯示和對比變換前后的圖像。
3)設計圖形用戶界面,讓用戶能夠用鼠標選取圖像感興趣區域,顯示和保存該選擇區域。
4)編寫程序通過最近鄰插值和雙線性插值等算法將用戶所選取的圖像區域進行放大和縮小整數倍的操作,并保存,比較幾種插值的效果。
5)圖像直方圖統計和直方圖均衡,要求顯示直方圖統計,比較直方圖均衡后的效果。
6)能對圖像加入各種噪聲,并通過幾種濾波算法實現去噪并顯示結果。7)額外功能。
3、總體設計
/ 52 圖一
軟件的總體設計界面布局如上圖所示,主要分為2個部分:顯示區域與操作區域。顯示區域:顯示載入原圖,以及通過處理后的圖像。操作區域:通過功能鍵實現對圖像的各種處理。
在截圖中可見,左部為一系列功能按鍵如“還原”、“撤銷”、“截圖”等等 ;界面正中部分為圖片顯示部分,界面中下方為系列功能切換選擇組。設計完成后運行的軟件界面如下:
圖二
與圖一先比,運行后的界面更為簡潔。利用“編輯”菜單可調出相應的功能鍵。例如:
/ 52
4、具體設計
現介紹各個功能模塊的功能與實現。4.1菜單欄的設計。通過Menu Editor
創建如下菜單,通過以下菜單來控制顯示或隱藏功能按鍵
以“編輯”菜單中“圖像變形”中的“圖像翻轉”為例說明實現用戶界面功能鍵“圖像翻轉”的顯示與隱藏。實現該功能的程序段如下:
function tuxiangfanzhuan_Callback(hObject, eventdata, handles)% hObject handle to tuxiangfanzhuan(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'載入圖像');if isequal(filename,0)|isequal(pathname,0)errordlg('沒有選中文件','出錯');return;else
file=[pathname,filename];global S %設置一個全局變量S,保存初始圖像路徑,以便之后的還原操作 S=file;x=imread(file);set(handles.axes1,'HandleVisibility','ON');axes(handles.axes1);imshow(x);set(handles.axes1,'HandleVisibility','OFF');axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);end
程序關鍵部分:
通過[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'載入圖像')選擇相應路徑打開的圖像;通過file=[pathname,filename];x=imread(file);讀取選中的圖像;最后,通過imshow(x)在顯示區域上顯示圖像。
/ 52
(2)圖像保存。
利用“uiputfile”、“imwrite”函數實現圖像文件的保存。
function save_Callback(hObject, eventdata, handles)% hObject handle to save(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)clc;close all;close(gcf);clear;
4.3對圖像進行任意的亮度和對比度變化調整,顯示和對比變換前后的圖像。
運行程序后,通過“編輯”菜單中的“常用處理”選中“亮度調節”
在顯示出相應的功能鍵后,通過載入讀取圖像,比并進行處理,效果如下: 亮度處理前:
/ 52
亮度處理后:
實現程序段如下:
%---Executes on button press in radiobutton12.function radiobutton12_Callback(hObject, eventdata, handles)% hObject handle to radiobutton12(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T str=get(hObject,'string');axes(handles.axes2);
switch str case'增強' T=getimage;prompt={'輸入參數:'};defans={'1'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=immultiply(handles.img,p1);imshow(f);handles.img=f;guidata(hObject,handles);case'減弱' T=getimage;prompt={'輸入參數:'};defans={'1'};12 / 52 p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imdivide(handles.img,p1);imshow(f);handles.img=f;guidata(hObject,handles);end
該程序段主要通過 f=immultiply(handles.img,p1);p=inputdlg(prompt,'input',1,defans);分別實現圖像對比度的增強與減弱。
4.4 用鼠標選取圖像感興趣區域,顯示和保存該選擇區域。
通過imcrop(x)函數來實現對圖片某一區域的截取,截取的圖片在右框中顯示。結合“保存為?”,可把截圖處理后的圖片保存在指定路徑。
實現程序段如下:
%---Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton16
global T axes(handles.axes2);14 / 52 T=getimage;x=rgb2gray(handles.img);%RGBí???×a???a?ò?èí??? imshow(x);handles.img=x;guidata(hObject,handles);
4.6對圖像進行放大和縮小整數倍的操作。
通過imresize(X,n,mode)函數對圖像X進行放大或者縮小。N放大縮小倍數,mode為采用的方式。
通過處理后可發現保存的圖片的比原圖放大了(縮小了)。實現的程序段如下:
function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel9(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T axes(handles.axes2);T=getimage;h=histeq(handles.img);imshow(h);handles.img=h;guidata(hObject,handles);關鍵部分:通過 h=histeq(handles.img)進行直方圖均衡(2)直方圖統計。通過利用imhist(X)函數來實現直方圖統計。
/ 52
%---Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T str=get(hObject,'string');axes(handles.axes2);switch str case '椒鹽噪聲' T=getimage;prompt={'數日椒鹽噪聲參數1:'};defans={'0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imnoise(handles.img,'salt & pepper',p1);imshow(f);handles.img=f;guidata(hObject,handles);case '?高斯噪聲' T=getimage;prompt={'輸入高斯噪聲1:','輸入高斯噪聲2'};defans={'0','0.02'};21 / 52 p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});p2=str2num(p{2});f=imnoise(handles.img,'gaussian',p1,p2);imshow(f);handles.img=f;guidata(hObject,handles);case '乘性噪聲' T=getimage;prompt={'輸入乘性噪聲1:'};defans={'0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imnoise(handles.img,'speckle',p1);imshow(f);handles.img=f;guidata(hObject,handles);end
(2)濾除噪聲(椒鹽噪聲)。濾波前
中值濾波后
/ 52
線性濾波后
自適應濾波后
實現程序段如下:
function uipanel5_SelectionChangeFcn(hObject, eventdata, handles)%圖像濾波
% hObject handle to uipanel5(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
axes(handles.axes2);y1=handles.img;f=double(y1);% 數據類型轉換,matlab不支持圖像的無符號整型的計算 g=fft2(f);% 傅里葉變換 g=fftshift(g);% 轉換數據矩陣 [M,N]=size(g);nn=2;%二階巴特沃斯低通濾波器 d0=50;%截止頻率50 m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N d=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));% 計算低通濾波器傳遞函數 result(i,j)=h*g(i,j);end
/ 52 end
result=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2));imshow(y3);% 顯示處理后的圖像
%---Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
global S %還原 axes(handles.axes2);y=imread(S);f=imshow(y);handles.img=y;guidata(hObject,handles);4.10 撤銷。
撤銷上一步的操作。通過另設一個全局變量T保存是上一次操作后的圖像。
/ 52 實現程序段如下:
---Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)str=get(hObject,'string');axes(handles.axes2);global T switch str case '左右翻轉' T=handles.img;f=fliplr(handles.img);imshow(f);handles.img=f;guidata(hObject,handles);case '上下翻轉' T=handles.img;f=flipud(handles.img);imshow(f);handles.img=f;guidata(hObject,handles);29 / 52 end
程序關鍵部分:通過f=fliplr(handles.img);f=flipud(handles.img);分別實現左右鏡像翻轉與上下鏡像翻轉。
(2)圖像旋轉。
實現圖像的逆時針旋轉任意角度。
實現程序段如下:
function pushbutton3_Callback(hObject, eventdata, handles)%圖像愛那個旋轉
% hObject handle to pushbutton3(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T axes(handles.axes2);T=getimage;f=imcomplement(handles.img);%圖像取反′
/ 52 imshow(f);handles.img=f;guidata(hObject,handles);
程序段關鍵部分:通過f=imcomplement(handles.img);實現圖像取反,形成底片效果。
(2)邊緣信息。采取圖像的邊緣信息。
實現程序段如下:
%---Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16(see GCBO)
% eventdata reservedDO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @tuxiangchuli_OpeningFcn,...'gui_OutputFcn', @tuxiangchuli_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else
gui_mainfcn(gui_State, varargin{:});end
% End initialization codeto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)% varargin command line arguments to tuxiangchuli(see VARARGIN)
% Choose default command line output for tuxiangchuli handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes tuxiangchuli wait for user response(see UIRESUME)% uiwait(handles.figure1);
%---Outputs from this function are returned to the command line.function varargout = tuxiangchuli_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args(see VARARGOUT);% hObject handle to figure
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function exit_Callback(hObject, eventdata, handles)% hObject handle to exit(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'??è?í???');if isequal(filename,0)|isequal(pathname,0)errordlg('??óD???D???t','3?′í');
return;else
file=[pathname,filename];
global S %éè??ò???è???a?á?S£?a£′?3?ê?í???????£?ò?a???oóμ??1?-2ù?? S=file;
x=imread(file);
set(handles.axes1,'HandleVisibility','ON');axes(handles.axes1);imshow(x);
set(handles.axes1,'HandleVisibility','OFF');axes(handles.axes2);imshow(x);handles.img=x;
guidata(hObject,handles);end
%------function about_Callback(hObject, eventdata, handles)% hObject handle to about(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function save_Callback(hObject, eventdata, handles)% hObject handle to save(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton12 global T
axes(handles.axes2);T=getimage;prompt={'μ???a?êy'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
y=imadjust(handles.img,[ ], [ ],p1);%??ááí??? imshow(y);handles.img=y;
guidata(hObject,handles);
%------function uipanel4_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel4(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
% Hint: get(hObject,'Value')returns toggle state of radiobutton16
global T
axes(handles.axes2);T=getimage;
x=rgb2gray(handles.img);%RGBí????a???a?ò?èí??? imshow(x);handles.img=x;
guidata(hObject,handles);
/ 52 %---Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
axes(handles.axes2);T=getimage;prompt={'Dy?a???è:'};defans={'0'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=imrotate(handles.img,p1,'bilinear','crop');imshow(f);handles.img=f;
guidata(hObject,handles);
% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end
/ 52
%------function uipanel5_SelectionChangeFcn(hObject, eventdata, handles)%í?????2¨ % hObject handle to uipanel5(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)str=get(hObject,'string');
/ 52 axes(handles.axes2);global T switch str
case '?óóò?-?a'
T=handles.img;
f=fliplr(handles.img);imshow(f);handles.img=f;
guidata(hObject,handles);
case 'é????-?a' T=handles.img;
f=flipud(handles.img);imshow(f);handles.img=f;
guidata(hObject,handles);end
%---Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)axes(handles.axes2);
x=imhist(handles.img);%?a??í?í3?? x1=x(1:10:256);horz=1:10:256;bar(horz,x1);
axis([0 255 0 15000]);
set(handles.axes2,'xtick',0:50:255);set(handles.axes2,'ytick',0:2000:15000);
/ 52
%------function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel9(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
global S %?1?-1|?ü axes(handles.axes2);y=imread(S);f=imshow(y);handles.img=y;
guidata(hObject,handles);
/ 52
%---Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
str=get(hObject,'string');axes(handles.axes2);
switch str
case'????'
T=getimage;prompt={'ê?è?2?êy:'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=immultiply(handles.img,p1);imshow(f);handles.img=f;
guidata(hObject,handles);
case'??è?' T=getimage;prompt={'ê?è?2?êy:'};defans={'1'};
p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});
f=imdivide(handles.img,p1);imshow(f);handles.img=f;
guidata(hObject,handles);end
/ 52 %---Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
axes(handles.axes2);y1=handles.img;
f=double(y1);% êy?Yà-Dí?a??£?MATLAB2??§3?í???μ??T??o???Díμ????? g=fft2(f);% ?μá¢ò?a??? g=fftshift(g);% ?a??êy?Y???ó [M,N]=size(g);
nn=2;% ?t???íì????1(Butterworth)μíí¨??2¨?? d0=50;%???1?μ?ê?a50 m=fix(M/2);n=fix(N/2);for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));% ????μíí¨??2¨??′?μYoˉêy result(i,j)=h*g(i,j);
end end
result=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2));
imshow(y3);% ??ê???2¨′|àíoóμ?í???
/ 52 %---Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)global T
axes(handles.axes2);T=getimage;
f=edge(handles.img,'canny');imshow(f);handles.img=f;
guidata(hObject,handles);
/ 52
%------function edit_Callback(hObject, eventdata, handles)% hObject handle to edit(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function tianjiazaosheng_Callback(hObject, eventdata, handles)% hObject handle to tianjiazaosheng(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function changyongchuli_Callback(hObject, eventdata, handles)% hObject handle to changyongchuli(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)
%------function tuxiangfanzhuan_Callback(hObject, eventdata, handles)% hObject handle to tuxiangfanzhuan(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton3,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.pushbutton3,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.pushbutton3,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function ditonglvbochuli_Callback(hObject, eventdata, handles)% hObject handle to ditonglvbochuli(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton15,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.pushbutton15,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.pushbutton15,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function tuxianglvbo_Callback(hObject, eventdata, handles)% hObject handle to tuxianglvbo(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.radiobutton12,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.radiobutton12,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.radiobutton12,'Visible','off');else
set(gcbo, 'Checked', 'on');end
/ 52
%------function huidutxiang_Callback(hObject, eventdata, handles)% hObject handle to huidutxiang(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.uipanel10,'Visible','on');if strcmp(get(gcbo, 'Checked'),'on')
set(handles.uipanel10,'Visible','on');set(gcbo, 'Checked', 'off');
set(handles.uipanel10,'Visible','off');else
set(gcbo, 'Checked', 'on');end
%------function zhifangtujunheng_Callback(hObject, eventdata, handles)% hObject handle to zhifangtujunheng(see GCBO)
% eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA)set(handles.pushbutton8,'Visible','on');
/ 52
第五篇:PowerPoint2003在教學中的深度應用
《PowerPoint2003在教學中的深度應用》
張民生
隨著計算機的普及和信息技術環境的逐步優化,常用軟件如Word,Excel,PowerPoint,已經成為廣大教師教學中不可或缺的工具。但通過調查,我們了解到,這些軟件的功能遠遠沒有被開發、被利用。多數教師只會應用這些軟件的一些基本功能,比如PowerPoint僅僅起到一個電子黑板的作用,動畫,插圖、Flash和影音文件的插入等很多功能還不能運用;Word也只會進行簡單的打字,連基本的排版功能都沒有掌握;Excel功能非常強大,但是我們的絕大部分教師甚至連它的基本運算功能都沒有掌握,更不用說把它運用到教育管理和課堂教學中去了;其他復雜的可用于教學的軟件有很多,但是廣大一線教師沒有時間學習,更不用說熟練掌握了,這些都制約了信息技術在教育教學中的應用。
七寶中學物理特級教師馬九克老師,近幾年對Office中的常用軟件及多媒體技術進行潛心研究,如利用Power Point制作出具有動畫效果的課件,他在制作過程中的創新思維具有獨到之處,運用非常規的思維方法將PowerPoint的功能靈活運用,讓你看到了你所沒有見過的PPT課件。同時他還研究和總結了Word和Excel中的一些方法和技巧,能夠極大的提高教師教學工作和班主任工作的效率。簡單實用的一些網絡軟件的應用技術,可以解決你教學工作中的一些難題。目前馬老師的研究成果得到了上海交大、華東師大、上海師大、中國教育技術協會及全國多位信息技術專家的高度肯定,普遍認為馬老師的研究成果有以下三個特點:
易學性。該研究是基于我們廣大教師目前已普遍應用的常用軟件,進行了深度應用,最大特點是簡單易學,教師只要有使用這些軟件的初步基礎,就能很順利地學習和應用。
實用性。可以充分發揮常用軟件的功能,用于課堂教學,提高課堂教學效率,同時也能夠提高教師工作的效率和廣大教師的信息技術素養。
創新性。馬老師對Office在教育教學中應用的系統研究到目前為止,國內還沒有類似的研究成果,因此這一深度應用研究具有一定的創新性。
馬九克老師的系列研究叢書的出版,為教師的教育技術的學習提供了良好的教材,它將促進課堂教學,進一步體現教育改革的精神,使課改先進的教育理念得以實踐。該系列叢書可以作為在職教師信息技術培訓教材使用,如果教師學習的時候只是套用,那只能是機械的學習,我們希望學習者在學習過程中能夠像作者馬老師一樣,擁有創新意識,這樣就能在學習和應用中提升創新能力和產生創新成果。教師要利用信息技術創設適宜的教學環境,教育的環境,本質上是一種有助于啟動和啟發思維的酵母,通過環境的創設,可以激發學生學習的興趣,使學生入情入境,獲得學習的快樂感與幸福感。
教育信息化促進教育現代化已經成為教育發展的大趨勢。希望大家夠認清這一教育發展大勢,努力使信息技術成為提高教與學效能的工具與資源,成為促進師生成長的不可或缺的有效環境與資源,以持續提升教學效能。
(張民生:原上海市教委副主任,現任中國教育學會副會長,上海市教委特邀總督學,上海市教育學會會長)