OpenCV-Python 中文教程(搬運)目錄

OpenCV-Python 中文教程

OpenCV官方教程中文版(For Python)

OpenCV2-Python-Tutorials

段力輝 譯

說明:搬運自linux公社pdf文件,粗略搬運,僅作個人筆記參考,有時間再美化

部分文件參考:

https://github.com/abidrahmank/OpenCV2-Python-Tutorials

http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

索引目錄

?I 走進 OpenCV 10

II OpenCV 中的 Gui 特性?

III 核心操作?

IV OpenCV 中的圖像處理(一)

IV OpenCV 中的圖像處理(二)

IV OpenCV 中的圖像處理(三)

IV OpenCV 中的圖像處理(四)

IV OpenCV 中的圖像處理(五)

IV OpenCV 中的圖像處理(六)

V 圖像特征提取與描述(一)?

V 圖像特征提取與描述(二)?

VI 視頻分析?

VII 攝像機標定和 3D 重構?

VIII 機器學習?

IX 計算攝影學?

?

說明:搬運自linux公社pdf文件,粗略搬運,僅作個人筆記參考,有時間再美化

部分文件參考:

https://github.com/abidrahmank/OpenCV2-Python-Tutorials

http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

?

?

詳細目錄(譯者說明附在末尾)


I 走進 OpenCV 10


1 關于 OpenCV-Python 教程 10
2 在 在 Windows 上安裝 OpenCV-Python 11
3 在 在 Fedora 上安裝 OpenCV-Python 12

?

II OpenCV 中的 Gui 特性 13


4 圖片 13
4.1 讀入圖像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 顯示圖像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 保存圖像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4 總結一下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 視頻 18
5.1 用攝像頭捕獲視頻 . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2 從文件中播放視頻 . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 保存視頻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 OpenCV 中的繪圖函數 24
6.1 畫線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2 畫矩形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 畫圓 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4 畫橢圓 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.5 畫多邊形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.6 在圖片上添加文字 . . . . . . . . . . . . . . . . . . . . . . . . . 26
7 把鼠標當畫筆 28
7.1 簡單演示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.2 高級一點的示例 . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8 用滑動條做調色板 32
8.1 代碼示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


III 核心操作 36


9 圖像的基礎操作 36
9.1 獲取并修改像素值 . . . . . . . . . . . . . . . . . . . . . . . . . 36
9.2 獲取圖像屬性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.3 圖像 ROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.4 拆分及合并圖像通道 . . . . . . . . . . . . . . . . . . . . . . . . 40
9.5 為圖像擴邊(填充) . . . . . . . . . . . . . . . . . . . . . . . . 41
10 圖像上的算術運算 43
10.1圖像加法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.2圖像混合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.3按位運算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11 程序性能檢測及優化 47
11.1使用 OpenCV 檢測程序效率 . . . . . . . . . . . . . . . . . . . 47
11.2OpenCV 中的默認優化 . . . . . . . . . . . . . . . . . . . . . . 48
11.3在 IPython 中檢測程序效率 . . . . . . . . . . . . . . . . . . . 49
11.4更多 IPython 的魔法命令 . . . . . . . . . . . . . . . . . . . . . 51
11.5效率優化技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
12OpenCV 中的數學工具 53


IV OpenCV 中的圖像處理 54


