OpenCV在計算機視覺領域扮演著重要的角色。作為一個基于開源發行的跨平臺計算機視覺庫,OpenCV實現了圖像處理和計算機視覺方面的很多通用算法。本書以當前版本的OpenCV最常用最核心的組件模塊為索引,深入淺出地介紹了OpenCV2和OpenCV3中的強大功能、性能,以及新特性。書本配套的OpenCV2和OpenCV3雙版本的示例代碼包中,含有總計兩百多個詳細注釋的程序源代碼與思路說明。讀者可以按圖索驥,按技術方向進行快速上手和深入學習。
本書要求讀者具有基礎的C/C 知識,適合研究計算機視覺以及相關領域的在校學生和老師、初次接觸OpenCV但有一定C/C 編程基礎的研究人員,以及已有過OpenCV 1.0編程經驗,想快速了解并上手OpenCV2、OpenCV3編程的計算機視覺領域的專業人員。本書也適合于圖像處理、計算機視覺領域的業余愛好者、開源項目愛好者做為通向新版OpenCV的參考手冊之用。
本書配套的[示例程序]、[.exe可執行文件]、[書內彩圖]的下載鏈接可通過掃描本書封底或后勒口的二維碼獲取。
涵蓋OpenCV2、OpenCV3雙版本的核心編程技巧
附贈OpenCV2、OpenCV3雙版本總計200余個配套示例程序源代碼
毛星云,90后,網絡ID“淺墨”。微軟VC 領域價值專家(MVP),中國2013年度十大杰出IT博客作者,南京航空航天大學2014年度十大杰出青年。CSDN博客專家,2013年度CSDN博客之星,于CSDN寫博數年,博客瀏覽量已逾252萬人次。本科畢業于烏克蘭國立航空航天大學以及南京航空航天大學,碩士就讀于南京航空航天大學。已出版著作《逐夢旅程:Windows游戲編程之從零開始》,個人事跡曾多次被人民網、新華網、鳳凰網、網易新聞、新浪新聞、金陵晚報、現代快報等主流媒體報道。
CSDN博客:blog.csdn.net/poem_qianmo
聯系郵箱:happylifemxy@163.com
新浪微博:@淺墨_毛星云
及時部分 快速上手OpenCV 1
第1章 邂逅OpenCV 3
1.1 OpenCV周邊概念認知 4
1.1.1 圖像處理、計算機視覺與OpenCV 4
1.1.2 OpenCV概述 4
1.1.3 起源及發展 5
1.1.4 應用概述 6
1.2 OpenCV基本架構分析 7
1.3 OpenCV3帶來了什么 11
1.3.1 項目架構的改變 11
1.3.2 將OpenCV2代碼升級到OpenCV3報錯時的一些策略 12
1.4 OpenCV的下載、安裝與配置 14
1.4.1 預準備:下載和安裝集成開發環境 14
1.4.2 及時步:下載和安裝OpenCV SDK 15
1.4.3 第二步:配置環境變量 16
1.4.4 第三步:工程包含(include)目錄的配置 17
1.4.5 第四步:工程庫(lib)目錄的配置 21
1.4.6 第五步:鏈接庫的配置 22
1.4.7 第六步:在Windows文件夾下加入OpenCV動態鏈接庫 25
1.4.8 第七步:最終測試 26
1.4.9 可能遇到的問題和解決方案 27
1.5 快速上手OpenCV圖像處理 28
1.5.1 及時個程序:圖像顯示 29
1.5.2 第二個程序:圖像腐蝕 30
1.5.3 第三個程序:圖像模糊 31
1.5.4 第四個程序:canny邊緣檢測 32
1.6 OpenCV視頻操作基礎 34
1.6.1 讀取并播放視頻 34
1.6.2 調用攝像頭采集圖像 35
1.7 本章小結 38
第2章 啟程前的認知準備 39
2.1 OpenCV官方例程引導與賞析 40
2.1.1 彩色目標跟蹤:Camshift 41
2.1.2 光流:optical flow 42
2.1.3 點追蹤:lkdemo 43
2.1.4 人臉識別:objectDetection 43
2.1.5 支持向量機引導 44
2.2 開源的魅力:編譯OpenCV源代碼 45
2.2.1 下載安裝CMake 45
2.2.2 使用CMake生成OpenCV源代碼工程的解決方案 46
2.2.3 編譯OpenCV源代碼 50
2.3 “opencv.hpp”頭文件認知 53
2.4 命名規范約定 54
2.5 argc與argv參數解惑 56
2.5.1 初識main函數中的argc和argv 56
2.5.2 argc、argv的具體含義 57
2.5.3 Visual Studio中main函數的幾種寫法說明 58
2.5.4 總結 59
2.6 格式輸出函數printf()簡析 59
2.6.1 格式輸出:printf()函數 59
2.6.2 示例程序:printf函數的用法示例 60
2.7 智能顯示當前使用的OpenCV版本 61
2.8 本章小結 61
第3章 HighGUI圖形用戶界面初步 63
3.1 圖像的載入、顯示和輸出到文件 64
3.1.1 OpenCV的命名空間 64
3.1.2 Mat類簡析 64
3.1.3 圖像的載入與顯示概述 65
3.1.4 圖像的載入:imread()函數 65
3.1.5 圖像的顯示:imshow()函數 66
3.1.6 關于InputArray類型 67
3.1.7 創建窗口:namedWindow()函數 67
3.1.8 輸出圖像到文件:imwrite()函數 68
3.1.9 綜合示例程序:圖像的載入、顯示與輸出 70
3.2 滑動條的創建和使用 73
3.2.1 創建滑動條:createTrackbar()函數 73
3.2.2 獲取當前軌跡條的位置:getTrackbarPos()函數 76
3.3 鼠標操作 76
3.4 本章小結 80
第二部分 初探core組件 83
第4章 OpenCV數據結構與基本繪圖 85
4.1 基礎圖像容器Mat 86
4.1.1 數字圖像存儲概述 86
4.1.2 Mat結構的使用 86
4.1.3 像素值的存儲方法 88
4.1.4 顯式創建Mat對象的七種方法 89
4.1.5 OpenCV中的格式化輸出方法 91
4.
前言
計算機視覺是一個近幾年來日臻成熟的領域。隨著運算性能強勁而又價格實惠的計算設備的不斷問世,創建復雜的圖像應用從未像今天這般容易。OpenCV在計算機視覺領域扮演著重要的角色,它是一個基于開源發行的跨平臺計算機視覺庫,實現了圖像處理和計算機視覺方面的很多通用算法。自1999年問世以來,OpenCV已經被計算機視覺領域的學者和開發者視為工具,并成為了計算機視覺領域最有力的研究工具之一。
OpenCV最初由Intel的一個小組進行開發。在一系列的beta版本后,OpenCV 1.0正式版本終于在2006年10月19日。
2009年10月1日,OpenCV 2.0問世,它帶來了全新的C 接口,將OpenCV的能力無限放大。在2.0的時代,OpenCV增加了全新的平臺支持,包括iOS和Andriod,通過CUDA和OpenCL實現了GPU加速,為Python和Java用戶提供了接口,基于Github和Buildbot構建了充滿藝術感的持續集成的系統,所以才有了被全世界的很多公司和學校所采用的穩定易用的OpenCV 2.4.x。
2014年8月21日,OpenCV 3.0 Alpha,它帶來了全新的項目架構的改變,宣告了計算機視覺新時代的來臨。和其他大型項目一樣,OpenCV3拋棄了整體統一架構,使用內核 插件的架構形式,讓自身主體更加穩定,而附加的庫則可以更加靈活多變,以保持高速的發展與迭代。
本書源自于筆者在CSDN上連載的名為“OpenCV入門教程”的系列博客文章,自2014年2月24日發表及時篇以來,得到了廣大OpenCV愛好者的廣泛關注與支持,累計閱讀量突破了40多萬人次。不少讀者強烈希望將這些內容集結成書,并加入更多新的內容。于是,經過筆者半年的筆耕不輟,便有了現在這本書的誕生。
作為一本入門級的OpenCV編程教材,本書以詳細注釋的程序代碼為主線,以新版OpenCV最核心的core、HighGUI、improc和feature2d這4個組件的相關函數、類和數據結構為出發點,詳細講解了學習新版本OpenCV中會遇到了各種問題,并提供了詳盡的實戰代碼作為參考。本書的寫作初衷是讓更多的使用者能熟練使用采用新版C 接口的OpenCV2或OpenCV3,了解OpenCV2和OpenCV3的諸多細節上的區別,以推動新版OpenCV在世界范圍內的普及。
本書的內容安排
本書分為4個部分、11個章節,現將內容梗概列舉如下。
第1章 邂逅OpenCV:介紹OpenCV的周邊概念,分析OpenCV的基本架構,講解OpenCV3的新特性。本章重點講解了OpenCV的下載、安裝與配置過程;在配置完成后,帶領大家正式領略OpenCV的魅力,講解了4個OpenCV圖像處理小程序,并指導大家學習如何使用OpenCV操作視頻和調用攝像頭。
第2章 啟程前的認知準備:進行OpenCV官方例程的引導學習與賞析,講解如何編譯OpenCV的源代碼,并引入了對一些周邊概念的認知。
第3章 HighGUI圖形用戶界面初步:對圖像的載入、顯示和輸出到文件進行詳細地分析,講解OpenCV中滑動條的創建和使用,以及如何用鼠標進行交互操作。
第4章 OpenCV數據結構與基本繪圖: 講解OpenCV中常用的數據結構以及基本的繪圖操作。
第5章 core組件進階:講解core模塊的一些進階知識點,如操作圖像中的像素、圖像混合、分離顏色通道、調節圖像的對比度和亮度、進行離散傅里葉變換,以及輸入輸出XML和YAML文件。
第6章 圖像處理:學習各種利用OpenCV進行圖像處理的方法,包括屬于線性濾波的方框濾波、均值濾波與高斯濾波,屬于非線性濾波的中值濾波、雙邊濾波;兩種基本形態學操作——膨脹與腐蝕;5種高級形態學濾波操作——開運算、閉運算、形態學梯度、頂帽以及黑帽;此外,還有漫水填充算法、圖像金字塔、圖像縮放、閾值化。
第7章 圖像變換:講解多種類型的圖像變換方法。包括利用OpenCV進行邊緣檢測所用到的canny算子、sobel算子,Laplace算子以及scharr濾波器;進行圖像特征提取的霍夫線變換、霍夫圓變換,重映射和仿射變換以及直方圖均衡化。
第8章 圖像輪廓與圖像分割修復: 講解如何查找輪廓并繪制輪廓,如何尋找物體的凸包,使用多邊形來包圍輪廓,以及計算一個圖像的矩。此外還介紹了分水嶺算法和圖像修補操作的實現方法。
第9章 直方圖與匹配:講解圖像直方圖相關的編程技巧,以及直方圖對比、反向投影和模板匹配技術。
第10章 角點檢測:講解Harris角點檢測和Shi-Tomasi角點檢測,以及一種亞像素角點檢測方法。
第11章 特征檢測與匹配:使用OpenCV2講解并實現了SURF、SIFT和ORB特征檢測方法,并在FLANN特征匹配的基礎上,進一步實現了利用Homography映射來找出已知物體。
適合閱讀本書的讀者
研究計算機視覺以及相關領域的在校學生和老師
本書擁有詳實的內容,注釋詳盡的代碼,會是助你通過OpenCV來研習計算機視覺理論、撰寫論文、通過畢業設計、完成科研項目的得力工具。同時,本書適合作為大學計算機視覺課程的教學用書。
初次接觸OpenCV、有一定C/C 編程基礎的研究人員
作為一本定位為快速入門新版OpenCV標準的編程教程,本書需要的僅僅是一些簡單的C/C 編程語言基礎。如果你已經具備了這些基礎,并對計算機視覺感興趣,那么本書正是為你所準備的。
已經有過OpenCV1.0編程經驗,想快速了解并上手OpenCV2、OpenCV3編程的計算機視覺領域的專業人員
如果你曾經使用過OpenCV1.0,或者研讀過OpenCV1.0時代的經典著作《Learning OpenCV》,本書會讓你倍感親切。你會發現新版OpenCV帶了更多強大和便利的特性,讓你事半功倍,如虎添翼。
想擁有一本新版OpenCV接口工具書的計算機視覺愛好者
本書中將自OpenCV2以來(包括OpenCV3)的常用類和函數進行了詳細地講解,并在附錄中提供了“書本核心函數清單”以便檢索。你會在書中快速查找到你需要用到的函數、數據結構和類的用法。
想擁有海量的詳細注釋的OpenCV2、OpenCV3示例程序代碼的OpenCV愛好者
本書包含OpenCV2版的95個書本主線示例程序源代碼、21個附贈示例程序源代碼,OpenCV3版的95個書本主線示例程序源代碼。OpenCV2、OpenCV3兩版代碼提供分開下載。這些程序代碼都經過詳細而有條理的注釋,并提供可以獨立運行的.exe文件供快速查看程序效果,方便查看和檢索。你會在海量的示例程序中找到你需要的參考代碼,從而加速你的研究和學習。
圖像處理、計算機視覺領域的業余愛好者
海闊憑魚躍,天高任鳥飛,計算機視覺領域的寶庫任你探索。
開源項目愛好者
OpenCV作為一個免費并開源代碼開發的計算機視覺代碼庫,有總計上百萬行的源代碼供你研究學習,本書將是引導你學習它們的良師益友。
本書的示例程序說明
本書的示例程序最初都在OpenCV2.4.9(2014年4月15日面世)版本下開發,書稿初版也是基于OpenCV2.4.9而寫。在書稿寫作和修訂過程中,恰逢OpenCV3.0 Alpha(2014年8月21日)和OpenCV3 Beta(2014年11月11日)的,所以本書在審校和修訂過程中(2014年12月1日),決定站在浪潮之巔,以OpenCV2為主,加入OpenCV3的諸多特性,讓這本書可以同時勝任OpenCV2和OpenCV3兩個版本教材的角色。這也是為什么本書會有OpenCV2和OpenCV3兩個獨立版本的示例程序的原因。
兩個版本、詳細注釋的100多個示例程序源代碼是本書的靈魂,現將示例程序的相關情況概括如下。
本書包含OpenCV2版的95個書本主線示例程序源代碼、21個附贈示例程序源代碼,以及OpenCV3版的95個書本主線示例程序源代碼。
OpenCV2、OpenCV3兩版代碼提供分開下載。
OpenCV2版的示例程序在Windows7 64位旗艦版、Visual Stuido 2010 、OpenCV2.4.9的環境下開發與測試,理論上支持OpenCV2系列的所有版本的編譯運行。
OpenCV3版的示例程序在Windows7 64位旗艦版、Visual Stuido 2010 、OpenCV3.0 beta的環境下開發與測試,理論上支持目前已經的OpenCV3全版本。
程序源代碼都經過詳細而有條理的注釋。
額外提供可以獨立運行的.exe文件供快速查看程序效果,并方便檢索。
本書配套示例代碼的下載方式有以下幾種。
掃描本書
之前在圖書館借的,覺得不錯,趁著打折買來看看
紙書不錯!紙書不錯!紙書不錯!紙書不錯!紙書不錯!
內容還是很不錯的,很實用!當當的活動也很給力,等了那么久終于等到了這樣的活動!
很實惠的書,openCV真是好呀,運行效率高,圖像處理的精品
這本書寫的一般,內容有好多錯誤。理論的內容較少,基本都是程序
不錯,略貴,網上有這個博客,喜歡紙質書的可以選擇哈
是一本好書,是正版的,快遞很快,服務很好,很滿意。
openCV,圖像處理,現在在學習中,這本書里將的不是很難,我覺得很容易理解就是了。
包裝精美,發貨很快,這次活動200-100很給力!
很好的一本書,針對最新版本的opencv,學習中
編程入門不二之選?。?!opencv用起來越來越得心應手了
作為一本入門級的書,這本算是比較詳細了,注釋也很詳細,還有2.0和3.0版本的源代碼
不知為何書本沒有膜包著?當當網賣的二手貨嗎?就這本書來說,對于入門者來說真的很好用。雖然完好無損但是不像新書啊
書不錯,包裝挺好,就說個人基礎差,看起來比較費力
還可以把!我也不知道,沒啥都有評論這么多個字呢
很好,看完了,更多的還是入門級的東西,深入得自己下功夫了。
剛買來大概摸了一下紙質,感覺還好,就是包裝的不太好,總體來說,比較滿意的一次購物
opencv很好的一本書,看了作者的介紹,更是讓我佩服,好好學習。
書的小錯誤有點多,有些地方有重復,邏輯也有時候混亂不清,一些專有名詞經常變動。不過,用于快速上手opencv3已經足夠了。
很棒的介紹計算機視覺的書籍,內容很詳盡。書本配送時包裝的很好,很細心咯。
因為運輸問題書的封面褶皺,內容還不錯,紙質也不錯。
正版書 有助于opencv新版本的理解 例子全面
做圖像處理的入門書籍,介紹得很詳細,正版書籍,不錯!
OpenCV本來書就不多,這本的確不錯,內容等各方面都很好。值得購買。
書不錯紙質的硬度排版都很好。但是收到書的時候發現包裝只是一層很薄的塑料袋而且還破損了書角有些折損倒是不影響。但還是希望能注意包裝否則很容易弄壞的。
星云,后,網絡淺墨。微軟領域最具價4值Y專D家(),中國年度十大杰出博客作6者,南京航空航天大學年度D十大OP8ENCV3編程6
買來寫論文用,老師說不讓寫機器視覺編程的部分。那就算了,自己以后學著玩用吧
OPENCV3編程入門啟程前的認知4Q準66備官方例程引導與SI賞析彩色Y目標Q跟蹤:光流:10點追蹤:人臉識別Q:支W持向量機引導開源的魅力:編8OPENCV3編程入門OPENCV3編程入門OPENCV