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.mzph.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 …