13 顏色空間轉換 54
13.1轉換顏色空間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
13.2物體跟蹤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.3怎樣找到要跟蹤對象的 HSV 值? . . . . . . . . . . . . . . . . . 57
14 幾何變換 59
14.1擴展縮放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
14.2平移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
14.3旋轉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
14.4仿射變換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.5透視變換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
15 圖像閾值 66
15.1簡單閾值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
15.2自適應閾值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
15.3Otsu’s 二值化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
15.4Otsu’s 二值化是如何工作的? . . . . . . . . . . . . . . . . . . 72
16 圖像平滑 75
16.1平均 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
16.2高斯模糊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
16.3中值模糊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
16.4雙邊濾波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17 形態學轉換 81
17.1腐蝕 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
17.2膨脹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
17.3開運算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
17.4閉運算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
17.5形態學梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
17.6禮帽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
17.7黑帽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
17.8形態學操作之間的關系 . . . . . . . . . . . . . . . . . . . . . . . 84
18 圖像梯度 87
18.1Sobel 算子和 Scharr 算子 . . . . . . . . . . . . . . . . . . . . 87
18.2Laplacian 算子 . . . . . . . . . . . . . . . . . . . . . . . . . . 87
19Canny 邊緣檢測 91
19.1原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
19.1.1噪聲去除 . . . . . . . . . . . . . . . . . . . . . . . . . . 91
19.1.2計算圖像梯度 . . . . . . . . . . . . . . . . . . . . . . . . 91
19.1.3非極大值抑制 . . . . . . . . . . . . . . . . . . . . . . . . 91
19.1.4滯后閾值 . . . . . . . . . . . . . . . . . . . . . . . . . . 92
19.2OpenCV 中的 Canny 邊界檢測 . . . . . . . . . . . . . . . . . 92
20 圖像金字塔 94
20.1原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
20.2使用金字塔進行圖像融合 . . . . . . . . . . . . . . . . . . . . . 96
21OpenCV 中的輪廓 101
21.1初識輪廓 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
21.1.1什么是輪廓 . . . . . . . . . . . . . . . . . . . . . . . . . 101
21.1.2怎樣繪制輪廓 . . . . . . . . . . . . . . . . . . . . . . . . 101
21.1.3輪廓的近似方法 . . . . . . . . . . . . . . . . . . . . . . 102
21.2輪廓特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
21.2.1矩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
21.2.2輪廓面積 . . . . . . . . . . . . . . . . . . . . . . . . . . 104
21.2.3輪廓周長 . . . . . . . . . . . . . . . . . . . . . . . . . . 105
21.2.4輪廓近似 . . . . . . . . . . . . . . . . . . . . . . . . . . 105
21.2.5凸包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
21.2.6凸性檢測 . . . . . . . . . . . . . . . . . . . . . . . . . . 107
21.2.7邊界矩形 . . . . . . . . . . . . . . . . . . . . . . . . . . 107
21.2.8最小外接圓 . . . . . . . . . . . . . . . . . . . . . . . . . 108
21.2.9橢圓擬合 . . . . . . . . . . . . . . . . . . . . . . . . . . 109
21.2.10 直線擬合 . . . . . . . . . . . . . . . . . . . . . . . . . . 109
21.3輪廓的性質 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
21.3.1長寬比 . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
21.3.2Extent . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
21.3.3Solidity . . . . . . . . . . . . . . . . . . . . . . . . . . 111
21.3.4Equivalent Diameter . . . . . . . . . . . . . . . . . . 112
21.3.5方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
21.3.6掩模和像素點 . . . . . . . . . . . . . . . . . . . . . . . . 112
21.3.7最大值和最小值及它們的位置 . . . . . . . . . . . . . . . 113
21.3.8平均顏色及平均灰度 . . . . . . . . . . . . . . . . . . . . 113
21.3.9極點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
21.4輪廓:更多函數 . . . . . . . . . . . . . . . . . . . . . . . . . . 115
21.4.1凸缺陷 . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
21.4.2Point Polygon Test . . . . . . . . . . . . . . . . . . . . 116
21.4.3形狀匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . 117
21.5輪廓的層次結構 . . . . . . . . . . . . . . . . . . . . . . . . . . 119
21.5.1什么是層次結構 . . . . . . . . . . . . . . . . . . . . . . 119
21.5.2OpenCV 中層次結構 . . . . . . . . . . . . . . . . . . . 120
21.5.3輪廓檢索模式 . . . . . . . . . . . . . . . . . . . . . . . . 120
22 直方圖 124
22.1直方圖的計算,繪制與分析 . . . . . . . . . . . . . . . . . . . . 124
22.1.1統計直方圖 . . . . . . . . . . . . . . . . . . . . . . . . . 124
22.1.2繪制直方圖 . . . . . . . . . . . . . . . . . . . . . . . . . 126
22.1.3使用掩模 . . . . . . . . . . . . . . . . . . . . . . . . . . 128
22.2直方圖均衡化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
22.2.1OpenCV 中的直方圖均衡化 . . . . . . . . . . . . . . . . 132
22.2.2CLAHE 有限對比適應性直方圖均衡化 . . . . . . . . . . 132
22.32D 直方圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
22.3.1介紹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
22.3.2OpenCV 中的 2D 直方圖 . . . . . . . . . . . . . . . . . 135
22.3.3Numpy 中 2D 直方圖 . . . . . . . . . . . . . . . . . . . 136
22.3.4繪制 2D 直方圖 . . . . . . . . . . . . . . . . . . . . . . 136
22.4直方圖反向投影 . . . . . . . . . . . . . . . . . . . . . . . . . . 141
22.4.1Numpy 中的算法 . . . . . . . . . . . . . . . . . . . . . 141
22.4.2OpenCV 中的反向投影 . . . . . . . . . . . . . . . . . . 143
23 圖像變換 146
23.1傅里葉變換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
23.1.1Numpy 中的傅里葉變換 . . . . . . . . . . . . . . . . . . 146
23.1.2OpenCV 中的傅里葉變換 . . . . . . . . . . . . . . . . . 148
23.1.3DFT 的性能優化 . . . . . . . . . . . . . . . . . . . . . . 150
23.1.4為什么拉普拉斯算子是高通濾波器? . . . . . . . . . . . 152
24 模板匹配 155
24.1OpenCV 中的模板匹配 . . . . . . . . . . . . . . . . . . . . . . 155
24.2多對象的模板匹配 . . . . . . . . . . . . . . . . . . . . . . . . . 158
25Hough 直線變換 160
25.1OpenCV 中的霍夫變換 . . . . . . . . . . . . . . . . . . . . . . 161
25.2Probabilistic Hough Transform . . . . . . . . . . . . . . . . 163
26Hough 圓環變換 165
27 分水嶺算法圖像分割 168
27.1代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28 使用 GrabCut 算法進行交互式前景提取 173
28.1演示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174


