摘要

适读人群 :本书适合入门图像处理和计算机视觉领域的初学者阅读,要求读者具备一定的C++ 或Python编程基础。

Python与C++双实现,助力读者轻松驾驭OpenCV算法,夯实计算机视觉领域基础知识!

利用更直观简单的图示拆解图像算法背后复杂晦涩的数学原理!

利用基础的加法和乘法运算理解图像平滑和锐化

利用数列的排序理解图像中值滤波

利用初中的尺规作图理解圆的检测方法

详细介绍OpenCV实现对应的函数

注重代码实现(分别给出Python和C++实现)及实际应用

OpenCV算法精解 基于Python与C++ 作者:张平

OpenCV算法精解 基于Python与C++ 出版社: 电子工业出版社

OpenCV算法精解 基于Python与C++ 内容简介

开篇先介绍如何在Windows和ubuntu上部署OpenCV,然后过度到核心章节,从灰度图像、彩色图像、图像平滑、边缘检测、霍夫变换等几个维度入手讲解,尽量拆分算法,代码实现用C++和Python代码。案例在每章最后分享,方便读者练习。

OpenCV算法精解 基于Python与C++ 目录

1 OpenCV入门

1.1 初识OpenCV

1.1.1 OpenCV的模块简介

1.1.2 OpenCV 2.4.13与3.2版本的区别

1.2 部署OpenCV

1.2.1 在Visual Studio 2015中 配置OpenCV

1.2.2 OpenCV 2.X C++ API的第一个示例

1.2.3 OpenCV 3.X C++ API的第一个示例

1.2.4 在Anaconda 2中配置OpenCV

1.2.5 OpenCV 2.X Python API的第一个示例

1.2.6 OpenCV 3.X Python API的第一个示例

2 图像数字化

2.1 认识Numpy中的ndarray

2.1.1 构造ndarray对象

2.1.2 访问ndarray中的值

2.2 认识OpenCV中的Mat类

2.2.1 初识Mat

2.2.2 构造单通道Mat对象

2.2.3 获得单通道Mat的基本信息

2.2.4 访问单通道Mat对象中的值

2.2.5 向量类Vec

2.2.6 构造多通道Mat对象

2.2.7 访问多通道Mat对象中的值

2.2.8 获得Mat中某一区域的值

2.3 矩阵的运算

2.3.1 加法运算

2.3.2 减法运算

2.3.3 点乘运算

2.3.4 点除运算

2.3.5 乘法运算

2.3.6 其他运算

2.4 灰度图像数字化

2.4.1 概述

2.4.2 将灰度图像转换为Mat

2.4.3 将灰度图转换为ndarray

2.5 彩色图像数字化

2.5.1 将RGB彩色图像转换为多通道Mat

2.5.2 将RGB彩色图转换为三维的ndarray

2.6 参考文献

3 几何变换

3.1 仿射变换

3.1.1 平移

3.1.2 放大和缩小

3.1.3 旋转

3.1.4 计算仿射矩阵

3.1.5 插值算法

3.1.6 Python实现

3.1.7 C++实现

3.1.8 旋转函数rotate(OpenCV3.X新特性)

3.2 投影变换

3.2.1 原理详解

3.2.2 Python实现

3.2.3 C++实现

3.3 极坐标变换

3.3.1 原理详解

3.3.2 Python实现

3.3.3 C++实现

3.3.4 线性极坐标函数linearPolar(OpenCV 3.X新特性)

3.3.5 对数极坐标函数logPolar(OpenCV 3.X新特性)

3.4 参考文献

4 对比度增强

4.1 灰度直方图

4.1.1 什么是灰度直方图

4.1.2 Python及C++实现

4.2 线性变换

4.2.1 原理详解

4.2.2 Python实现

4.2.3 C++实现

4.3 直方图正规化

4.3.1 原理详解

4.3.2 Python实现

4.3.3 C++实现

4.3.4 正规化函数normalize

4.4 伽马变换

4.4.1 原理详解

4.4.2 Python实现

4.4.3 C++实现

4.5 全局直方图均衡化

