logo资料库

OpenCV Python 手册.pdf

第1页 / 共304页
第2页 / 共304页
第3页 / 共304页
第4页 / 共304页
第5页 / 共304页
第6页 / 共304页
第7页 / 共304页
第8页 / 共304页
资料共304页,剩余部分请下载后查看
OpenCV-Python 中文教程 OpenCV官方教程中文版(For Python) 段力辉 译 http://privategarden.duapp.com/
为什么翻译此书? 段力辉 年 月 日 为什么使用 作为一种高效简洁的直译式语言非常适合我们用来解决日常 工作的问题。而且它简单易学,初学者几个小时就可以基本入门。再加 上 和 这两个翅膀, 对数据分析的能力不逊于 。 还被称为是胶水语言,有很多软件都提供了 接 口。尤其是在 下,可以使用 将不同的软件组成一个工作流, 发挥每一个软件自己最大的优势从而完成一个复杂的任务。比如我们可以 使用 存储数据,使用 分析数据,使用 展示数据,使用 进行 建模,使用 构建漂亮的 。而 可以将他们 联合在一起构建一个强大的工作流。 为什么使用 虽然 很强大,而且也有自己的图像处理库 ,但是相对于 来讲,它还是弱小很多。跟很多开源软件一样 也提供了 完善的 接口,非常便于调用。 的稳定版是 ,最新版 是 ,包含了超过 个算法和函数,几乎任何一个能想到的成熟算法 都可以通过调用 的函数来实现,超级方便。 为什么是这本书 但是非常可惜关于在 下使用 的书,除了这本在线教 程之外,仅有一个 多页的书 (本
书虽然挺好的,但是不够全面,不能让读者完全了解 的现状)。而 我翻译的这本书是来源于 的官方文档,内容全面,对各种的算 法的描述简单易懂,而且不拘泥于长篇大论的数学推导,非常适合想使用 解决实际问题的人,对他们来说具体的数学原理并不重要,重要 是能解决实际问题。 在国内这本书可以说是第一本 的译作。 本书的时效性 本书的编写时针对最新的 的,本版本还没有正式发布(但 很稳定),其中的内容页非常新,甚至用到了 年才提出的算法。因此 本书的时效性上应该是没有问题的。 本书的目标读者 本书针的读者是高校学生,科研工作者,图像处理爱好者。对于这些 人群,他们往往是带着具体的问题,在苦苦寻找解决方案。为了一个小问 题就让他们去学习 这么深奥的语言几乎是不可能的。而 的悄 然兴起给他们带来的希望,如果说 是 的话,那 的易用性 相当于 。他们可以很快的看懂本书的所有代码,并可以学着使用它们 来解决自己的问题,同时也能拓展自己的视野。别人经常说 不够 快,但是对于上面的这些读者,我相信这不是问题,现在我们日常使用的 机已经无比强大了,而且绝大多数情况下不会用到实时处理,更不会在 嵌入式设备上使用。因此这不是问题。
OpenCV-Python 段力 2014 年 1 月 30 日 1
目录 I OpenCV 1 关于 OpenCV-Python 教程 2 在 Windows 上安 OpenCV-Python 3 在 Fedora 上安 OpenCV-Python 10 10 11 12 II OpenCV 中的 Gui 特性 4 图片 13 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 2
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 中的图像处理 13色空换 54 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.3Otsus 二值化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 15.4Otsus 二值化是如何工作的 . . . . . . . . . . . . . . . . . . 72 3
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 4
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 5
分享到:
收藏