V 圖像特征提取與描述 178


29 理解圖像特征 178
29.1解釋 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
30Harris 角點檢測 181
30.1OpenCV 中的 Harris 角點檢測 . . . . . . . . . . . . . . . . . 182
30.2亞像素級精確度的角點 . . . . . . . . . . . . . . . . . . . . . . . 184
31Shi-Tomasi 角點檢測 & 適合于跟蹤的圖像特征 187
31.1代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
32 介紹 SIFT(Scale-Invariant Feature Transform) 190
33 介紹 SURF(Speeded-Up Robust Features) 195
33.1OpenCV 中的 SURF . . . . . . . . . . . . . . . . . . . . . . . 197
34 角點檢測的 FAST 算法 200
34.1使用 FAST 算法進行特征提取 . . . . . . . . . . . . . . . . . . . 200
34.2機器學習的角點檢測器 . . . . . . . . . . . . . . . . . . . . . . . 201
34.3非極大值抑制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
34.4總結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
34.5OpenCV 中 FAST 特征檢測器 . . . . . . . . . . . . . . . . . . 202
35BRIEF(Binary Robust Independent Elementary Features) 205
35.1OpenCV 中的 BRIEF . . . . . . . . . . . . . . . . . . . . . . 205
36ORB (Oriented FAST and Rotated BRIEF) 207
36.1OpenCV 中的 ORB 算法 . . . . . . . . . . . . . . . . . . . . . 208
37 特征匹配 211
37.1Brute-Force 匹配的基礎 . . . . . . . . . . . . . . . . . . . . . 211
37.2對 ORB 描述符進行蠻力匹配 . . . . . . . . . . . . . . . . . . . 212
37.3匹配器對象是什么? . . . . . . . . . . . . . . . . . . . . . . . . 213
37.4對 SIFT 描述符進行蠻力匹配和比值測試 . . . . . . . . . . . . . 213
37.5FLANN 匹配器 . . . . . . . . . . . . . . . . . . . . . . . . . . 214
38 使用特征匹配和單應性查找對象 218
38.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
38.2代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218


VI 視頻分析 222


39Meanshift 和 和 Camshift 222
39.1Meanshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
39.2OpenCV 中的 Meanshift . . . . . . . . . . . . . . . . . . . . 223
39.3Camshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
39.4OpenCV 中的 Camshift . . . . . . . . . . . . . . . . . . . . . 226
40 光流 231
40.1光流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
40.2Lucas-Kanade 法 . . . . . . . . . . . . . . . . . . . . . . . . . 232
40.3OpenCV 中的 Lucas-Kanade 光流 . . . . . . . . . . . . . . . 232
40.4OpenCV 中的稠密光流 . . . . . . . . . . . . . . . . . . . . . . 235
41 背景減除 238
41.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
41.2BackgroundSubtractorMOG . . . . . . . . . . . . . . . . . 238
41.3BackgroundSubtractorMOG2 . . . . . . . . . . . . . . . . . 239
41.4BackgroundSubtractorGMG . . . . . . . . . . . . . . . . . 240
41.5結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241