4.5.1 原理详解

4.5.2 Python实现

4.5.3 C++实现

4.6 限制对比度的自适应直方图均衡化

4.6.1 原理详解

4.6.2 代码实现

4.7 参考文献

5 图像平滑

5.1 二维离散卷积

5.1.1 卷积定义及矩阵形式

5.1.2 可分离卷积核

5.1.3 离散卷积的性质

5.2 高斯平滑

5.2.1 高斯卷积核的构建及分离性

5.2.2 高斯卷积核的二项式近似

5.2.3 Python实现

5.2.4 C++实现

5.3 均值平滑

5.3.1 均值卷积核的构建及分离性

5.3.2 快速均值平滑

5.3.3 Python实现

5.3.4 C++实现

5.4 中值平滑

5.4.1 原理详解

5.4.2 Python实现

5.4.3 C++实现

5.5 双边滤波

5.5.1 原理详解

5.5.2 Python实现

5.5.3 C++实现

5.6 联合双边滤波

5.6.1 原理详解

5.6.2 Python实现

5.6.3 C++实现

5.7 导向滤波

5.7.1 原理详解

5.7.2 Python实现

5.7.3 快速导向滤波

5.7.4 C++实现

5.8 参考文献

6 阈值分割

6.1 方法概述

6.1.1 全局阈值分割

6.1.2 阈值函数threshold(OpenCV3.X新特性)

6.1.3 局部阈值分割

6.2 直方图技术法

6.2.1 原理详解

6.2.2 Python实现

6.2.3 C++实现

6.3 熵算法

6.3.1 原理详解

6.3.2 代码实现

6.4 Otsu阈值处理

6.4.1 原理详解

6.4.2 Python实现

6.4.3 C++实现

6.5 自适应阈值

6.5.1 原理详解

6.5.2 Python实现

6.5.3 C++实现

6.6 二值图的逻辑运算

6.6.1 “与”和“或”运算

6.6.2 Python实现

6.6.3 C++实现

6.7 参考文献

7 形态学处理

7.1 腐蚀

7.1.1 原理详解

7.1.2 实现代码及效果

7.2 膨胀

7.2.1 原理详解

7.2.2 Python实现

7.2.3 C++实现

7.3 开运算和闭运算

7.3.1 原理详解

7.3.2 Python实现

7.4 其他形态学处理操作

7.4.1 顶帽变换和底帽变换

7.4.2 形态学梯度

7.4.3 C++实现

8 边缘检测

8.1 Roberts算子

8.1.1 原理详解

8.1.2 Python实现

8.1.3 C++实现

8.2 Prewitt边缘检测

8.2.1 Prewitt算子及分离性

8.2.2 Python实现

8.2.3 C++实现

8.3 Sobel边缘检测

8.3.1 Sobel算子及分离性

8.3.2 构建高阶的Sobel算子

8.3.3 Python实现

8.3.4 C++实现

8.4 Scharr算子

8.4.1 原理详解

8.4.2 Python实现

8.4.3 C++实现

8.5 Kirsch算子和Robinson算子

8.5.1 原理详解

8.5.2 代码实现及效果

8.6 Canny边缘检测

8.6.1 原理详解

8.6.2 Python实现

8.6.3 C++实现

8.7 Laplacian算子

8.7.1 原理详解

8.7.2 Python实现

8.7.3 C++实现

8.8 高斯拉普拉斯(LoG)边缘检测

8.8.1 原理详解

8.8.2 Python实现

8.8.3 C++实现

8.9 高斯差分(DoG)边缘检测

8.9.1 高斯拉普拉斯与高斯差分的关系

8.9.2 Python实现

8.9.3 C++实现

8.10 Marr-Hildreth边缘检测

8.10.1 算法步骤详解

8.10.2 Pyton实现

8.10.3 C++实现

8.11 参考文献

9 几何形状的检测和拟合

9.1 点集的最小外包

9.1.1 最小外包旋转矩形

9.1.2 旋转矩形的4个顶点(OpenCV 3.X新特性)

9.1.3 最小外包圆

