OpenCV 3和Qt5計算機視覺應用開發(fā)
定 價:89 元
叢書名:華章IT
- 作者:[伊朗] 阿敏·艾哈邁迪·泰茲坎迪(Amin Ahmadi Tazehkandi) 著,劉冰郭坦譯 譯
- 出版時間:2018/12/1
- ISBN:9787111614708
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP391.413
- 頁碼:340
- 紙張:膠版紙
- 版次:1
- 開本:16開
全書共分為12章,全面系統(tǒng)地講述了OpenCV3和Qt5的核心內(nèi)容,包括:OpenCV和Qt介紹、創(chuàng)建OpenCV和Qt項目、Mat和QImage、圖形視圖框架、OpenCV中的圖像處理、特征與描述符、多線程、視頻分析、視頻穩(wěn)定性、調(diào)試與測試、鏈接與部署、Qt Quick應用程序等。為了便于學習與實踐,本書提供了示例算法的編碼實現(xiàn)。也向讀者全面詳盡地介紹了基于OpenCV和Qt進行圖像處理、計算機視覺等編程的技術(shù)和方法。
QtQt
檢測、自動駕駛汽車的行人檢測,如此等等,計算機視覺都已經(jīng)逐步用于解決這些以往需要人工介入才能解決的實時問題,這些都是OpenCV框架的應用場景。在過去的幾年里,OpenCV已經(jīng)逐步發(fā)展成為一個成熟、跨平臺、專注于速度和性能的計算機視覺框架,世界各地的開發(fā)人員和研究人員都在使用OpenCV實現(xiàn)他們的計算機視覺應用的思想和算法。
本書的目的是幫助你掌握Qt和OpenCV框架,了解它們的基本概念,以便能夠跨越各種平臺輕松地繼續(xù)獨立開發(fā)和交付計算機視覺應用程序。為了能夠更深入地理解本書所涉及的主題,需要你熟悉C++編程概念,例如類、模板、繼承等。盡管全書介紹的教程、屏幕截圖和示例都是基于Windows操作系統(tǒng)的,但在必要的時候也會提到在macOS以及Linux操作系統(tǒng)上的不同之處。
本書是作者努力數(shù)月的成果。如果沒有Lawrence Veigas的完美編輯和Karl Phillip Buhr誠實而有見地的評論,沒有Parth kothari,這一切都不可能完成;還要感謝Zainab Bootwala、Prajakta Naik、Aaron Lazar、Supriya Thabe、Tiksha Sarang、Rekha Nair、Jason Monteiro、Nilesh Mohite以及Packt出版公司所有人的幫助,使得這本書能夠順利完成,并能夠送達世界各地的讀者手中。
本書適合的讀者
本書是為那些對創(chuàng)建計算機視覺應用程序感興趣的讀者準備的。如果你具備C++編程的中級知識,即使沒有Qt5和OpenCV 3的知識,只要熟悉這些框架,也會獲益匪淺。
本書包含的內(nèi)容
第1章將介紹所有必需的初始工作。首先介紹從何處以及如何獲得Qt和OpenCV框架,然后介紹如何安裝、配置并確保在開發(fā)環(huán)境中對所有內(nèi)容進行正確設置。
第2章將介紹Qt Creator IDE,我們將使用它開發(fā)所有應用程序。在該章中,你將學習如何創(chuàng)建并運行應用程序項目。
第3章將介紹創(chuàng)建一個完整應用程序所需的最常見功能,包括樣式、國際化以及對各種語言、插件的支持等。通過該過程,我們將獨立創(chuàng)建一個完整的計算機視覺應用程序。
第4章列出了編寫計算機視覺應用程序所需的基本概念。你將了解OpenCV Mat類和Qt QImage類的所有內(nèi)容,以及如何在兩個框架之間轉(zhuǎn)換和傳遞這些類等內(nèi)容。
第5章將介紹如何使用Qt圖形視圖框架及其底層類,以便在應用程序中方便、有效地顯示和操作圖形。
第6章將介紹OpenCV框架提供的圖像處理功能。你將學習圖像變換、濾波、顏色空間、模板匹配等方面的知識。
第7章將介紹從圖像中檢測關(guān)鍵點和從關(guān)鍵點中提取描述符,以及使它們相互匹配。在該章中,你將學習各種關(guān)鍵點及描述符提取算法,以及如何使用這些內(nèi)容來檢測和定位圖像中的已知對象。
第8章將介紹Qt框架提供的多線程功能,介紹互斥、讀寫鎖、信號量和各種線程同步工具,還將介紹Qt中的低級(QThread)和高級(QtConcurrent)多線程技術(shù)。
第9章將介紹如何使用Qt和OpenCV框架處理視頻。你將了解如何使用MeanShift和CAMShift算法以及其他視頻處理功能實現(xiàn)目標跟蹤。該章還將對視頻處理的所有基本概念(如直方圖和反投影圖像)進行完整概述。
第10章將介紹Qt Creator IDE的調(diào)試功能及其相關(guān)配置和設置。你還可以通過編寫單元測試示例來了解Qt框架的單元測試能力,這些單元測試示例可在每次構(gòu)建項目時手動或自動運行。
第11章將介紹如何動態(tài)或靜態(tài)地構(gòu)建OpenCV和Qt框架。你將學習如何在各種平臺上部署Qt和OpenCV應用程序。在該章的末尾,我們將使用Qt Installer 框架創(chuàng)建一個安裝程序。
第12章將介紹Qt Quick應用程序和QML語言。你將學習QML語言語法,以及如何結(jié)合Qt Quick Designer創(chuàng)建美觀的用于桌面和移動平臺的Qt Quick應用程序。在該章中,還將學習如何集成QML和C++。
最佳配置
盡管在本書前幾章介紹了所有必需的工具和軟件、正確的版本及其安裝與配置方法,但還是有必要提供一個快速參考列表:
安裝了最新版本的Windows、macOS或Linux(如Ubuntu)操作系統(tǒng)的普通電腦
Microsoft Visual Studio(Windows)
Xcode(macOS)
CMake
Qt框架
OpenCV框架
通過上網(wǎng)搜索或者咨詢當?shù)氐纳痰,可以了解目前電腦的通行配置與功能。然而,一臺普通電腦已經(jīng)足夠開始你的學習之旅。
下載示例代碼及彩色圖像
本書的示例代碼及所有截圖和樣圖,可以從http://www.packtpub.com通過個人賬號下載,也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊并登錄個人賬號下載。
譯者序
序
前言
評閱者簡介
第1章 OpenCV和Qt簡介1
1.1 需要什么2
1.2 Qt介紹3
1.2.1 Qt基本模塊3
1.2.2 Qt擴展4
1.2.3 附加值模塊4
1.2.4 技術(shù)預覽模塊5
1.2.5 Qt支持的平臺5
1.2.6 Qt Creator6
1.3 OpenCV介紹7
1.3.1 主模塊8
1.3.2 附加模塊8
1.4 安裝Qt9
1.4.1 Qt安裝準備9
1.4.2 在哪里獲得Qt10
1.4.3 安裝方法11
1.4.4 測試Qt安裝14
1.5 安裝OpenCV19
1.5.1 為構(gòu)建OpenCV做準備19
1.5.2 在哪里獲得OpenCV19
1.5.3 如何構(gòu)建20
1.5.4 配置OpenCV安裝23
1.5.5 測試OpenCV安裝25
1.6 小結(jié)27
第2章 創(chuàng)建第一個Qt + OpenCV項目28
2.1 什么是Qt Creator29
2.2 IDE一覽30
2.2.1 Qt Creator的模式30
2.2.2 Qt Creator的選項窗口58
2.3 小結(jié)61
第3章 創(chuàng)建完整的Qt + OpenCV項目62
3.1 后臺63
3.1.1 qmake工具63
3.1.2 元對象編譯器(moc)65
3.1.3 用戶界面編譯器(uic)66
3.2 設計模式67
3.3 Qt資源系統(tǒng)69
3.4 樣式化應用程序73
3.4.1 選擇器類型74
3.4.2 子控件75
3.4.3 偽狀態(tài)75
3.4.4 級聯(lián)75
3.5 多語言支持77
3.6 創(chuàng)建和使用插件81
3.6.1 接口82
3.6.2 插件84
3.6.3 插件加載器和用戶88
3.7 創(chuàng)建基礎94
3.8 小結(jié)96
第4章 Mat和QImage97
4.1 關(guān)于Mat類的所有內(nèi)容98
4.1.1 構(gòu)造函數(shù)、屬性與方法100
4.1.2 Mat_<_Tp>類107
4.1.3 Matx<_Tp, m, n>107
4.1.4 UMat類108
4.1.5 InputArray、OutputArry、InputOutputArray108
4.2 利用OpenCV讀取圖像109
4.3 利用OpenCV寫入圖像110
4.4 OpenCV中的視頻讀寫110
4.5 OpenCV中的HighGUI模塊112
4.6 Qt中的圖像和視頻處理113
4.6.1 QImage類113
4.6.2 QPixmap類116
4.6.3 QImageReader與QImageWriter類119
4.6.4 QPainter類119
4.6.5 Qt中的相機和視頻處理124
4.7 小結(jié)125
第5章 圖形視圖框架126
5.1 場景視圖對象元素架構(gòu)127
5.2 場景QGraphicsScene130
5.3 對象元素QGraphicsItem134
5.4 視圖QGraphicsView142
5.5 小結(jié)152
第6章 基于OpenCV的圖像處理153
6.1 圖像濾波154
6.2 圖像變換功能168
6.2.1 幾何變換168
6.2.2 其他變換174
6.3 OpenCV繪圖180
6.4 模板匹配183
6.5 小結(jié)185
第7章 特征及其描述符187
7.1 所有算法的基礎—Algorithm類188
7.2 二維特征框架191
7.2.1 檢測特征192
7.2.2 提取和匹配描述符204
7.3 如何選擇算法211
7.3.1 精度212
7.3.2 速度212
7.3.3 資源利用率213
7.3.4 可用性213
7.4 小結(jié)213
第8章 多線程215
8.1 Qt中的多線程216
8.2 利用QThread實現(xiàn)低級多線程217
8.2.1 子類化QThread217
8.2.2 使用moveToThread函數(shù)222
8.3 線程同步工具224
8.3.1 互斥鎖224
8.3.2 讀寫鎖226
8.3.3 信號量228
8.3.4 等待條件228
8.4 基于QtConcurrent的高級多線程230
8.5 小結(jié)235
第9章 視頻分析237
9.1 理解直方圖238
9.2 理解反投影圖像242
9.2.1 直方圖比較250
9.2.2 直方圖均衡化252
9.3 MeanShift算法和CamShift算法253
9.4 背景/前景檢測260
9.5 小結(jié)263
第10章 調(diào)試與測試265
10.1 Qt Creator調(diào)試266
10.2 Qt測試框架271
10.2.1 創(chuàng)建單元測試272
10.2.2 數(shù)據(jù)驅(qū)動的測試276
10.2.3 基準測試278
10.2.4 GUI 測試278
10.2.5 測試用例項目281
10.3 小結(jié)283
第11章 鏈接和部署285
11.1 后臺構(gòu)建過程286
11.1.1 預處理286
11.1.2 編譯286
11.1.3 鏈接287
11.2 構(gòu)建OpenCV靜態(tài)庫288
11.3 構(gòu)建Qt靜態(tài)庫289
11.4 部署Qt + OpenCV應用程序295
11.4.1 使用靜態(tài)鏈接部署295
11.4.2 使用動態(tài)鏈接部署297
11.4.3 Qt安裝程序框架299
11.5 小結(jié)302
第12章 Qt Quick應用程序304
12.1 QML介紹305
12.2 QML中的用戶交互和腳本310
12.3 Qt Quick Designer的使用312
12.4 Qt Quick應用程序的結(jié)構(gòu)313
12.5 集成C++和QML代碼318
12.6 Android和iOS上的Qt和OpenCV應用程序324
12.7 小結(jié)326