OpenCV4快速入門 原始碼 + [上課教材/電子書=PDF+PPT]
OpenCV4快速入門 原始碼 + [上課教材/電子書=PDF+PPT]
資料來源: https://github.com/fengzhenHIT/learnOpenCV4
https://github.com/fengzhenHIT/Leran-OpenCV-4-data
GITHUB: https://github.com/jash-git/Jash-good-idea-20210816-001/tree/main/OpenCV4%20%E5%BF%AB%E9%80%9F%E5%85%A5%E9%96%80%20%E5%8E%9F%E5%A7%8B%E7%A2%BC
目 錄
基 礎 篇
第 1章 初識OpenCV2
1.1 什麼是OpenCV2
1.1.1 OpenCV與電腦視覺2
1.1.2 OpenCV的發展3
1.1.3 OpenCV 4帶來了什麼4
1.2 安裝OpenCV 44
1.2.1 在Windows系統中
安裝OpenCV 44
1.2.2 Image Watch外掛程式的使用12
1.2.3 在Ubuntu系統中安裝
OpenCV 412
1.2.4 opencv_contrib擴展模組的
安裝15
1.2.5 安裝過程中常見問題的解決
方案17
1.3 瞭解OpenCV的模組架構18
1.4 源碼示例程式展示19
1.4.1 配置示例程式運行環境19
1.4.2 邊緣檢測edge21
1.4.3 K聚類kmeans22
1.4.4 二維碼識別qrcode23
1.4.5 相機使用video_capture_starter24
1.4.6 視頻物體跟蹤camshiftdemo25
1.5 本章小結26
第 2章 資料載入、顯示與保存27
2.1 圖像存儲容器27
2.1.1 Mat類介紹27
2.1.2 Mat類構造與賦值29
2.1.3 Mat類支持的運算33
2.1.4 Mat類元素的讀取35
2.2 圖像的讀取與顯示37
2.2.1 圖像讀取函數imread38
2.2.2 圖像視窗函數namedWindow39
2.2.3 圖像顯示函數imshow40
2.3 視頻載入與攝像頭調用40
2.3.1 視頻資料的讀取40
2.3.2 攝像頭的直接調用42
2.4 資料保存43
2.4.1 圖像的保存43
2.4.2 視頻的保存45
2.4.3 保存和讀取XML和YMAL
文件47
2.5 本章小結52
進 階 篇
第3章 圖像基本操作54
3.1 圖像顏色空間54
3.1.1 色彩模型與轉換54
3.1.2 多通道分離與合併59
3.2 圖像圖元操作處理61
3.2.1 圖像圖元統計62
3.2.2 兩圖像間的圖元操作66
3.2.3 圖像二值化71
3.2.4 LUT76
3.3 圖像變換78
3.3.1 圖像連接78
3.3.2 圖像尺寸變換81
3.3.3 圖像翻轉變換83
3.3.4 圖像仿射變換84
3.3.5 圖像透視變換88
3.3.6 極座標變換90
3.4 在圖像上繪製幾何圖形92
3.4.1 繪製圓形92
3.4.2 繪製直線93
3.4.3 繪製橢圓93
3.4.4 繪製多邊形94
3.4.5 文字生成95
3.5 感興趣區域97
3.6 圖像“金字塔”100
3.6.1 高斯“金字塔”100
3.6.2 拉普拉斯“金字塔”101
3.7 窗 交互操作104
3.7.1 圖像視窗滑動條104
3.7.2 滑鼠回應106
3.8 本章小結109
第4章 圖像長條圖與範本匹配111
4.1 圖像長條圖的繪製111
4.2 長條圖操作113
4.2.1 長條圖歸一化113
4.2.2 長條圖比較116
4.3 長條圖應用120
4.3.1 長條圖均衡化120
4.3.2 長條圖匹配122
4.3.3 長條圖反向投影125
4.4 圖像的範本匹配127
4.5 本章小結131
第5章 圖像濾波132
5.1 圖像卷積132
5.2 雜訊的種類與生成136
5.2.1 椒鹽雜訊136
5.2.2 高斯雜訊139
5.3 線性濾波142
5.3.1 均值濾波142
5.3.2 方框濾波145
5.3.3 高斯濾波147
5.3.4 可分離濾波151
5.4 非線性濾波154
5.4.1 中值濾波154
5.4.2 雙邊濾波156
5.5 圖像的邊緣檢測159
5.5.1 邊緣檢測原理159
5.5.2 Sobel運算元162
5.5.3 Scharr運算元165
5.5.4 生成邊緣檢測濾波器167
5.5.5 Laplacian運算元168
5.5.6 Canny演算法170
5.6 本章小結173
第6章 圖像形態學操作175
6.1 圖元距離與連通域175
6.1.1 圖像圖元距離變換175
6.1.2 圖像連通域分析180
6.2 腐蝕和膨脹187
6.2.1 圖像腐蝕188
6.2.2 圖像膨脹192
6.3 形態學應用195
6.3.1 開運算195
6.3.2 閉運算197
6.3.3 形態學梯度197
6.3.4 頂帽運算198
6.3.5 黑帽運算198
6.3.6 擊中擊不中變換199
6.3.7 圖像細化202
6.4 本章小結205
應 用 篇
第7章 目標檢測208
7.1 形狀檢測208
7.1.1 直線檢測208
7.1.2 直線擬合218
7.1.3 圓形檢測220
7.2 輪廓檢測223
7.2.1 輪廓發現與繪製223
7.2.2 輪廓面積228
7.2.3 輪廓長度(周長)229
7.2.4 輪廓外接多邊形231
7.2.5 點到輪廓距離236
7.2.6 凸包檢測237
7.3 矩的計算239
7.3.1 幾何矩與中心矩239
7.3.2 Hu矩241
7.3.3 基於Hu矩的輪廓匹配243
7.4 點集擬合245
7.5 QR二維碼檢測248
7.6 本章小結251
第8章 圖像分析與修復253
8.1 傅裡葉變換253
8.1.1 離散傅裡葉變換253
8.1.2 傅裡葉變換進行卷積260
8.1.3 離散余弦變換262
8.2 積分圖像266
8.3 圖像分割270
8.3.1 漫水填充法270
8.3.2 分水嶺法274
8.3.3 Grabcut法277
8.3.4 Mean-Shift法279
8.4 圖像修復282
8.5 本章小結285
第9章 特徵點檢測與匹配287
9.1 角點檢測287
9.1.1 顯示關鍵點287
9.1.2 Harris角點檢測290
9.1.3 Shi-Tomas角點檢測293
9.1.4 亞圖元級別角點檢測296
9.2 特徵點檢測298
9.2.1 關鍵點298
9.2.2 描述子299
9.2.3 SIFT特徵點檢測300
9.2.4 SURF特徵點檢測303
9.2.5 ORB特徵點檢測306
9.3 特徵點匹配310
9.3.1 DescriptorMatcher類介紹310
9.3.2 暴力匹配312
9.3.3 顯示特徵點匹配結果313
9.3.4 FLANN匹配315
9.3.5 RANSAC優化特徵點匹配318
9.4 本章小結322
第 10章 立體視覺323 [測距]
10.1 單目視覺323
10.1.1 單目相機模型323
10.1.2 標定板角點提取327
10.1.3 單目相機標定331
10.1.4 單目相機校正335
10.1.5 單目投影339
10.1.6 單目位姿估計341
10.2 雙目視覺346
10.2.1 雙目相機模型346
10.2.2 雙目相機標定347
10.2.3 雙目相機校正350
10.3 本章小結353
第 11章 視頻分析354
11.1 差值法檢測移動物體354
11.2 均值遷移法目標跟蹤357
11.2.1 均值遷移法實現的目標跟蹤357
11.2.2 自我調整均值遷移法實現的目標跟蹤361
11.3 光流法目標跟蹤365
11.3.1 Farneback多項式擴展演算法366
11.3.2 基於LK稀疏光流法的跟蹤370
11.4 本章小結375
提 高 篇
第 12章 OpenCV與機器學習378
12.1 OpenCV與傳統機器學習378
12.1.1 K均值378
12.1.2 K近鄰383
12.1.3 決策樹389
12.1.4 隨機森林392
12.1.5 支持向量機394
12.2 OpenCV與深度神經網路應用實例397
12.2.1 載入深度學習模型397
12.2.2 圖像識別400
12.2.3 風格遷移403
12.2.4 性別檢測405
12.3 本章小結407
—–
目 录
基 础 篇
第 1章 初识OpenCV2
1.1 什么是OpenCV2
1.1.1 OpenCV与计算机视觉2
1.1.2 OpenCV的发展3
1.1.3 OpenCV 4带来了什么4
1.2 安装OpenCV 44
1.2.1 在Windows系统中
安装OpenCV 44
1.2.2 Image Watch插件的使用12
1.2.3 在Ubuntu系统中安装
OpenCV 412
1.2.4 opencv_contrib扩展模块的
安装15
1.2.5 安装过程中常见问题的解决
方案17
1.3 了解OpenCV的模块架构18
1.4 源码示例程序展示19
1.4.1 配置示例程序运行环境19
1.4.2 边缘检测edge21
1.4.3 K聚类kmeans22
1.4.4 二维码识别qrcode23
1.4.5 相机使用video_capture_starter24
1.4.6 视频物体跟踪camshiftdemo25
1.5 本章小结26
第 2章 数据载入、显示与保存27
2.1 图像存储容器27
2.1.1 Mat类介绍27
2.1.2 Mat类构造与赋值29
2.1.3 Mat类支持的运算33
2.1.4 Mat类元素的读取35
2.2 图像的读取与显示37
2.2.1 图像读取函数imread38
2.2.2 图像窗口函数namedWindow39
2.2.3 图像显示函数imshow40
2.3 视频加载与摄像头调用40
2.3.1 视频数据的读取40
2.3.2 摄像头的直接调用42
2.4 数据保存43
2.4.1 图像的保存43
2.4.2 视频的保存45
2.4.3 保存和读取XML和YMAL
文件47
2.5 本章小结52
进 阶 篇
第3章 图像基本操作54
3.1 图像颜色空间54
3.1.1 颜色模型与转换54
3.1.2 多通道分离与合并59
3.2 图像像素操作处理61
3.2.1 图像像素统计62
3.2.2 两图像间的像素操作66
3.2.3 图像二值化71
3.2.4 LUT76
3.3 图像变换78
3.3.1 图像连接78
3.3.2 图像尺寸变换81
3.3.3 图像翻转变换83
3.3.4 图像仿射变换84
3.3.5 图像透视变换88
3.3.6 极坐标变换90
3.4 在图像上绘制几何图形92
3.4.1 绘制圆形92
3.4.2 绘制直线93
3.4.3 绘制椭圆93
3.4.4 绘制多边形94
3.4.5 文字生成95
3.5 感兴趣区域97
3.6 图像“金字塔”100
3.6.1 高斯“金字塔”100
3.6.2 拉普拉斯“金字塔”101
3.7 窗 互操作104
3.7.1 图像窗口滑动条104
3.7.2 鼠标响应106
3.8 本章小结109
第4章 图像直方图与模板匹配111
4.1 图像直方图的绘制111
4.2 直方图操作113
4.2.1 直方图归一化113
4.2.2 直方图比较116
4.3 直方图应用120
4.3.1 直方图均衡化120
4.3.2 直方图匹配122
4.3.3 直方图反向投影125
4.4 图像的模板匹配127
4.5 本章小结131
第5章 图像滤波132
5.1 图像卷积132
5.2 噪声的种类与生成136
5.2.1 椒盐噪声136
5.2.2 高斯噪声139
5.3 线性滤波142
5.3.1 均值滤波142
5.3.2 方框滤波145
5.3.3 高斯滤波147
5.3.4 可分离滤波151
5.4 非线性滤波154
5.4.1 中值滤波154
5.4.2 双边滤波156
5.5 图像的边缘检测159
5.5.1 边缘检测原理159
5.5.2 Sobel算子162
5.5.3 Scharr算子165
5.5.4 生成边缘检测滤波器167
5.5.5 Laplacian算子168
5.5.6 Canny算法170
5.6 本章小结173
第6章 图像形态学操作175
6.1 像素距离与连通域175
6.1.1 图像像素距离变换175
6.1.2 图像连通域分析180
6.2 腐蚀和膨胀187
6.2.1 图像腐蚀188
6.2.2 图像膨胀192
6.3 形态学应用195
6.3.1 开运算195
6.3.2 闭运算197
6.3.3 形态学梯度197
6.3.4 顶帽运算198
6.3.5 黑帽运算198
6.3.6 击中击不中变换199
6.3.7 图像细化202
6.4 本章小结205
应 用 篇
第7章 目标检测208
7.1 形状检测208
7.1.1 直线检测208
7.1.2 直线拟合218
7.1.3 圆形检测220
7.2 轮廓检测223
7.2.1 轮廓发现与绘制223
7.2.2 轮廓面积228
7.2.3 轮廓长度(周长)229
7.2.4 轮廓外接多边形231
7.2.5 点到轮廓距离236
7.2.6 凸包检测237
7.3 矩的计算239
7.3.1 几何矩与中心矩239
7.3.2 Hu矩241
7.3.3 基于Hu矩的轮廓匹配243
7.4 点集拟合245
7.5 QR二维码检测248
7.6 本章小结251
第8章 图像分析与修复253
8.1 傅里叶变换253
8.1.1 离散傅里叶变换253
8.1.2 傅里叶变换进行卷积260
8.1.3 离散余弦变换262
8.2 积分图像266
8.3 图像分割270
8.3.1 漫水填充法270
8.3.2 分水岭法274
8.3.3 Grabcut法277
8.3.4 Mean-Shift法279
8.4 图像修复282
8.5 本章小结285
第9章 特征点检测与匹配287
9.1 角点检测287
9.1.1 显示关键点287
9.1.2 Harris角点检测290
9.1.3 Shi-Tomas角点检测293
9.1.4 亚像素级别角点检测296
9.2 特征点检测298
9.2.1 关键点298
9.2.2 描述子299
9.2.3 SIFT特征点检测300
9.2.4 SURF特征点检测303
9.2.5 ORB特征点检测306
9.3 特征点匹配310
9.3.1 DescriptorMatcher类介绍310
9.3.2 暴力匹配312
9.3.3 显示特征点匹配结果313
9.3.4 FLANN匹配315
9.3.5 RANSAC优化特征点匹配318
9.4 本章小结322
第 10章 立体视觉323
10.1 单目视觉323
10.1.1 单目相机模型323
10.1.2 标定板角点提取327
10.1.3 单目相机标定331
10.1.4 单目相机校正335
10.1.5 单目投影339
10.1.6 单目位姿估计341
10.2 双目视觉346
10.2.1 双目相机模型346
10.2.2 双目相机标定347
10.2.3 双目相机校正350
10.3 本章小结353
第 11章 视频分析354
11.1 差值法检测移动物体354
11.2 均值迁移法目标跟踪357
11.2.1 均值迁移法实现的目标跟踪357
11.2.2 自适应均值迁移法实现的目标跟踪361
11.3 光流法目标跟踪365
11.3.1 Farneback多项式扩展算法366
11.3.2 基于LK稀疏光流法的跟踪370
11.4 本章小结375
提 高 篇
第 12章 OpenCV与机器学习378
12.1 OpenCV与传统机器学习378
12.1.1 K均值378
12.1.2 K近邻383
12.1.3 决策树389
12.1.4 随机森林392
12.1.5 支持向量机394
12.2 OpenCV与深度神经网络应用
实例397
12.2.1 加载深度学习模型397
12.2.2 图像识别400
12.2.3 风格迁移403
12.2.4 性别检测405
12.3 本章小结407