如何學好圖像處理——從小白到大神读虏?
姓名:張慶慶
學號:19021211151
嵌牛導讀:數(shù)字圖像處理技術應用在社會的方方面面娇未,如何學習好圖像處理墨缘,首先應該了解什么是數(shù)字圖像處理以及學好它該從哪些方面入手。
?嵌牛鼻子:數(shù)字圖像處理
嵌牛提問:如何學好數(shù)字圖像處理的入門級指導
轉載源:如何學好圖像處理——從小白到大神零抬??http://www.reibang.com/p/989b8be3b485
嵌牛正文:
什么是數(shù)字圖像處理镊讼?歷史、以及它所研究的內(nèi)容平夜。
說起圖像處理蝶棋,你會想到什么?你是否真的了解這個領域所研究的內(nèi)容忽妒⊥嫒梗縱向來說,數(shù)字圖像處理研究的歷史相當悠久段直;橫向來說吃溅,數(shù)字圖像處理研究的話題相當廣泛。
數(shù)字圖像處理的歷史可以追溯到近百年以前坷牛,大約在1920年的時候罕偎,圖像首次通過海底電纜從英國倫敦傳送到美國紐約。圖像處理的首次應用是為了改善倫敦和紐約之間海底電纜發(fā)送的圖片質(zhì)量京闰,那時就應用了圖像編碼颜及,被編碼后的圖像通過海底電纜傳送至目的地,再通過特殊設備進行輸出蹂楣。這是一次歷史性的進步俏站,傳送一幅圖片的時間從原來的一個多星期減少到了3小時。
1950年痊土,美國的麻省理工學院制造出了第一臺配有圖形顯示器的電子計算機——旋風I號(Whirlwind I)肄扎。旋風I號的顯示器使用一個類似于示波器的陰極射線管(Cathode Ray Tube,CRT)來顯示一些簡單的圖形赁酝。1958年美國Calcomp公司研制出了滾筒式繪圖儀犯祠,GerBer公司把數(shù)控機床發(fā)展成為平板式繪圖儀。在這一時期酌呆,電子計算機都主要應用于科學計算衡载,而為這些計算機配置的圖形設備也僅僅是作為一種簡單的輸出設備。
隨著計算機技術的進步隙袁,數(shù)字圖像處理技術也得到了很大的發(fā)展痰娱。1962年弃榨,當時還在麻省理工學院攻讀博士學位的伊凡·蘇澤蘭(Ivan Sutherland)成功開發(fā)了具有劃時代意義的“畫板”(Sketchpad)程式。而這正是有史以來第一個交互式繪圖系統(tǒng)梨睁,同時這也是交互式電腦繪圖的開端鲸睛。從此計算機和圖形圖像被更加緊密地聯(lián)系到了一起。鑒于伊凡·蘇澤蘭為計算機圖形學創(chuàng)立所做出的杰出貢獻坡贺,他于1988年被授予計算機領域最高獎——圖靈獎官辈。
1964年,美國加利福尼亞的噴氣推進實驗室用計算機對“旅行者七號”太空船發(fā)回的大批月球照片進行處理拴念,以校正航天器上攝影機中各種類型的圖像畸變钧萍,收到了明顯的效果。在后來的宇航空間技術中政鼠,數(shù)字圖像處理技術都發(fā)揮了巨大的作用风瘦。
到了20世紀60年代末期,數(shù)字圖像處理已經(jīng)形成了比較完善的學科體系公般,這套理論在20世紀70年代發(fā)展得十分迅速万搔,并開始應用于醫(yī)學影像和天文學等領域。1972年官帘,美國物理學家阿倫·馬克利奧德·柯麥科(Allan MacLeodCormack)和英國電機工程師戈弗雷·紐博爾德·豪恩斯弗爾德(Godfrey Newbold Housfield)發(fā)明了軸向斷層術瞬雹,并將其用于頭顱診斷。世界第一臺X射線計算機軸向斷層攝影裝置由EMI公司研制成功刽虹,這也就是人們通常所說的CT(Computer Tomograph)酗捌。CT可通過一些算法用感知到的數(shù)據(jù)去重建通過物體的“切片”圖像。這些圖像組成了物體內(nèi)部的再現(xiàn)圖像涌哲,也就是根據(jù)人的頭部截面的投影胖缤,經(jīng)計算機處理來進行圖像重建。鑒于CT對于醫(yī)學診斷技術的發(fā)展所起到的巨大推動作用阀圾,柯麥科和豪恩斯弗爾德于1979年獲得了諾貝爾生理或醫(yī)學獎哪廓。
隨后在2003年,諾貝爾生理或醫(yī)學獎的殊榮再次授予了兩位在醫(yī)療影像設備研究方面做出杰出貢獻的科學家——美國化學家保羅·勞特伯爾(Paul Lauterbur)和英國物理學家彼得·曼斯菲爾(Peter Mansfield)初烘。兩位獲獎者在利用磁共振成像(Magnetic Resonance Imaging涡真,MRI)顯示不同結構方面分別取得了開創(chuàng)性成就。瑞典卡羅林斯卡醫(yī)學院稱肾筐,這兩位科學家在MRI領域的開創(chuàng)性工作哆料,代表了醫(yī)學診療和研究的重大突破。而事實上吗铐,核磁共振的成功同樣也離不開數(shù)字圖像處理方面的發(fā)展剧劝。即使在今天滋捶,諸如MRI圖像降噪等問題依然是數(shù)字圖像處理領域的熱門研究方向烦衣。
說到數(shù)字圖像的發(fā)展歷程,還有一項至關重要的成果不得不提摩窃,那就是電荷耦合元件(Charge-coupled Device谣妻,CCD)萄喳。CCD最初是由美國貝爾實驗室的科學家維拉德·波義耳(Willard Sterling Boyle)和喬治·史密斯(George Elwood Smith)于1969年發(fā)明的。CCD的作用就像膠片一樣蹋半,它能夠把光學影像轉化為數(shù)字信號他巨。今天人們所廣泛使用的數(shù)碼照相機、數(shù)碼攝影機和掃描儀都是以CCD為基礎發(fā)展而來的减江。換句話說染突,我們現(xiàn)在所研究的數(shù)字圖像主要也都是通過CCD設備獲取的。由于波義耳和史密斯在CCD研發(fā)上所做出的巨大貢獻辈灼,他們兩人共同榮獲了2009年度的諾貝爾物理學獎份企。
數(shù)字圖像處理在今天是非常熱門的技術之一,生活中無處不存在著它的影子巡莹,可以說它是一種每時每刻都在改變著人類生活的技術司志。但長久以來,很多人對數(shù)字圖像處理存在著較大的曲解降宅,人們總是不自覺地將圖像處理和Photoshop聯(lián)系在一起骂远。大名鼎鼎的Photoshop無疑是當前使用最為廣泛的圖像處理工具。類似的軟件還有Corel公司生產(chǎn)的CorelDRAW等軟件腰根。
盡管Photoshop是一款非常優(yōu)秀的圖像處理軟件激才,但它的存在并不代表數(shù)字圖像處理的全部理論與方法。它所具有的功能僅僅是數(shù)字圖像處理中的一部分额嘿∪衬眨總的來說,數(shù)字圖像處理研究的內(nèi)容主要包括如下幾個方面:
1)圖像獲取和輸出
2)圖像編碼和壓縮
3)圖像增強與復原
4)圖像的頻域變換
5)圖像的信息安全
6)圖像的區(qū)域分割
7)圖像目標的識別
8)圖像的幾何變換
但圖像處理的研究內(nèi)容岩睁,又不僅限于上述內(nèi)容钞脂!所以說圖像處理的研究話題是相當寬泛的。那現(xiàn)在圖像處理都應用在哪些領域呢捕儒?或許我們可能熟知的例子有(當然冰啃,你應該還能舉出更多例子):
1)一些專業(yè)圖像處理軟件:Photoshop、CorelDRAW……
2)一些手機APP應用:美圖秀秀刘莹、玩圖……
3)一些醫(yī)學圖像處理應用:MRI阎毅、彩超圖像處理……
4)一些制造業(yè)上的應用:元器件檢測、瑕疵檢測……
5)一些攝像頭点弯、相機上的應用:夜間照片的質(zhì)量改善……
6)一些電影工業(yè)上是應用:換背景扇调、電影特技……
什么樣的人會去學(或者需要學)圖像處理?
1)如果你是我上述那些應用領域的從業(yè)者抢肛,你當然需要掌握圖像方面的理論和技術狼钮;2)相關專業(yè)的研究人員碳柱、大專院校的博士生、研究生熬芜。
所謂相關專業(yè)又是指什么呢莲镣?這個答案也可能相當寬泛,例如(但不僅限于此):Computer Science, Software Engineering, Electronic Engineering, Biomedical Engineering, Automation, Control, Applied Mathematics……
如何學好圖像處理——我的一些箴言
1)對于初級入門者
一個扎實的基礎和對于圖像處理理論的完整的涎拉、系統(tǒng)的整體認識對于后續(xù)的深入研究和實踐應用具有非常非常重要的意義瑞侮。
我經(jīng)常喜歡拿武俠小說《天龍八部》中的一段情節(jié)來向讀者說明此中的道理,相信讀者對這部曾經(jīng)被多次搬上銀幕的金庸作品已經(jīng)耳熟能詳了鼓拧。書中講到有個名叫鳩摩智的番僧一心想練就絕世武學半火,而且他也算是個相當勤奮的人了。但是季俩,他錯就錯在太過于急功近利钮糖,甚至使用道家的小無相功來催動少林絕技≈致辏看上去威力無比藐鹤,而且可以在短時間內(nèi)“速成”,但實則后患無窮赂韵。最終鳩摩智走火入魔娱节,前功盡廢,方才大徹大悟祭示。這個故事其實就告訴我們打牢基礎是非常重要的肄满,特別是要取得更長足的發(fā)展,就更是要對基本原理刨根問底质涛,力求甚解稠歉,從而做到庖丁解牛,游刃有余汇陆。
一些看似高深的算法往往是許多基礎算法的組合提升怒炸。例如,令很多人望而卻步的SIFT特征構建過程中毡代,就用到了圖像金字塔阅羹、直方圖、高斯濾波這些非常非辰碳牛基礎的內(nèi)容捏鱼。但是,它所涉及的基礎技術顯然有好幾個酪耕,如果缺乏對圖像處理理論的系統(tǒng)認識导梆,你可能會感覺事倍功半。因為所有的地方好像都是溝溝坎坎。
關于課程——
在這個階段其實對于數(shù)學的要求并不高看尼,你甚至可以從一些感性的角度去形象化的理解圖像處理中很多內(nèi)容(但不包括頻域處理方面的內(nèi)容)递鹉。具體到學習的建議,如果有條件(例如你還在高校里讀書)你最好能選一門圖像處理方面的課程狡忙,系統(tǒng)地完整的地去學習一下梳虽。這顯然是入門的最好辦法。如此一來灾茁,在建立一個完整的、系統(tǒng)的認知上相當有幫助谷炸。如果你沒辦法在學校里上一門這樣的課北专,網(wǎng)上的一些公開課也可以試試。但現(xiàn)在中文MOOC上還沒有這方面的優(yōu)質(zhì)課程推薦旬陡。英文的課程則有很多拓颓,例如美國加州倫斯勒理工學院Rich教授的數(shù)字圖像處理公開課——https://www.youtube.com/channel/UCaiJlKxXamoODQtlx486qJA?spfreload=10。
關于教材——
顯然描孟,只聽課其實還不太夠驶睦,如果能一并讀一本書就最好了。其實不用參考很多書匿醒,只要一本场航,你能從頭讀到尾就很好了。如果你沒有條件去上一門課廉羔,那讀一本來完整的自學一下就更有必要了溉痢。這個階段,去網(wǎng)上到處找博客憋他、看帖子是不行的孩饼。因為你特別需要在這個階段對這門學問建立一個系統(tǒng)的完整的知識體系。東一塊竹挡、西一塊的胡拼亂湊無疑是坑你自己镀娶,你的知識體系就像一個氣泡,可能看起來很大揪罕,但是又脆弱的不堪一擊梯码。
現(xiàn)在很多學校采用岡薩雷斯的《數(shù)字圖像處理》一書作為教材。這是一本非常非常經(jīng)典的著作耸序。但是我必須要提醒讀者:
1)這是一本專門為Electronic Engineering專業(yè)學生所寫的書忍些。它需要有信號與系統(tǒng)、數(shù)字信號處理這兩門課作為基礎坎怪。如果你沒有這兩門課的基礎罢坝,你讀這本書要么是看熱鬧,要么就是看不懂。
下面是岡書中的一張插圖嘁酿。對于EE的學生來說隙券,這當然不是問題。但是如果沒有我說的那兩門課的基礎闹司,其實你很難把握其中的精髓娱仔。H和h,一個大小一個小寫游桩,岡書中有的地方用H牲迫,有的地方用h,這都是有很深刻用意的借卧。原作者并沒有特別說明它們二者的區(qū)別盹憎,因為他已經(jīng)默認你應該知道二者是不同的。事實上铐刘,它們一個表示頻域信號陪每,一個表示時域信號,這也導致有時候運算是卷積镰吵,有時候運算是乘法(當然這跟卷積定理有關)檩禾。所以我并不太建議那些沒有這方面基礎的學生在自學的時候讀這本書。
2)岡薩雷斯教授的《數(shù)字圖像處理》第一版是在1977年出版的疤祭,到現(xiàn)在已經(jīng)快40年了盼产;現(xiàn)在國內(nèi)廣泛使用的第二版是2002年出版的(第三版是2007年但是其實二者差異并不大),到現(xiàn)在也有20年左右的時間了画株。事實上辆飘,岡薩雷斯教授退休也有快30年了。所以這本書的內(nèi)容已經(jīng)偏于陳舊谓传。數(shù)字圖像處理這個領域的發(fā)展絕對是日新月異蜈项,突飛猛進的。特別在最近二三十年里续挟,很多新思路紧卒,新方法不斷涌現(xiàn)。如果你看了我前面推薦的Rich教授的公開課(這也是當前美國大學正在教學的內(nèi)容)诗祸,你一下子就會發(fā)現(xiàn)跑芳,原來我們的教育還停留在改革開放之前外國的水平上。這其實特別可怕直颅。所以我覺得岡薩雷斯教授的《數(shù)字圖像處理》作為學習過程中的一個補充還是不錯的博个,但是如果把它作為主參考,那真的就是:國外都洋槍洋炮了功偿,我們還在大刀長矛盆佣。
那么現(xiàn)在問題來了,對于圖像處理學習者而言到底看什么書好呢?我的意見是你可以選擇下面兩本書中的任何一本《數(shù)字圖像處理原理與實踐(Matlab版)》共耍,以及《數(shù)字圖像處理:技術詳解與Visual C++實踐》虑灰,當然選擇的標準之一就是到底你更擅長使用MATLAB還是C++。
2)對于中級水平者
紙上得來終覺淺痹兜,絕知此事要躬行穆咐。對于一個具有一定基礎的,想更進一步的中級水平的人來說字旭,這個階段最重要的就是增強動手實踐的能力对湃。
還是說《天龍八部》里面的一個角色——口述武功、嘆為觀止的王語嫣遗淳。王語嫣的腦袋里都是武功秘籍熟尉,但問題是她從來都沒練過一招一式。結果是洲脂,然并卵。所以光說不練肯定不靈啊剧包。特別是恐锦,如果你將來想從事這個行業(yè),結果一點代碼都不會寫疆液,那幾乎是不可想象的一铅。學習階段,最常被用來進行算法開發(fā)的工具是Matlab和OpenCV堕油。你可以把這兩個東西都理解為一個相當完善的庫潘飘。當然,在工業(yè)中C++用得更多掉缺,所以Matlab的應用還是很有限的卜录。前面我們講到,圖像處理研究內(nèi)容其實包括:圖像的獲取和編解碼眶明,但使用Matlab和OpenCV就會掩蓋這部分內(nèi)容的細節(jié)艰毒。你當然永遠不會知道,JPEG文件到底是如何被解碼的搜囱。
如果你的應用永遠都不會涉及這些話題丑瞧,那么你一直用Matlab和OpenCV當然無所謂。例如你的研究領域是SIFT蜀肘、SURF這種特征匹配绊汹,可以不必理會編解碼方面的內(nèi)容。但是如果你的研究話題是降噪或者壓縮扮宠,可能你就繞不開這些內(nèi)容西乖。最開始學的時候,如果能把這部分內(nèi)容也自己寫寫,可能會加深你的理解浴栽。以后做高級應用開發(fā)時荒叼,再調(diào)用那些庫。所以具體用什么典鸡,要不要自己寫被廓,是要視你所處的階段和自己的實際情況而定的。以我個人的經(jīng)驗萝玷,在我自學的時候嫁乘,我就動手寫了Magic House,我覺得這個過程為我奠定了一個非常夯實的基礎球碉,對于我后續(xù)的深入研究很有幫助蜓斧。
下面這個文中,我給出了一些這方面的資源睁冬,代碼多多挎春,很值得參考學習:圖像處理與機器視覺網(wǎng)絡資源收羅
http://blog.csdn.net/baimafujinji/article/details/32332079
3)對于高級進階者
到了這個程度的讀者,編程實現(xiàn)之類的基本功應該不在話下豆拨。但是要往深直奋,往高去學習、研究和開發(fā)圖像處理應用施禾,你最需要的內(nèi)容就變成了數(shù)學脚线。這個是攔在很多處于這個階段的人面前的一大難題。如果你的專業(yè)是應用數(shù)學弥搞,當然你不會感覺有問題邮绿。但如果是其他專業(yè)背景的人就會越發(fā)感覺痛苦。
如果你的圖像處理是不涉及機器學習內(nèi)容的攀例,例如用Poisson方程來做圖像融合船逮,那你就要有PDE數(shù)值解方面的知識;如果你要研究KAZE特征肛度,你就必須要知道AOS方面的內(nèi)容傻唾。如果你研究TV降噪,你又要知道泛函分析中的BV空間內(nèi)容……這些詞你可能很多都沒聽過承耿」诮荆總的來說,這塊需要的內(nèi)容包括:復變函數(shù)加袋、泛函分析凛辣、偏微分方程、變分法职烧、數(shù)學物理方法……
如果你要涉足機器視覺方法的內(nèi)容扁誓,一些機器學習和數(shù)據(jù)挖掘方法的內(nèi)容就不可或缺防泵。而這部分內(nèi)容同樣需要很強大的數(shù)學基礎,例如最大似然方法蝗敢、梯度下降法捷泞、歐拉-拉格朗日方程、最小二乘估計寿谴、凸函數(shù)與詹森不等式……
當然锁右,走到這一步,你也已經(jīng)脫胎換骨讶泰,從小白到大神啦咏瑟!路漫漫其修遠兮,吾將上下而求索痪署。
嵌怕肱ⅲ總結:如何入門數(shù)字圖像處理的簡單導讀,持之以恒狼犯,你將獲得成功余寥。