9.1.4 最小外包直立矩形(OpenCV 3.X新特性)

9.1.5 最小凸包

9.1.6 最小外包三角形( OpenCV 3.X新特性)

9.2 霍夫直线检测

9.2.1 原理详解

9.2.2 Python实现

9.2.3 C++实现

9.3 霍夫圆检测

9.3.1 标准霍夫圆检测

9.3.2 Python实现

9.3.3 基于梯度的霍夫圆检测

9.3.4 基于梯度的霍夫圆检测函数HoughCircles

9.4 轮廓

9.4.1 查找、绘制轮廓

9.4.2 外包、拟合轮廓

9.4.3 轮廓的周长和面积

9.4.4 点和轮廓的位置关系

9.4.5 轮廓的凸包缺陷

9.5 参考文献

10 傅里叶变换

10.1 二维离散的傅里叶(逆)变换

10.1.1 数学理解篇

10.1.2 快速傅里叶变换

10.1.3 C++实现

10.1.4 Python实现

10.2 傅里叶幅度谱与相位谱

10.2.1 基础知识

10.2.2 Python实现

10.2.3 C++实现

10.3 谱残差显著性检测

10.3.1 原理详解

10.3.2 Python实现

10.3.3 C++实现

10.4 卷积与傅里叶变换的关系

10.4.1 卷积定理

10.4.2 Python实现

10.5 通过快速傅里叶变换计算卷积

10.5.1 步骤详解

10.5.2 Python实现

10.5.3 C++实现

10.6 参考文献

11 频率域滤波

11.1 概述及原理详解

11.2 低通滤波和高通滤波

11.2.1 三种常用的低通滤波器

11.2.2 低通滤波的C++实现

11.2.3 低通滤波的Python实现

11.2.4 三种常用的高通滤波器

11.3 带通和带阻滤波

11.3.1 三种常用的带通滤波器

11.3.2 三种常用的带阻滤波器

11.4 自定义滤波器

11.4.1 原理详解

11.4.2 C++实现

11.5 同态滤波

11.5.1 原理详解

11.5.2 Python实现

11.6 参考文献

12 色彩空间

12.1 常见的色彩空间

12.1.1 RGB色彩空间

12.1.2 HSV色彩空间

12.1.3 HLS色彩空间

12.2 调整彩色图像的饱和度和亮度

12.2.1 Python实现

12.2.2 C++实现

OpenCV算法精解 基于Python与C++ 精彩文摘

OpenCV(Open Source Computer Vision Library)是开源的计算机视觉和机器学习库,提供了 C++、C、Python、Java 接口,并支持 Windows、Linux、Android、Mac OS 平台。OpenCV自 1999 年问世以来,就已经成为计算机视觉领域学者和开发人员的首选工具。OpenCV 最初是由 Intel 的小组进行开发的,在发布了一系列 Beta 版本后,1.0 版本终于在 2006 年面市,2009 年发布了重要的版本 OpenCV 2.X,现在已经是 2.4.13 版本;从 2014 年开始,在继续更新 OpenCV 2.X 版本的同时,发布了 OpenCV 3.X 版本,现在已经更新到 3.2 版本。因为这两个版本均在继续更新,所以本书在介绍图像算法的基础上,会说明两者的不同之处,所有代码使用的都是最新的 OpenCV 2.4.13 和 3.2 版本。