VII 攝像機標定和 3D 重構 243


42 攝像機標定 243
42.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
42.2代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
42.2.1設置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
42.2.2標定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
42.2.3畸變校正 . . . . . . . . . . . . . . . . . . . . . . . . . . 247
42.3反向投影誤差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
43 姿勢估計 250
43.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
43.1.1渲染一個立方體 . . . . . . . . . . . . . . . . . . . . . . 252
44 對極幾何(Epipolar Geometry ) 254
44.1基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
44.2代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
45 立體圖像中的深度地圖 259
45.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
45.2代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259


VIII 機器學習 261


46K 近鄰(k-Nearest Neighbour ) 261
46.1理解 K 近鄰 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
46.1.1OpenCV 中的 kNN . . . . . . . . . . . . . . . . . . . . 262
46.2使用 kNN 對手寫數字 OCR . . . . . . . . . . . . . . . . . . . 266
46.2.1手寫數字的 OCR . . . . . . . . . . . . . . . . . . . . . . 266
46.2.2英文字母的 OCR . . . . . . . . . . . . . . . . . . . . . . 268
47 支持向量機 270
47.1理解 SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
47.1.1線性數據分割 . . . . . . . . . . . . . . . . . . . . . . . . 270
47.1.2非線性數據分割 . . . . . . . . . . . . . . . . . . . . . . 271
47.2使用 SVM 進行手寫數據 OCR . . . . . . . . . . . . . . . . . . 273
48K 值聚類 277
48.1理解 K 值聚類 . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
48.1.1T 恤大小問題 . . . . . . . . . . . . . . . . . . . . . . . . 277
48.1.2它是如何工作的? . . . . . . . . . . . . . . . . . . . . . 278
48.2OpenCV 中的 K 值聚類 . . . . . . . . . . . . . . . . . . . . . . 281
48.2.1理解函數的參數 . . . . . . . . . . . . . . . . . . . . . . 281
48.2.2僅有一個特征的數據 . . . . . . . . . . . . . . . . . . . . 282
48.2.3顏色量化 . . . . . . . . . . . . . . . . . . . . . . . . . . 286


IX 計算攝影學 288


49 圖像去噪 288
49.1OpenCV 中的圖像去噪 . . . . . . . . . . . . . . . . . . . . . . 289
49.1.1cv2.fastNlMeansDenoisingColored() . . . . . . . . 290
49.1.2cv2.fastNlMeansDenoisingMulti() . . . . . . . . . . 290
50 圖像修補 294
50.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
50.2代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
X 對象檢測 297
51 使用 Haar 分類器進行面部檢測 297
51.1基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
51.2OpenCV 中的 Haar 級聯檢測 . . . . . . . . . . . . . . . . . . 299

?

為什么翻譯此書?
段力輝

1 為什么使用 Python
  Python 作為一種高效簡潔的直譯式語言非常適合我們用來解決日常工作的問題。而且它簡單易學,初學者幾個小時就可以基本入門。再加上 Numpy 和 matplotlib 這兩個翅膀,Python 對數據分析的能力不遜于Matlab。Python 還被稱為是膠水語言,有很多軟件都提供了 Python 接口。尤其是在 linux 下,可以使用 Python 將不同的軟件組成一個工作流,發揮每一個軟件自己最大的優勢從而完成一個復雜的任務。比如我們可以使用 Mysql 存儲數據,使用 R 分析數據,使用 matplotlib 展示數據,使用OpenGL 進行 3D 建模,使用 Qt 構建漂亮的 GUI。而 Python 可以將他們聯合在一起構建一個強大的工作流。


2 為什么使用 Python-OpenCV
  雖然 python 很強大,而且也有自己的圖像處理庫 PIL,但是相對于OpenCV 來講,它還是弱小很多。跟很多開源軟件一樣 OpenCV 也提供了完善的 python 接口,非常便于調用。OpenCV 的穩定版是 2.4.8,最新版是 3.0,包含了超過 2500 個算法和函數,幾乎任何一個能想到的成熟算法都可以通過調用 OpenCV 的函數來實現,超級方便。

