|
-- 會員 / 註冊 --
|
|
|
|
學習OpenCV 3(中文版) ( 簡體 字) |
作者:〔美〕安德里安 ? 凱勒(Adrian Kaehler) 加里 ? 布拉德斯基(Gary Bradski) 著 阿丘科技 劉昌祥 吳雨培 王成龍 崔玉芳 等譯 | 類別:1. -> 教材 -> 數位影像處理 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 49639 詢問書籍請說出此書號!【缺書】 NT售價: 745 元 |
出版日:7/1/2018 |
頁數: |
光碟數:0 |
|
站長推薦: |
印刷: | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302504184 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:這本書提供了C++開源計算機視覺庫(OpenCV)3.0版本的工作指南,介紹了計算機視覺相關領域的通用背景,以便讀者更有效地使用OpenCV。 本書的目標 計算機視覺在以下四個趨勢的引導下,已經成為一個快速發展的領域: ? 智能手機的出現讓數以百萬計的用戶都擁有了相機 ? 互聯網和搜索引擎聚集了海量的圖像和視頻數據 ? 計算資源變成一種廉價的商品 ? 視覺算法發展得更加成熟(由于深度神經網絡的出現,OpenCV也正在逐漸支持這方面技術,詳情可以參考opencv_contrib中的dnn) OpenCV通過幫助成千上萬的視覺工作者去做更多富有創造性的工作,在圖像處理領域扮演著重要的角色。由于OpenCV 3.x的存在,不管你是學生還是研究人員,是專家還是初學者,都可以快速建立應用,并且在OpenCV所提供的基于C++的多平臺視覺基礎架構上實現一個跨越性的發展。 本書的目標如下: ? 通過詳細講述函數的慣用用法以及正確用法,成為一本更好的OpenCV經典參考文檔 ? 幫助讀者對各種計算機視覺算法的工作原理有一個基礎的理解 ? 培養讀者,使其知道什么算法工具可以使用并且應該在什么時候使用 ? 提供給讀者許多有效的代碼,提升其應用計算機視覺和機器學習算法的開發效率 ? 針對問題代碼給讀者提供建議,教讀者如何解決一些簡單或復雜的問題 本書的寫作方式是力求幫助讀者快速在計算機視覺領域做一些有意思的事情,因此直觀地解釋了算法是如何工作的,可以指導讀者設計和調試計算機視覺程序,還能夠使計算機視覺和機器學習算法的形式化描述更容易理解和記憶。 本書受眾 本書包含描述、工作代碼示例和OpenCV 3.x庫中包含的C++計算機視覺工具說明。因此,本書對各種不同類型的用戶都有所幫助。 專業人士和開發者 對于需要快速設計原型或實現專業計算機視覺系統的專家而言,示例代碼提供的框架可以幫助他們在此基礎上進行快速開發。我們對算法的描述可以快速教會或者提醒讀者如何使用它們。由于OpenCV 3.x的設計基于位于硬件加速層(HAL)之上,所以它所實現的算法都可以高效運行,并且能夠無縫應用各種硬件平臺的諸多加速特性。 學生 這是我們希望能廣泛應用于學校的教程。直觀的解釋、詳細的文檔以及示例代碼將能夠幫助你在計算機視覺之路上更快地前進,做更有趣的項目,最終為這個領域開拓新的研究方向。 教師 計算機視覺是一個快速發展的領域。我們發現,讓學生快速瀏覽容易讀的文章并且教師在必要的地方進行說明,再輔之以現階段的論文或講座,是一種非常高效的授課方法。與此同時,學生可以提前開始課程設計,并嘗試做一些更有挑戰性的任務。 愛好者 計算機視覺超有趣的,讓我們一起深入探索它吧。 我們致力于為讀者提供豐富的指導、文檔以及代碼來快速建立實時的視覺應用。 本書不是什么 這本書不是正式的論文,我們的確在很多地方討論了數學上的細節注1,但這都是為了建立一種基于此的更深層次的直覺以及闡明算法中所構建的假設之含義。在這里,我們沒有嘗試進行一些更加正式的數學解釋,因為過多的數學解釋可能會使一些人覺得枯燥。 這本書本質上來說更偏向于“應用”,它將作為一個基礎的幫助,但是并不著力于介紹某個具體的計算機視覺領域分類(比如醫學圖像或者遙感圖像分析)。 也就是說,我們相信通過閱讀這里的解釋,學生不僅能更好地學習理論,而且還能記住更多、更久。因此,這本書將是一個很好的理論課程的輔助教材,并且很適合入門課程或以項目為中心的課程使用。 本書例程 本書所有例程都基于OpenCV 3.x。這些代碼在Linux,Windows 以及 OS X都可以運行。OpenCV也有充足的對安卓和IOS 的支持。本書所有代碼都可以在本書網站(http://bit.ly/learningOpenCV3)獲取,OpenCV的源碼可以在GitHub(https://github.com/opencv/opencv)獲取,OpenCV的預編譯版本可以在SourceFroge(https://sourceforge.net/projects/opencvlibrary/)獲取。 Op e nCV現在也處于開發過程中,每個季度都有新的官方版本發布。如果希望得到最新版本,可以從前述的GitHub網站得到代碼更新。OpenCV的官方網站是http://opencv.org,如果是開發人員,還可以瀏覽它的維基頁面:https://github.com/opencv/opencv/wiki。 預備知識 在大多數情況下,讀者只需要了解如何使用C++編程。本書許多數學相關的段落都不是必須的并且也做出了相應的標記。本書需要的數學基礎包括簡單的線性代數以及基礎矩陣運算,并且假設讀者了解最小二乘優化、高斯分布的基礎知識、貝葉斯法則以及一些簡單方程的衍生和變化。 本書對數學的介紹是為了支持建立一種對算法的直覺。讀者可以跳過數學部分以及算法描述部分,只閱讀函數解釋以及代碼示例,也可以構建視覺應用并且使其正常工作。 如何使用本書 本書并不一定要按照章節順序閱讀,它可以作為一本用戶手冊:需要的時候,可以用來查詢函數,如果你希望了解它的工作原理,請閱讀該函數相關的描述。本書的意圖在于提供一本指南。它提供對計算機視覺的基本理解以及如何在何時使用選擇的算法。 本書的寫作目的是作為計算機視覺的本科或研究生課程的輔助教材或教科書。采取的基本策略是先讓學生能夠快速閱讀課本,然后在其他教科書或者文章中用更正式的章節進行補充閱讀。每一章最后都配有練習題,可以幫助測試學生對知識的掌握程度并培養更多圖像處理方面的意識。 可以采用如下任意一種方法來閱讀本書。 抓取重點 先閱讀第1~5章,之后只閱讀你所需要的章節。除了第18章和第19章(涵蓋了相機校正和雙目視覺)以及第20章~第22章(涵蓋機器學習),這本書并不需要按照章節順序閱讀。以項目為導向的學生和研發人員可以用這種方式閱讀。 精讀 堅持每周閱讀兩章,這樣你就可以在11周之內讀完第1章~第22章(第23章很短)。從項目開始,深入到具體研究領域,適當地使用額外的文獻和論文作為補充。 速成 在可以理解的基礎上盡可能快地瀏覽本書,閱讀第1章~第23章,之后開始項目,并使用相關文獻和論文在某一個領域進行更深入的研究。這也許是專業人員的一個選擇,但也可能適合更高級的計算機視覺課程。 第20章對機器學習進行了簡要的介紹,在此之后的第21章和第22章將對機器學習算法及其在OpenCV中的實現和實戰進行更詳細的解釋。當然,機器學習是目標識別以及計算機視覺的重要組成部分,相關知識非常豐富以至于可以獨立成書。專業人員會發現這本書是進一步探索的一個合適的起點,或者也可以僅僅對這一部分的OpenCV代碼進行深入研究。在OpenCV 3.x中,機器學習的接口已經大大簡化和統一。 我們喜歡的計算機視覺教學方式是,在學生基本能夠理解算法工作原理的基礎上盡可能快速展開教學,然后讓他們進一步加深理解,進而開始學習有意義的課程設計,同時通過相關領域的文獻和論文讓學生對所選擇的領域擁有更深刻和系統的認識。這種方法適用于半學期、一學期以及兩學期的課程。學生可以快速開始,在對視覺項目僅僅有一般認識的時候就開始編碼,等到進行更富挑戰性和更耗時的工作的時候,指導教師可以提供適當的幫助。 而對于計劃時間更長的課程來說,OpenCV項目本身就可以成為項目管理的指導。先建立工作系統,然后用更多的知識、細節和研究進一步加以完善。這類課程的目的是讓每個項目都有一個值得自己發表的地方并且其中一些真的能夠發展壯大起來。 3.x的代碼框架,Buildbots、GitHub的使用,pull request,單元測試和回歸測試,文檔,這些對商業軟件架構來說都是很好的示例,值得參考。 本書約定 本書中使用下列約定。 斜體(Italic) 指示新的術語、URL、電子郵件地址、文件名、拓展名、路徑名、文件夾和Unix工具。 固定寬度(Constant Width) 指示指令、選項、選擇、變量、屬性、鍵、函數、類型、類、命名空間、方法、模塊、參數、值、對象、時間、事件句柄、XML標記、HTML標記、文件的內容或者指令的輸出。 加粗固定寬度(Constant width bold) 指示指令以及其他應該由用戶輸入的文本。也用來著重顯示代碼片段。 斜體固定寬度(Constant Width Italic) 指示應當由用戶提供的值取代的文本。 […] 指示參考目錄的引用。 這個標識表示建議或者一般性的筆記。 這個標識表示警告或需要注意的地方。 使用代碼例程 補充材料(代碼例程和練習等)都可以在https://github.com/oreillymedia/Learning-OpenCV-3_examples下載。 OpenCV不管是對于商業還是學術使用都是免費的,本書的代碼我們也使用了相同的許可。不管是作為作業、研究還是商業產品,都可以使用。我們會非常感謝你在自己的文章中引用這本書,不過這不是必須的。引用通常包含標題、作者、出版商以及ISBN。 比如:“Learning OpenCV 3 by Adrian Kaehler and Gary Bradski (O’Reilly)。Copyright 2017 Adrian Kaehler, Gary Bradski, 978-1-491-93799-0。” 除了了解如何幫助你完成你的作業(最好保密),我們很樂意聽到你將計算機視覺用于學術研究或者課堂教學以及使用OpenCV來幫助你開發商業產品。同樣,這不是必須的,我們始終歡迎你們的來信。 O’Reilly Safari Safari是企業、政府、教育工作者和個人的會員制培訓平臺。該平臺的成員可以獲取上千種圖書、培訓視頻、學習路線、交互教程以及來自超過250個出版商的播放列表,包括O’Reilly Media,Harvard Business Review,Prentice Hall Professional,Addison-Wesley Professional,Microsoft Press,Sams,Que,Peachpit Press,Adobe,Focal Press,Cisco Press,John Wiley & Sons,Syngress,Morgan Kaufmann,IBM Redbooks,Packt,Adobe Press,FT Press,Apress,Manning,New Riders,McGraw-Hill,Jones & Bartlett,Course Technology以及其他一些出版商。 更多信息請訪問http://oreilly.com/safari。 聯系方式 請把你對本書的意見和疑問發給出版社: 美國: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中國: 北京市西城區西直門南大街2號成銘大廈C座807室(100035) 奧萊利技術咨詢(北京)有限公司 我們還有一個服務于本書的網站。那里有示例的列表以及未來版本的計劃。點擊http://bit.ly/learningOpenCV3了解這些信息。 評論或是詢問這本書技術相關的問題,請發送郵件到bookquestions@oreilly.com。 關于本書、課程、會議以及新聞更多信息,請訪問我們的網站:http://www.oreilly.com在FaceBook上找到我們:http://facebook.com/oreilly在Twitter上關注我們:http://twitter.com/oreillymedia 在YouTube上觀看我們:http://www.youtube.com/oreillymedia 致謝 一個長期的開源項目通常經歷很多人的加入和離開。每個人都從不同方面做出了貢獻。這個庫的貢獻列表已經太長而不適合在這里展示,但是可以訪問與OpenCV綁定的文檔/opencv/docs/HTML/Contributors/doc_contributors.html,查看貢獻列表。 感謝對OpenCV的幫助 英特爾是OpenCV誕生的地方,感謝英特爾在這個庫發起和成長的過程中所做出的巨大支持。時光荏苒,英特爾始終在為OpenCV籌備競賽并做出貢獻。英特爾還捐贈了內置的性能原語代碼,為英特爾的架構提供了無縫加速。感謝英特爾所做的這一切。 谷歌一直是Op e nCV開發者的穩定資助者,它為谷歌編程之夏(Go o g l e Summe r o f Code,GSoC)項目的Opencv實習生提供了贊助。這場活動貢獻了許多杰出的工作成果。柳樹車庫(Willow Garage)公司提供了資金,致力于將OpenCV 2.0版本提升到3.0版本成果。在這些日子里,計算機視覺公司Itseez(最近被英特爾收購)提供了大量的工程師支持并承擔了網站維護工作。英特爾已經表示繼續支持維護網站(謝謝)。 在軟件層面,特別需要感謝一些機構和個人,尤其是(英特爾)俄羅斯的軟件團隊。其中最主要的是俄羅斯首席程序員Vadim Pisarevsky(瓦迪姆 ? 彼薩里夫斯)。他是這個庫最大的獨立貢獻者。Vadim還在項目引爆前的蕭條時期管理并且發展了OpenCV。如果要把有些人稱為OpenCV的英雄,那么一定非他莫屬。他的技術見解在我們寫書的時候也起到了巨大的幫助,在管理方面他也受到了Victor Eruhimov的支持,俄羅斯視覺公司Itseez的聯合創始人,現在是Itseez3D(已被英特爾收購)的CEO。 在每周會議上,有幾個人一直在幫助管理庫,他們是Grace Vesom,Vincent Rabaud,Stefano Fabri,當然還有Vadim Pisarevsky。這些會議可以在https://github.com/opencv/opencv/wiki/Meeting_notes看到。 在此期間,許多人都為OpenCV庫做出了貢獻,最近一些貢獻者分別是Dinar Ahmatnurov,Pablo Alcantarilla,Alexander Alekhin,Daniel Angelov,Dmitriy Anisimov,Anatoly Baksheev,Cristian Balint,Alexandre Benoit,Laurent Berger,Leonid Beynenson,Alexander Bokov,Alexander Bovyrin,Hilton Bristow,Vladimir Bystritsky,Antonella Cascitelli,Manuela Chessa,Eric Christiansen,Frederic Devernay,Maria Dimashova,Roman Donchenko,Vladimir Dudnik,Victor Eruhimov,Georgios Evangelidis,Stefano Fabri,Sergio Garrido,Harris Gasparakis,Yuri Gitman,Lluis Gomez,Yury Gorbachev,Elena Gvozdeva,Philipp Hasper,Fernando J. Iglesias Garcia,Alexander Kalistratov,Andrey Kamaev,Alexander Karsakov,Rahul Kavi,Pat O’Keefe,Siddharth Kherada,Eugene Khvedchenya,Anna Kogan,Marina Kolpakova,Kirill Kornyakov,Ivan Korolev,Maxim Kostin,Evgeniy Kozhinov,Ilya Krylov,Laksono Kurnianggoro,Baisheng Lai(賴百勝),Ilya Lavrenov,Alex Leontiev,Gil Levi,Bo Li(李波),Ilya Lysenkov,Vitaliy Lyudvichenko,Bence Magyar,Nikita Manovich,Juan Manuel Perez Rua,Konstantin Matskevich,Patrick Mihelich,Alexander Mordvintsev,Fedor Morozov,Gregory Morse,Marius Muja,Mircea Paul Muresan,Sergei Nosov,Daniil Osokin,Seon-Wook Park,Andrey Pavlenko,Alexander Petrikov,Philip aka Dikay900,Prasanna,Francesco Puja,Steven Puttemans,Vincent Rabaud,Edgar Riba,Cody Rigney,Pavel Rojtberg,Ethan Rublee,Alfonso Sanchez-Beato,Andrew Senin,Maksim Shabunin,Vlad Shakhuro,Adi Shavit,Alexander Shishkov,Sergey Sivolgin, Marvin Smith,Alexander Smorkalov,Fabio Solari,Adrian Stratulat,Evgeny Talanin,Manuele Tamburrano,Ozan Tonkal,Vladimir Tyan,Yannick Verdie,Pierre Emmanuel Viel,Vladislav Vinogradov,Pavel Vlasov,Philipp Wagner,Yida Wang(王一達),Jiaolong Xu(許驕龍),Marian Zajko和Zoran Zivkovic。 這里(https://github.com/opencv/opencv/wiki/ChangeLog)還列出了其他的貢獻者。最后,Arraiy現在也在協助維護OpenCV.org(免費開源的代碼庫)。 感謝對本書提供幫助的人 在準備這本書和這本書的前一個版本時,我們得到了《紐約時報》科技記者約翰 ? 馬爾科夫(John Ma rkoff)譯注1的大力幫助,感謝他的鼓勵、不厭其煩的指導以及多年所累積的一線寫作經驗。我們還要感謝O’Reilly(奧萊利)的許多編輯,特別是Dawn Schanafelt(道恩 ? 施納菲爾特),在叛逆的作者準備創業的時候,他滿懷耐心地繼續跟進本書相關工作。這本書是一個由OpenCV 2.x到3.x到長期項目。非常感謝O’Reilly始終站在我們這一邊。 Adrian致謝 在第1版(Learning OpenCV)的寫作過程中,我邀請一些優秀的教師來協助我,使得本書工作變成了可能。在這些年,從各位那里獲得的指導變得愈發珍貴。我對他們每個人都懷有誠摯的謝意。我還特別想在這份感謝名單上加上我的導師湯姆 ? 湯貝雷諾,我欠他非常多,在他的記憶里,我會把我的貢獻獻給這本書。他是一個具有非凡智慧的人,我很驕傲自己有機會追隨他的足跡。最后,深深感謝OpenCV社區,感謝你們對第1版的歡迎,感謝你們耐心等待,這一版歷經波折總算最終完成。 這一版花了很長時間才完成,在這幾年里,我有幸與數十家不同的公司合作,擔任顧問并進行技術研發,先后作為董事會的成員、顧問團的成員、技術總監、研發人員以及始創人。我有幸看到并熱愛著研發的方方面面。我在Applied Minds公司很多年,在那里創建并且運行我們的機器人部門,更準確地說是Applied Minds子公司。我很欣慰地看到OpenCV是許多優秀項目的核心,涉及領域包括醫療、農業、航空、國防和國土安全。 我同樣高興地發現這本書的第1版已經成為幾乎所有這些機構中的案頭必備。Gary和我用來構建斯坦利(Stanley)的技術已經成為無數項目的一部分,其中至少包含許多正在研發的自動駕駛項目。它們其中的某一個,或許所有都是為了改變或改善無數人的日常生活而準備的,成為其中的一員是多么讓人開心啊!在這些年我遇到過無數驚人的故事——有關于第1版如何在人們所工作或教學的領域讓他們受益,幫助他們建立事業,幫助他們完成巨大的成就——這些事情成為快樂和奇跡的源泉。我希望這本新書將繼續為你們所有人服務,并激勵和支持新一代科學家、工程師和發明家前行。 在本書的最后一章,我們開始了在機器人、人工智能、視覺和其他領域工作的新篇章。就我個人而言,我深深地感激那些引領和激勵我的人:教師、導師以及相關書籍的作者。我希望我們這本書的新版本能夠讓人在他們自己的生活中邁出重要的一步,希望看到你們邁向成功! Gary致謝 我在1999年創立了OpenCV項目,目的是能夠向所有人提供我當時只有在頂級實驗室里才能見到的基礎框架,并借此來加速計算機視覺和人工智能技術的發展。盡管很少有目標能夠和預期一樣實現,但我慶幸這一計劃在時隔17年后終于實現了。完成這一目標還得歸功于多方的幫助,有太多的朋友和貢獻者,我沒辦法在此一一感謝注1。但我還是希望在這里特別感謝我在英特爾開始工作時所在的俄羅斯研究團隊,它們造就了一個成功的計算機視覺公司(Itseez.com),并最終被英特爾收購。我們作為同事開始工作并建立了深厚的友誼。 由于家中有三個十幾歲的孩子,我的妻子Sonya Bradski(桑雅 ? 布拉德斯基)做了更多的工作來支持我寫作本書,對于她,我的感謝與愛難以言表。我也一樣愛我的孩子,但要說他們加速了我這本書的出版,委實說不出口:)。 我從幫助建立Industrial Perception公司(2013年被谷歌收購)的時候就萌生了創作第2版的想法。從此以后,寫書的工作就不定期地在周末和深夜進行。不知不覺,現在已經是2016年,真是時光飛逝如電啊!我在第23章結束時所做的一些思考,靈感來源于我親自參與過的機器人項目,一個由柳樹車庫制造的叫PR2的雙臂機器人以及斯坦福的斯坦利(Stanley)項目,這個機器人贏得了DARPA機器人挑戰賽200萬美元的大獎。 讀者朋友們,在我們結束本書創作之際,由衷地希望在創業公司、實驗室、學術網站、會議、車間、風險投資以及正在研發的很酷的項目中看到你們的身影。然后輕松地互相致意,談一談你正在做的新東西。我發起了OpenCV,為了共同的利益來支持并加速計算機視覺以及人工智能技術,接下來要看你們的了。我們生活在一個充滿創意的世界里,一個人可以創造一個罐子,下一個人就能把這個罐子變成一個鼓,如此等等,都是創造!用OpenCV來創造一些可以造福于人類的東西吧! |
內容簡介:計算機視覺是在圖像處理的基礎上發展起來的新興學科。OpenCV是一個開源的計算機視覺庫,是英特爾公司資助的兩大圖像處理利器之一。它為圖像處理、模式識別、三維重建、物體跟蹤、機器學習和線性代數提供了各種各樣的算法。 《學習OpenCV 3(中文版)》由OpenCV發起人所寫,站在一線開發人員的角度用通俗易懂的語言解釋了OpenCV的緣起和計算機視覺基礎結構,演示了如何用OpenCV和現有的自由代碼為各種各樣的機器進行編程,這些都有助于讀者迅速入門并漸入佳境,興趣盎然地深入探索計算機視覺領域。 《學習OpenCV 3(中文版)》可作為信息處理、計算機、機器人、人工智能、遙感圖像處理、認知神經科學等有關專業的高年級學生或研究生的教學用書,也可供相關領域的研究工作者參考。 |
目錄:譯者序xvii 前言xxi 第1章概述1 什么是OpenCV1 OpenCV怎么用2 什么是計算機視覺3 OpenCV的起源6 OpenCV的結構7 使用IPP來加速OpenCV8 誰擁有OpenCV9 下載和安裝OpenCV9 安裝9 從Git獲取最新的OpenCV12 更多的OpenCV文檔13 提供的文檔13 在線文檔和維基資源13 OpenCV貢獻庫15 下載和編譯Contributed模塊16 可移植性16 小結17 練習17 第2章OpenCV初探19 頭文件19 資源20 第一個程序:顯示圖片21 第二個程序:視頻23 跳轉24 簡單的變換28 不那么簡單的變換30 從攝像頭中讀取32 寫入AVI文件33 小結34 練習35 第3章了解OpenCV的數據類型37 基礎知識37 OpenCV的數據類型37 基礎類型概述38 深入了解基礎類型39 輔助對象46 工具函數53 模板結構60 小結61 練習61 第4章圖像和大型數組類型63 動態可變的存儲63 cv::Mat類N維稠密數組64 創建一個數組65 獨立獲取數組元素69 數組迭代器NAryMatIterator72 通過塊訪問數組元素74 矩陣表達式:代數和cv::Mat75 飽和轉換77 數組還可以做很多事情78 稀疏數據類cv::SparesMat79 訪問稀疏數組中的元素79 稀疏數組中的特有函數82 為大型數組準備的模板結構83 小結85 練習86 第5章矩陣操作87 矩陣還可以做更多事情87 cv::abs()90 cv::add()91 cv::addWeighted()92 cv::bitwise_and()94 cv::bitwise_not()94 cv::bitwise_or()94 cv::bitwise_xor()95 cv::calcCovarMatrix()95 cv::cartToPolar()97 cv::checkRange()97 cv::compare()98 cv::completeSymm()99 cv::convertScaleAbs()99 cv::countNonZero()100 cv::Matcv::cvarrToMat()100 cv::dct()101 cv::dft()102 cv::cvtColor()103 cv::determinant()106 cv::divide()106 cv::eigen()106 cv::exp()107 cv::extractImageCOI()107 cv::flip()108 cv::gemm()108 cv::getConvertElem()和cv::getConvertScaleElem()109 cv::idct()110 cv::inRange()110 cv::insertImageCOI()111 cv::invert()111 cv::log()112 cv::LUT()112 cv::Mahalanobis()113 cv::max()114 cv::mean()115 cv::meanStdDev()116 cv::merge()116 cv::min()116 cv::minMaxIdx()117 cv::minMaxLoc()118 cv::mixChannels()119 cv::mulSpectrums()120 cv::multiply()121 cv::mulTransposed()121 cv::norm()122 cv::normalize()123 cv::perspectiveTransform()125 cv::phase()125 cv::polarToCart()126 cv::pow()126 cv::randu()127 cv::randn()127 cv::repeat()129 cv::scaleAdd()129 cv::setIdentity()130 cv::solve()130 cv::solveCubic()131 cv::solvePoly()132 cv::sort()132 cv::sortIdx()133 cv::split()133 cv::sqrt()134 cv::subtract()135 cv::sum()135 cv::trace()135 cv::transform()136 cv::transpose()136 小結137 練習137 第6章繪圖和注釋139 繪圖139 藝術線條和填充多邊形140 字體和文字146 小結148 練習148 第7章OpenCV中的函數子151 操作對象151 主成分分析(cv::PCA)151 奇異值分解cv::SVD154 隨機數發生器cv::RNG157 小結160 練習160 第8章圖像、視頻與數據文件163 HighGUI模塊:一個可移植的圖形工具包163 圖像文件的處理164 圖像的載入與保存165 關于codecs的一些注釋167 圖片的編碼與解碼168 視頻的處理169 使用cv::VideoCapture對象讀取視頻流169 使用cv::VideoWriter對象寫入視頻175 數據存儲176 cv::FileStorage的寫入177 使用cv::FileStorage讀取文件179 cv::FileNode180 小結183 練習183 第9章跨平臺和Windows系統187 基于Windows開發187 HighGUI原生圖形用戶接口188 通過Qt后端工作199 綜合OpenCV和全功能GUI工具包209 小結222 練習222 第10章濾波與卷積225 概覽225 預備知識225 濾波、核和卷積225 邊界外推和邊界處理227 閾值化操作230 Otsu算法233 自適應閾值233 平滑235 簡單模糊和方框型濾波器236 中值濾波器238 高斯濾波器239 雙邊濾波器240 導數和梯度242 索貝爾導數242 Scharr濾波器244 拉普拉斯變換245 圖像形態學246 膨脹和腐蝕247 通用形態學函數250 開操作和閉操作251 形態學梯度254 頂帽和黑帽256 自定義核258 用任意線性濾波器做卷積259 用cv::filter2D()進行卷積259 通過cv::sepFilter2D使用可分核260 生成卷積核260 小結262 練習262 第11章常見的圖像變換267 概覽267 拉伸、收縮、扭曲和旋轉267 均勻調整268 圖像金字塔269 不均勻映射273 仿射變換274 透視變換279 通用變換282 極坐標映射282 LogPolar283 任意映射287 圖像修復287 圖像修復288 去噪289 直方圖均衡化292 cv::equalizeHist()用于對比均衡294 小結295 練習295 第12章圖像分析297 概覽297 離散傅里葉變換297 cv::dft()離散傅里葉變換298 cv::idft()用于離散傅里葉逆變換300 cv::mulSpectrums()頻譜乘法300 使用傅里葉變換進行卷積301 cv::dct()離散余弦變換303 cv::idct()離散余弦逆變換304 積分圖304 cv::integral()標準求和積分306 cv::integral()平方求和積分306 cv::integral()傾斜求和積分307 Canny邊緣檢測307 cv::Canny()309 Hough變換309 Hough線變換309 Hough圓變換313 距離變換316 cv::distanceTransform()無標記距離變換317 cv::distanceTransform()有標記距離變換317 分割318 漫水填充318 分水嶺算法322 Grabcuts算法323 Mean-Shift分割算法325 小結326 練習326 第13章直方圖和模板329 OpenCV中直方圖的表示331 cv::calcHist():從數據創建直方圖332 基本直方圖操作334 直方圖歸一化334 直方圖二值化335 找出最顯著的區間335 比較兩個直方圖337 直方圖用法示例339 一些復雜的直方圖方法342 EMD距離342 反向投影347 模板匹配350 方差匹配方法(cv::TM_SQDIFF)351 歸一化方差匹配方法(cv::TM_SQDIFF_NORMED)352 相關性匹配方法(cv::TM_CCORR)352 歸一化的互相關匹配方法(cv::TM_CCORR_NORMED)352 相關系數匹配方法(cv::TM_CCOEFF)352 歸一化的相關系數匹配方法(cv::TM_CCOEFF_NORMED)352 小結355 練習355 第14章輪廓359 輪廓查找359 輪廓層次360 繪制輪廓364 輪廓實例365 另一個輪廓實例366 快速連通區域分析368 深入分析輪廓370 多邊形逼近370 幾何及特性概括372 幾何學測試377 匹配輪廓與圖像378 矩378 再論矩380 使用Hu矩進行匹配383 利用形狀場景方法比較輪廓384 小結388 練習389 第15章背景提取391 背景提取概述391 背景提取的缺點392 場景建模392 像素393 幀間差分396 平均背景法397 累計均值,方差和協方差403 更復雜的背景提取方法410 結構413 進行背景學習414 存在移動的前景物體時進行背景學習417 背景差分:檢測前景物體418 使用碼書法的背景模型419 關于碼書法的其他想法419 使用連通分量進行前景清理420 小測試423 兩種背景方法的對比425 OpenCV中的背景提取方法的封裝425 cv::BackgroundSubstractor基類426 KB方法427 Zivkovic方法428 小結431 練習431 第16章關鍵點和描述子433 關鍵點和跟蹤基礎433 角點檢測434 光流簡介437 Lucas-Kanade稀疏光流法438 廣義關鍵點和描述符448 光流,跟蹤和識別450 OpenCV一般如何處理關鍵點和描述符451 核心關鍵點檢測方法461 關鍵點過濾497 匹配方法499 結果顯示505 小結508 練習508 第17章跟蹤511 跟蹤中的概念511 稠密光流512 Farneback多項式擴展算法513 DualTV-L1模型515 簡單光流算法519 Mean-Shift算法和Camshift追蹤522 Mean-Shift算法522 Camshift526 運動模板526 估計533 卡爾曼濾波器534 擴展卡爾曼濾波器簡述549 小結551 練習551 第18章相機模型與標定553 相機模型554 射影幾何基礎556 Rodrigues變換558 透鏡畸變559 標定562 旋轉矩陣和平移向量563 標定板566 單應性572 相機標定576 矯正587 矯正映射587 使用cv::convertMaps()在不同表示方式之間轉換矯正映射588 使用cv::initUndistortRectifyMap()計算矯正映射589 使用cv::remap()矯正圖像591 使用cv::undistort()進行矯正591 使用cv::undistortPoints()進行稀疏矯正591 與標定結合592 小結595 練習596 第19章投影與三維視覺599 投影600 仿射變換與透視變換601 鳥瞰圖變換實例602 三維姿態估計606 單攝像機姿態估計607 立體成像609 三角測量610 對極幾何613 本征矩陣和基本矩陣615 計算極線624 立體校正624 立體校正628 立體匹配638 立體校正、標定和對應的示例代碼650 來自三維重投影的深度映射657 來自運動的結構659 二維與三維直線擬合659 小結662 練習662 第20章機器學習基礎665 什么是機器學習665 訓練集和測試集666 有監督學習和無監督學習667 生成式模型和判別式模型669 OpenCV機器學習算法669 機器學習在視覺中的應用671 變量的重要性673 診斷機器學習中的問題674 ML庫中遺留的機器學習算法678 K均值679 馬氏距離684 小結687 練習687 第21章StatModel:OpenCV中的基準學習模型689 ML庫中的常見例程689 訓練方法和cv::ml::TrainData的結構691 預測697 使用cv::StatModel的機器學習算法698 樸素貝葉斯分類器699 二叉決策樹703 Boosting方法716 隨機森林721 期望最大化算法725 K近鄰算法729 多層感知機731 支持向量機739 小結749 練習750 第22章目標檢測753 基于樹的目標檢測技術753 級聯分類器754 有監督學習和boosting理論756 學習新目標764 使用支持向量機的目標識別772 LatentSVM用于目標識別772 BagofWords算法與語義分類775 小結780 練習780 第23章OpenCV的未來783 過去與未來783 OpenCV3.x784 我們上一次預測怎么樣?784 未來應用785 目前GSoC的進展787 社區貢獻788 OpenCV.org789 一些關于AI的猜測790 結語793 附錄A平面劃分795 附錄Bopencv_contrib模塊概述809 附錄C標定圖案813 參考文獻819 |
序: |
|