pythonopencv算法_OpenCV算法精解 基于Python与C++pdf相关推荐

  1. 利用python处理dna序列_详解基于python的全局与局部序列比对的实现(DNA)

    程序能实现什么 a.完成gap值的自定义输入以及两条需比对序列的输入 b.完成得分矩阵的计算及输出 c.输出序列比对结果 d.使用matplotlib对得分矩阵路径的绘制 一.实现步骤 1.用户输入步 ...

  2. python selenium爬虫_详解基于python +Selenium的爬虫

    详解基于python +Selenium的爬虫 一.背景 1. Selenium Selenium 是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,支持chrome.firefox等主 ...

  3. python处理表格数据-基于Python快速处理PDF表格数据

    我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来. 使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下: pip install pdfpl ...

  4. 基于Python pdfplumber实现PDF转WORD

    此文章基于Python pdfplumber实现PDF转WORD import pdfplumber import docx from docx import Documentdoc = docx.D ...

  5. LDA与PCA数据降维算法理论与实现(基于python)

    数据降维 一. 线性判别分析(LDA) linear Discriminant Analysis 用途: 数据预处理中的降维,分类任务 目标: LDA关心的是能够最大化类间区分度的坐标轴成分 将特征空 ...

  6. 基于python fitz的pdf文件处理器--已开源

    "音符文档助手"软件操作手册 目录 1.软件介绍 2.界面展示 3.安装教程 4.操作手册 5.注意事项 6.作者鸣谢 7.代码示例 [介绍] 音符文档助手PC端是一款实现word ...

  7. dwa算法实现局部路径规划——基于python

    dwa算法简介 动态窗口法(dynamic window approach, dwa),用于实现机器人的局部路径规划 实现原理: 在速度空间(v,w)中不断采样,模拟机器人在采样得到的速度下的运行轨迹 ...

  8. 算法建模流程详解及python代码实现

    算法建模 前言 建模的一般流程 代码实现(以逻辑回归为例,重在解释流程) 导入相关模块 数据清洗及降维 woe编码(好处不需要填充缺失值不需要数据标准化) 检验多重共线性(在这步之后决定样本不平衡怎么 ...

  9. python两张图片无缝合成一张_详解基于python的多张不同宽高图片拼接成大图

    #!/usr/bin/env python # -*- coding:utf-8 -*- import PIL.Image as Image import os IMAGES_PATH = 'D:Ma ...

  10. python基础代码库-CNN详解-基于python基础库实现的简单CNN

    CNN,即卷积神经网络,主要用于图像识别,分类.由输入层,卷积层,池化层,全连接层(Affline层),Softmax层叠加而成.卷积神经网络中还有一个非常重要的结构:过滤器,它作用于层与层之间(卷积 ...

最新文章

  1. 《C#精彩实例教程》小组阅读12 -- C#面向对象技术高级应用
  2. linux shell 判断文件是否存在
  3. c语言 fgets函数 去除换行符_C语言文件的打开和关闭
  4. qt如何提前jpg文件里的缩略图_如何去捕获和编辑H5制作软件Hype中的海报图像
  5. mykernel编译过程中问题解决
  6. AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
  7. android progressdialog 倒计时,自定义progressdialog——带倒计时的progressbar效果
  8. 在对话框中进行消息映射((CEdit*)GetDlgItem(IDC_EDIT_TEST))-SetWindowText(this is a edit box)...
  9. 微波工程(4)——阻抗匹配
  10. 深入理解JVM虚拟机之高效并发
  11. matlab对比度拉伸代码,图像增强常用代码
  12. 【014】Excel宏编程的交互解析(MsgBox)_001_#VBA
  13. element-ui MessageBox 弹框判断确认和取消
  14. 请教各位大虾:Delphi创建的ActiveForm上的SpeedButton在鼠标离开后没有重画为flat样式
  15. 新浪微博Python登陆
  16. vue配置sass全局变量
  17. 跨境电商o2o模式的表现形式有哪些?
  18. CSS绘制形状(三角形、四分之一圆、半圆、圆、梯形、球体、菱形)
  19. 如何用计算机进行照片合成,不借助软件怎样将两张照片合成一张?一招教你搞定!...
  20. NFS服务常见故障排查和解决方法

热门文章

  1. C#实现SQL SERVER2008聚合函数
  2. 从副总裁做”表哥“说起
  3. 2010年04月 小记(MVC2validation, svn)
  4. 12.高性能MySQL --- 高可用性
  5. 78. Cookie
  6. 53. Element setAttribute() 方法
  7. 21. Element isContentEditable 属性
  8. SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)...
  9. 未能加载文件或程序集“System.Data.SQLite.DLL”或它的某一个依赖项
  10. Compress、tar、gzip、zcat、bzip2、bzcat、打包解压命令行