?

3 為什么是這本書
  但是非常可惜關于在 Python 下使用 OpenCV 的書,除了這本在線教程之外,僅有一個 100 多頁的書 opencv computer vision with python(本書雖然挺好的,但是不夠全面,不能讓讀者完全了解 opencv 的現狀)。而我翻譯的這本書是來源于 OpenCV 的官方文檔,內容全面,對各種的算法的描述簡單易懂,而且不拘泥于長篇大論的數學推導,非常適合想使用OpenCV 解決實際問題的人,對他們來說具體的數學原理并不重要,重要是能解決實際問題。
在國內這本書可以說是第一本 Python_OpenCV 的譯作。

?

4 本書的時效性
  本書的編寫時針對最新的 OpenCV3.0 的,本版本還沒有正式發布(但很穩定),其中的內容頁非常新,甚至用到了 2012 年才提出的算法。因此本書的時效性上應該是沒有問題的。


5 本書的目標讀者
  本書針的讀者是高校學生,科研工作者,圖像處理愛好者。對于這些人群,他們往往是帶著具體的問題,在苦苦尋找解決方案。為了一個小問題就讓他們去學習 C++ 這么深奧的語言幾乎是不可能的。而 Python 的悄然興起給他們帶來的希望,如果說 C++ 是 tex 的話,那 Python 的易用性相當于 word。他們可以很快的看懂本書的所有代碼,并可以學著使用它們來解決自己的問題,同時也能拓展自己的視野。別人經常說 Python 不夠快,但是對于上面的這些讀者,我相信這不是問題,現在我們日常使用的PC 機已經無比強大了,而且絕大多數情況下不會用到實時處理,更不會在嵌入式設備上使用。因此這不是問題。

OpenCV-Python
段力輝
2014 年 1 月 30 日

轉載于:https://www.cnblogs.com/Undo-self-blog/p/8423851.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250975.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250975.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250975.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法 --- 平衡二叉樹

解題思路: 1.首先寫一個返回深度的函數d 2.寫一個遍歷函數t 3.在t中首先判斷,r是否為空(為空則此時就是平衡二叉樹,返回true),然后判斷是否為葉子節點(r.left null && r.right null)若是則返回true,最后判斷,其左子樹的深度與右子樹的深度之差是否大于1.若是則返回fal…

【co】ES6-20/21 iterator與generator

