OpenCV是一個(gè)開(kāi)源、跨平臺的計算機視覺(jué)庫,近年來(lái)成為了初學(xué)者快速入門(mén)計算機視覺(jué)的首選工具之一。本書(shū)旨在讓讀者快速實(shí)現從入門(mén)到掌握這一工具。 本書(shū)首先通過(guò)編寫(xiě)實(shí)用案例來(lái)描述OpenCV圖像處理的過(guò)程,圍繞案例,解析在圖像處理過(guò)程中所使用的功能函數,說(shuō)明其中參數調用配置、使用函數的原理及其應用的場(chǎng)景,并且解析函數調用的細節,讓讀者在學(xué)習實(shí)用案例的過(guò)程中逐漸掌握不...
自OpenCV出現以來(lái),它作為信息獲取和處理的重要技術(shù),以幫助開(kāi)發(fā)者和研究人員提高產(chǎn)出效率為目標,一直是計算機視覺(jué)研究人員的首選工具,逐漸進(jìn)入大多數工科類(lèi)本科生和研究生的必修或選修課程。OpenCV使學(xué)習計算機視覺(jué)變得更加容易,熟悉、應用OpenCV會(huì )助力計算機視覺(jué)的學(xué)習,達到事半功倍的效果。 目前,在機器學(xué)習和深度學(xué)習越來(lái)越熱門(mén)的背景下,對其應用最廣泛的就是圖像的處理與分析,并且這些項目大部分是基于OpenCV來(lái)進(jìn)行開(kāi)發(fā)的。OpenCV注重開(kāi)發(fā)實(shí)時(shí)應用的程序,其中的算法模型和功能API(應用程序接口)都具備實(shí)時(shí)運行的能力。由于計算機視覺(jué)技術(shù)的不斷發(fā)展,OpenCV庫也在不斷改善,目前已經(jīng)可以在幾乎所有平臺上使用,并且由于其函數均由面向對象的C++語(yǔ)言編寫(xiě),因此OpenCV具有卓越的高效性。不僅如此,OpenCV庫還提供了多種程序語(yǔ)言的接口,包括C++、Python、Java等的接口,使用戶(hù)掌握應用更加方便。對了解、學(xué)習計算機視覺(jué)領(lǐng)域的技術(shù)而言,OpenCV絕對是最優(yōu)秀的平臺之一。 國內相關(guān)的介紹OpenCV的圖書(shū)從基礎理論介紹到應用實(shí)例都有涉及,多集中在某一細分領(lǐng)域,如工業(yè)機器人、視覺(jué)測量等。除此之外,由于計算機視覺(jué)技術(shù)的不斷更新,原有的一些模型算法需要進(jìn)行優(yōu)化調整或替換。本書(shū)以實(shí)用案例為中心,分析、解釋了函數調用原理,展示了函數應用場(chǎng)景。不同的案例包含了各種不同的使用場(chǎng)景,從傳統的圖像處理到現代深度學(xué)習模塊,一步步深化OpenCV圖像處理技術(shù)。 本書(shū)共15章,前3章為基礎知識,后12章為OpenCV圖像處理的基本操作和綜合應用實(shí)例。第1~3章為基礎知識篇,介紹了C++語(yǔ)言的程序設計和OpenCV的發(fā)展歷程以及未來(lái)發(fā)展前景等,著(zhù)重介紹了OpenCV的安裝;第4~7章為OpenCV基礎應用篇,介紹了圖像的基本操作應用案例,包括圖像和視頻的讀取、保存,以及圖像的預處理和繪制;第8~10章為OpenCV進(jìn)階篇,介紹了如何獲得翹曲圖片,以及幾何形狀檢測和人臉檢測案例;第11~13章為OpenCV提高篇,介紹了使用VS 2017和VS Code兩個(gè)平臺創(chuàng )建顏色選擇器,跟蹤、繪制顏色路徑和文檔掃描的應用案例;第14~15章為OpenCV技術(shù)篇,介紹了OpenCV中與機器學(xué)習相關(guān)的函數與使用方法,同時(shí)結合在路面病害檢測中的應用,介紹OpenCV中與深度學(xué)習相關(guān)的內容。本書(shū)OpenCV基礎應用篇、提高篇以及技術(shù)篇的案例基于在Visual Studio 2017平臺上使用OpenCV庫以及使用C語(yǔ)言進(jìn)行展示。 本書(shū)由宋春華、趙俊、夏曉華編著(zhù),由宋春華對全書(shū)進(jìn)行統稿。其中,西華大學(xué)宋春華和四川輕化工大學(xué)趙俊共同完成了第1~3章、第11~13章;西華大學(xué)宋春華完成了第4~10章;長(cháng)安大學(xué)夏曉華完成了第14章和第15章。全書(shū)是在各位作者的精心配合和共同努力下完成的。 特別感謝南方科技大學(xué)教授、歐洲科學(xué)院院士劉國平教授,日本長(cháng)崎綜合科學(xué)大學(xué)教授、日本工程院院士劉震教授為本書(shū)編寫(xiě)提供的寶貴意見(jiàn)。感謝西華大學(xué)機械工程學(xué)院碩士生王顯宇、黃海濤、楊超、李丹丹、戴凌鋒、羅楊對本書(shū)的校對工作。在本書(shū)編寫(xiě)過(guò)程中,參考了一些資料,在此向書(shū)中所列參考文獻的作者表示衷心的感謝! 由于編著(zhù)者水平有限,不足和疏漏之處在所難免,敬請讀者批評指正。 編著(zhù)者 2023年10月
OpenCV是一個(gè)開(kāi)源、跨平臺的計算機視覺(jué)庫,近年來(lái)成為了初學(xué)者快速入門(mén)計算機視覺(jué)的首選工具之一。本書(shū)旨在讓讀者快速實(shí)現從入門(mén)到掌握這一工具。 本書(shū)首先通過(guò)編寫(xiě)實(shí)用案例來(lái)描述OpenCV圖像處理的過(guò)程,圍繞案例,解析在圖像處理過(guò)程中所使用的功能函數,說(shuō)明其中參數調用配置、使用函數的原理及其應用的場(chǎng)景,并且解析函數調用的細節,讓讀者在學(xué)習實(shí)用案例的過(guò)程中逐漸掌握不同功能函數的用法、用途,明白其中所使用的條件;其次,通過(guò)展示OpenCV庫進(jìn)行圖像和視頻的采集、處理和分析的流程,讓讀者了解、學(xué)習圖像處理的具體流程框架以及邏輯順序,與案例共同解析,感受到真實(shí)項目中所涉及的應用過(guò)程。本書(shū)先讓讀者了解案例,再分析案例中的函數調用,讓讀者對OpenCV圖像處理操作在實(shí)際項目中的具體應用過(guò)程有更加直觀(guān)的感受,這也是本書(shū)的亮眼部分。 本書(shū)適合計算機及模式識別、機械電子工程、自動(dòng)化等相關(guān)領(lǐng)域的科研人員和工程技術(shù)人員參考使用,也可作為高等學(xué)校智能感知工程、機械電子工程、電子信息、自動(dòng)化、計算機等相關(guān)專(zhuān)業(yè)的本科生和研究生的教學(xué)和參考用書(shū)。
基礎知識篇 第1章 C++語(yǔ)言介紹 002 1.1 C++語(yǔ)言程序設計 002 1.1.1 變量的定義和賦值 002 1.1.2 數據類(lèi)型和運算符 003 1.1.3 輸入與輸出 004 1.2 C++語(yǔ)言基本結構 004 1.2.1 順序結構 004 1.2.2 選擇結構 005 1.2.3 循環(huán)結構 006 1.3 C++程序基本結構 007 1.3.1 頭文件 007 1.3.2 命名空間 007 1.3.3 全局變量 008 1.3.4 main()函數 009 1.3.5 局部變量 011 1.3.6 函數 011 1.3.7 注釋 012 第2章 OpenCV 概述 014 2.1 OpenCV 介紹 014 2.2 機器視覺(jué)與OpenCV 發(fā)展史 015 2.2.1 機器視覺(jué)發(fā)展史 015 2.2.2 OpenCV發(fā)展史 016 2.3 OpenCV 的應用與前景 017 第3章 OpenCV 的環(huán)境搭建 018 3.1 OpenCV 4.7.0 簡(jiǎn)介 018 3.2 安裝OpenCV 的準備工作 018 3.3 安裝步驟 021 3.4 安裝環(huán)境配置 023 OpenCV 基礎應用篇 第4章 圖像與視頻的讀取 028 4.1 讀取圖像 028 4.2 讀取視頻 029 4.3 調用攝像頭 030 4.4 功能函數 031 4.4.1 Mat類(lèi)對象 031 4.4.2 VideoCapture類(lèi)對象 031 4.4.3 讀取圖片、視頻功能函數“imread” 032 4.4.4 圖片、視頻和攝像頭顯示功能函數“imshow” 032 4.4.5 圖像刷新功能函數“waitKey” 032 4.5 代碼演示 033 第5章 圖像和視頻的保存 035 5.1 保存目標圖像 035 5.2 圖像保存功能函數“imwrite” 035 5.3 圖像保存代碼演示 036 5.4 保存目標視頻 036 5.5 視頻保存功能函數 037 5.5.1 視頻寬度屬性函數“CAP_PROP_FRAME_WIDTH” 037 5.5.2 視頻高度屬性函數“CAP_PROP_FRAME_HEIGHT” 038 5.5.3 視頻總幀數屬性函數“CAP_PROP_FRAME_COUNT” 038 5.5.4 視頻幀率屬性函數“CAP_PROP_FPS” 038 5.5.5 VideoWriter類(lèi)對象 038 5.5.6 視頻文件關(guān)閉釋放函數“release” 039 5.6 視頻保存代碼演示 040 第6章 圖像的預處理操作 042 6.1 圖像顏色空間轉換 042 6.1.1 圖像灰度變換 042 6.1.2 顏色空間轉換函數“cvtColor” 044 6.1.3 圖像灰度變換代碼演示 045 6.2 高斯模糊 045 6.2.1 高斯模糊函數“GaussianBlur” 047 6.2.2 高斯模糊代碼演示 048 6.3 中值濾波 048 6.3.1 中值濾波函數“medianBlur” 049 6.3.2 中值濾波代碼演示 050 6.4 邊緣檢測 050 6.4.1 邊緣檢測函數“Canny” 052 6.4.2 邊緣檢測流程代碼演示 053 6.5 圖像的腐蝕與膨脹 053 6.5.1 圖像二值化函數“threshold” 055 6.5.2 OTSU算法 056 6.5.3 TRIANGLE (三角法)算法 058 6.5.4 獲取結構元素函數“getStructuringElement” 059 6.5.5 圖像的膨脹操作函數“dilate” 060 6.5.6 圖像的腐蝕操作函數“erode” 060 6.5.7 圖像的膨脹與腐蝕操作代碼演示 061 第7章 圖像的繪制 063 7.1 創(chuàng )建、繪制自定義圖像 063 7.2 功能函數 065 7.2.1 圖像創(chuàng )建函數“Mat” 065 7.2.2 圓形繪制函數“circle” 066 7.2.3 矩形繪制函數“rectangle” 066 7.2.4 文本放置函數“putText” 067 7.3 代碼演示 068 OpenCV 進(jìn)階篇 第8章 獲得翹曲圖片 070 8.1 目標圖像 070 8.2 獲得目標像素點(diǎn)坐標 071 8.3 創(chuàng )建結果像素點(diǎn)坐標 071 8.4 獲得圖像透視變換矩陣 072 8.5 圖像透視變換 072 8.5.1 獲取透視變換矩陣函數“getPerspectiveTransform” 073 8.5.2 透視變換函數“warpPerspective” 073 8.6 案例優(yōu)化 074 8.7 代碼演示 075 第9章 幾何形狀檢測 076 9.1 目標圖像 076 9.2 圖像的預處理 076 9.3 構建檢測識別模塊 078 9.3.1 形狀輪廓檢測標記功能 078 9.3.2 形狀輪廓判斷標識功能 079 9.4 功能函數 080 9.4.1 輪廓查找函數“findContours” 080 9.4.2 弧長(cháng)計算函數“arcLength” 082 9.4.3 多邊形擬合函數“approxPolyDP” 082 9.4.4 邊界矩形函數“boundingRect” 083 9.4.5 輪廓繪制函數“drawContours” 083 9.5 案例優(yōu)化 084 9.6 代碼演示 085 第10章 人臉檢測 088 10.1 目標圖像 088 10.2 人臉識別相關(guān)概念 089 10.2.1 級聯(lián)分類(lèi)器 089 10.2.2 Haar人臉特征 089 10.2.3 積分圖加速法 090 10.2.4 AdaBoost學(xué)習算法 090 10.2.5 強分類(lèi)器的級聯(lián) 092 10.3 利用級聯(lián)分類(lèi)器進(jìn)行人臉識別 092 10.4 功能函數 093 10.4.1 CascadeClassifier 093 10.4.2 detectMultiScale 094 10.5 代碼演示 095 OpenCV 提高篇 第11章 創(chuàng )建顏色選擇器 098 11.1 使用VS 2017 創(chuàng )建顏色選擇器 098 11.1.1 創(chuàng )建調節面板 098 11.1.2 HSV顏色空間 099 11.1.3 創(chuàng )建顏色遮罩窗口與視頻捕捉窗口 100 11.1.4 功能函數 101 11.1.5 案例優(yōu)化 103 11.1.6 代碼演示 104 11.2 使用VS Code 創(chuàng )建顏色選擇器 105 11.2.1 調用攝像頭 106 11.2.2 視頻翻轉 107 11.2.3 進(jìn)行顏色空間轉換 108 11.2.4 設置顏色通道 111 11.2.5 創(chuàng )建遮罩 112 11.2.6 創(chuàng )建窗口 114 11.2.7 創(chuàng )建Trackbar 115 11.2.8 調節各個(gè)顏色通道值 116 11.2.9 代碼演示 118 第12章 跟蹤、繪制顏色路徑 122 12.1 使用VS 2017 跟蹤、繪制顏色路徑 122 12.1.1 尋找目標顏色,獲取顏色輪廓 123 12.1.2 獲取顏色輪廓關(guān)鍵點(diǎn)向量 123 12.1.3 繪制關(guān)鍵點(diǎn)的行動(dòng)路徑 124 12.1.4 案例優(yōu)化 124 12.1.5 代碼演示 125 12.2 使用VS Code 跟蹤、繪制顏色路徑 128 12.2.1 調用攝像頭 128 12.2.2 視頻翻轉 129 12.2.3 進(jìn)行顏色空間轉換 130 12.2.4 設置顏色通道 130 12.2.5 創(chuàng )建遮罩 131 12.2.6 創(chuàng )建窗口 132 12.2.7 創(chuàng )建Trackbar 133 12.2.8 確定目標顏色通道值 135 12.2.9 定義矩陣向量 135 12.2.10 進(jìn)行顏色空間轉換 136 12.2.11 輪廓檢測 137 12.2.12 過(guò)濾干擾項 138 12.2.13 輪廓繪制 142 12.2.14 矩形繪制 144 12.2.15 創(chuàng )建遮罩 145 12.2.16 顏色檢測 145 12.2.17 圓形繪制 145 12.2.18 軌跡繪制 146 12.2.19 代碼演示 147 第13章 文檔掃描 150 13.1 VS 2017 文檔掃描 150 13.1.1 圖像的預處理 150 13.1.2 輪廓獲取 151 13.1.3 角點(diǎn)獲取 153 13.1.4 文檔翹曲 154 13.1.5 案例優(yōu)化 155 13.1.6 代碼演示 155 13.2 VS Code 文檔掃描 158 13.2.1 讀取目標圖像 158 13.2.2 預處理:高斯模糊 159 13.2.3 預處理:邊緣檢測 160 13.2.4 預處理:膨脹操作 163 13.2.5 預處理:腐蝕操作 165 13.2.6 定義矩陣向量 166 13.2.7 輪廓檢測 167 13.2.8 過(guò)濾干擾項 167 13.2.9 得到輪廓 168 13.2.10 輪廓坐標點(diǎn)排序 169 13.2.11 獲得圖像透視變換矩陣 170 13.2.12 圖像透視變換 172 13.2.13 顯示結果圖像 173 13.2.14 代碼演示 173 OpenCV 技術(shù)篇 第14章 OpenCV 與機器學(xué)習 178 14.1 傳統機器學(xué)習 178 14.1.1 邏輯回歸 178 14.1.2 K近鄰 179 14.1.3 支持向量機(SVM) 179 14.1.4 貝葉斯網(wǎng)絡(luò ) 180 14.2 OpenCV 與深度學(xué)習 180 14.2.1 用GoogLeNet模型實(shí)現圖像分類(lèi) 181 14.2.2 用SSD模型實(shí)現對象檢測 181 14.2.3 用FCN模型實(shí)現圖像分割 182 14.2.4 用CNN模型預測年齡和性別 182 14.2.5 用GOTURN模型實(shí)現對象跟蹤 182 第15章 基于深度學(xué)習的路面病害檢測案例 184 15.1 深度學(xué)習在路面病害檢測中的應用背景 184 15.2 數據集構建 184 15.3 基于DeepLabV3+的路面病害檢測方法 187 15.3.1 模型改進(jìn) 187 15.3.2 評價(jià)指標 189 15.3.3 模型訓練與測試 190 15.3.4 不同模型的對比實(shí)驗 191 15.3.5 不同模型檢測病害的可視化效果對比 192 參考文獻 194
ISBN:978-7-122-44982-5
語(yǔ)種:漢文
開(kāi)本:16
出版時(shí)間:2024-06-01
裝幀:平
頁(yè)數:195