ES6-20 iterator與generator ES6-21 async與await、ES6的模塊化 try catch不能捕獲異步異常 try catch是同步代碼 try {setTimeout(() > {console.log(a)}) } catch (e) {console.log(e) }iterator 內部迭代器:系統定義好的迭代器接口(如數組Symbol…

嵌入式系統UBOOT

一個完整的嵌入式linux系統包含4部分內容:Bootloader、Parameters、Kernel、Root File System。3、4、5、6部分詳細介紹了這4部分的內容,這是Linux底層軟件開發人員應該掌握的。通過學習這些章節,您可以詳細了解到如何在一個裸板上裁減、移植…

驅動芯片

一 LED驅動芯片: 1.1 TM1640:16位數碼管驅動芯片,2線制控制(CLK/DIN),SCLK低電平時DIN輸入,而SCLK高電平時保持DIN保持不變;開始傳輸:SCLKH時DIN由高變低,停止傳輸SCLKH時DIN由由低變…

jquery --- 控制元素的隱藏/顯示

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <body> <div id"panel"><h5 class"head">什么是jquery?</h5><div class"content" style"display:non…

confusion_matrix(混淆矩陣)

作者&#xff1a;十歲的小男孩 凡心所向&#xff0c;素履可往 目錄 監督學習—混淆矩陣 是什么&#xff1f;有什么用&#xff1f;怎么用&#xff1f; 非監督學習—匹配矩陣 混淆矩陣 矩陣每一列代表預測值&#xff0c;每一行代表的是實際的類別。這個名字來源于它可以非常容…

Python 21 Django 實用小案例1

實用案例 驗證碼與驗證 KindEditor 組合搜索的實現 單例模式 beautifulsoup4 驗證碼與驗證 需要安裝Pillow模塊 pip stall pillow1、首先需要借助pillow模塊用來畫一個驗證碼圖形&#xff0c;這里單獨封裝了一個py文件&#xff0c;調用一個方法就好了 1 #!/user/bin/env python…

jquery --- 事件處理函數的event對象的幾個屬性(方法)說明

1.event.type: 事件的類型 $(a).click(function(event) {alert(event.type);return false; // 阻止鏈接跳轉 }); // click2.event.preventDefault(): 阻止默認事件 $("#sub").bind("click", function(event) {var username $("#username").va…

數據恢復軟件

鏈接&#xff1a;https://pan.baidu.com/s/1n6x5vhW-3SY8MAvvnqVtog 密碼&#xff1a;thh0轉載于:https://www.cnblogs.com/huanu/p/9452039.html

VMware

1.VMware軟件安裝&#xff1a; https://jingyan.baidu.com/article/9f7e7ec09da5906f281554d6.html 2&#xff0c;鏡像文件下載地址&#xff1a;http://www.cnbeta.com/articles/tech/566773.htm 有圖形界面。 或是在官網&#xff1a;https://wiki.centos.org/Download 2.cento…

jquery --- 全選、全不選、反選、提交

注意:jquery 提供的$(’#id’).attr(‘checked’,true)方法,在某些情況下會失效… 因此,使用js原生的 .checked true方法 控制 // html <form>你愛好的運動是? <br/><input type"checkbox" name"items" value"足球" /> 足球…

【重要】ES6-23 JavaScript模塊化

前端js模塊化的演變發展 模塊化解決的問題 傳統模塊化、插件化 CommonJS AMD/CMD ES6模塊化 ES6以前 沒有js引擎 一開始js寫在html的script標簽里js內容增多&#xff0c;抽取出index.js文件&#xff0c;外部引入js再增加&#xff0c;index.html對應index.js index2.html對應ind…

Quartz.Net定時任務EF+MVC版的web服務

之前項目采用JAVA 的 Quartz 進行定時服調度務處理程序&#xff0c;目前在.NET下面使用依然可以完成相同的工作任務&#xff0c;其實什么語言不重要&#xff0c;關鍵是我們要學會利用語言實現價值。它是一個簡單的執行任務計劃的組件&#xff0c;基本包括這三部分&#xff1a;J…

jquery --- 多選下拉框的移動(穿梭框)

效果如下: 幾個注意地方: 1.多選下拉框需要添加 multiple 2.獲取選中的元素KaTeX parse error: Expected EOF, got # at position 3: (#?id option:selec…(#id option:not(:selected)) 下面是代碼的各個部分實現, 方便引用,最后是總體代碼,方便理解 添加選中到右邊: // …

ES6-24 生成器與迭代器的應用

手寫生成器 先done再false&#xff0c;不然index就提前了一步1 var arr [1,2] function generator(arr){var i 0;return{next(){var done i > arr.length ? true : false,value done ? undefined : arr[i];return {value : value,done : done} }} } var gen gener…

1013 B. And

鏈接 [http://codeforces.com/contest/1013/problem/B] 題意 給你一個n和x,再給n個數&#xff0c;有一種操作用x&a[i]取代&#xff0c;a[i],問使其中至少兩個數相同&#xff0c;要多少次操作&#xff0c;如果不能輸出-1. 思路 x&a[i],無論&多少次&#xff0c;a[i]都…

jquery --- 收縮兄弟元素

點擊高亮的收縮兄弟元素. 思路: 1.點擊的其實是tr.(類為parent) 2.toggleClass可以切換樣式 3.slblings(’.class’).toggle 可以根據其類來進行隱藏顯示 代碼如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"><style>.pa…

Webpack基礎

path.resolve // 只要以/開頭&#xff0c;就變為絕對路徑 // ./和直接寫效果相同 var path require("path") //引入node的path模塊path.resolve(/foo/bar, ./baz) // returns /foo/bar/baz path.resolve(/foo/bar, baz) // returns /foo/bar/baz path.res…

(php)實現萬年歷

1 <?php2 //修改頁面編碼3 header("content-type:text/html;charsetutf-8");4 5 //獲取當前年6 $year$_GET[y]?$_GET[y]:date(Y);7 8 //獲取當年月9 $month$_GET[m]?$_GET[m]:date(m); 10 11 //獲取當前月多少天 12 $daysdate(t,strtotime("{$year}-{$m…

LeetCode:二叉樹相關應用

LeetCode&#xff1a;二叉樹相關應用 基礎知識 617.歸并兩個二叉樹 題目 Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new …