《OpenCV算法精解 基于Python与C++》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张平编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121324956
  • 页数:404 页
图书介绍:开篇先介绍如何在Windows和ubuntu上部署OpenCV,然后过度到核心章节,从灰度图像、彩色图像、图像平滑、边缘检测、霍夫变换等几个维度入手讲解,尽量拆分算法,代码实现用C++和Python代码。案例在每章最后分享,方便读者练习。

1 OpenCV入门 1

1.1 初识OpenCV 1

1.1.1 OpenCV的模块简介 1

1.1.2 OpenCV 2.4.13与3.2版本的区别 2

1.2 部署OpenCV 3

1.2.1 在Visual Studio 2015 中配置OpenCV 3

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

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

1.2.4 在Anaconda 2中配置OpenC V 13

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

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

2图像数字化 17

2.1 认识Numpy中的ndarray 17

2.1.1 构造ndarray对象 17

2.1.2 访问ndarray中的值 19

2.2 认识OpenC V中的Mat类 21

2.2.1 初识Mat 21

2.2.2 构造单通道Mat对象 21

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

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

2.2.5 向量类Vec 29

2.2.6 构造多通道Mat对象 30

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

2.2.8 获得Mat中某一区域的值 35

2.3 矩阵的运算 38

2.3.1 加法运算 38

2.3.2 减法运算 41

2.3.3 点乘运算 42

2.3.4 点除运算 44

2.3.5 乘法运算 45

2.3.6 其他运算 49

2.4 灰度图像数字化 50

2.4.1 概述 50

2.4.2 将灰度图像转换为Mat 51

2.4.3 将灰度图转换为ndarray 53

2.5 彩色图像数字化 53

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

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

2.6 参考文献 56

3几何变换 57

3.1 仿射变换 57

3.1.1 平移 58

3.1.2 放大和缩小 59

3.1.3 旋转 60

3.1.4 计算仿射矩阵 62

3.1.5 插值算法 65

3.1.6 Python实现 69

3.1.7 C++实现 71

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

3.2 投影变换 74

3.2.1 原理详解 74

3.2.2 Python实现 76

3.2.3 C++实现 77

3.3 极坐标变换 80

3.3.1 原理详解 80

3.3.2 Python实现 84

3.3.3 C++实现 87

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

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

3.4 参考文献 95

4对比度增强 96

4.1 灰度直方图 96

4.1.1 什么是灰度直方图 96

4.1.2 Python及C++实现 97

4.2 线性变换 100

4.2.1 原理详解 100

4.2.2 Python实现 101

4.2.3 C++实现 103

4.3 直方图正规化 105

4.3.1 原理详解 105

4.3.2 Python实现 105

4.3.3 C++实现 106

4.3.4 正规化函数normalize 108

4.4 伽马变换 111

4.4.1 原理详解 111

4.4.2 Python实现 112

4.4.3 C++实现 113

4.5 全局直方图均衡化 114

4.5.1 原理详解 114

4.5.2 Python实现 115

4.5.3 C++实现 117

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

4.6.1 原理详解 118

4.6.2 代码实现 119

4.7 参考文献 121

5图像平滑 122

5.1 二维离散卷积 122

5.1.1 卷积定义及矩阵形式 122

5.1.2 可分离卷积核 134

5.1.3 离散卷积的性质 135

5.2 高斯平滑 140

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

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

5.2.3 Python实现 144

5.2.4 C++实现 145

5.3 均值平滑 147

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

5.3.2 快速均值平滑 147

5.3.3 Python实现 149

5.3.4 C++实现 151

5.4 中值平滑 154

5.4.1 原理详解 154

5.4.2 Python实现 155

5.4.3 C++实现 157

5.5 双边滤波 161

5.5.1 原理详解 161

5.5.2 Python实现 162

5.5.3 C++实现 164

5.6 联合双边滤波 168

5.6.1 原理详解 168

5.6.2 Python实现 168

5.6.3 C++实现 170

5.7 导向滤波 173

5.7.1 原理详解 173

5.7.2 Python实现 174

5.7.3 快速导向滤波 176

5.7.4 C++实现 177

5.8 参考文献 179

6阈值分割 181

6.1 方法概述 182

6.1.1 全局阈值分割 182

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

6.1.3 局部阈值分割 186

6.2 直方图技术法 187

6.2.1 原理详解 187

6.2.2 Python实现 188

6.2.3 C++实现 190

6.3 熵算法 191

6.3.1 原理详解 191

6.3.2 代码实现 193

6.4 Otsu阈值处理 195

6.4.1 原理详解 195

6.4.2 Python实现 196

6.4.3 C++实现 197

6.5 自适应阈值 199

6.5.1 原理详解 200

6.5.2 Python实现 200

6.5.3 C++实现 201

6.6 二值图的逻辑运算 203

6.6.1 “与”和“或”运算 203

6.6.2 Python实现 204

6.6.3 C++实现 204

6.7 参考文献 206

7形态学处理 207

7.1 腐蚀 207

7.1.1 原理详解 207

7.1.2 实现代码及效果 208

7.2 膨胀 212

7.2.1 原理详解 212

7.2.2 Python实现 213

7.2.3 C++实现 214

7.3 开运算和闭运算 216

7.3.1 原理详解 216

7.3.2 Python实现 216

7.4 其他形态学处理操作 219

7.4.1 顶帽变换和底帽变换 219

7.4.2 形态学梯度 220

7.4.3 C++实现 220

8边缘检测 223

8.1 Roberts算子 224

8.1.1 原理详解 224

8.1.2 Python实现 225

8.1.3 C++实现 227

8.2 Prewitt边缘检测 229

8.2.1 Prewitt算子及分离性 229

8.2.2 Python实现 230

8.2.3 C++实现 232

8.3 Sobel边缘检测 234

8.3.1 Sobel算子及分离性 234

8.3.2 构建高阶的Sobel算子 234

8.3.3 Python实现 235

8.3.4 C++实现 239

8.4 Scharr算子 242

8.4.1 原理详解 242

8.4.2 Python实现 242

8.4.3 C++实现 243

8.5 Kirsch算子和Robinson算子 244

8.5.1 原理详解 244

8.5.2 代码实现及效果 245

8.6 Canny边缘检测 248

8.6.1 原理详解 248

8.6.2 Python实现 257

8.6.3 C++实现 262

8.7 Laplacian算子 268

8.7.1 原理详解 268

8.7.2 Python实现 269

8.7.3 C++实现 270

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

8.8.1 原理详解 272

8.8.2 Python实现 273

8.8.3 C++实现 275

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

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

8.9.2 Python实现 279

8.9.3 C++实现 281

8.10 Marr-Hildreth边缘检测 283

8.10.1 算法步骤详解 283

8.10.2 Pyton实现 284

8.10.3 C++实现 288

8.11 参考文献 292

9几何形状的检测和拟合 293

9.1 点集的最小外包 293

9.1.1 最小外包旋转矩形 294

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

9.1.3 最小外包圆 298

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

9.1.5 最小凸包 302

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

9.2 霍夫直线检测 306

9.2.1 原理详解 306

9.2.2 Python实现 311

9.2.3 C++实现 316

9.3 霍夫圆检测 320

9.3.1 标准霍夫圆检测 320

9.3.2 Python实现 322

9.3.3 基于梯度的霍夫圆检测 324

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

9.4 轮廓 329

9.4.1 查找、绘制轮廓 329

9.4.2 外包、拟合轮廓 332

9.4.3 轮廓的周长和面积 336

9.4.4 点和轮廓的位置关系 339

9.4.5 轮廓的凸包缺陷 342

9.5 参考文献 345

10傅里叶变换 346

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

10.1.1 数学理解篇 346

10.1.2 快速傅里叶变换 351

10.1.3 C++实现 351

10.1.4 Python实现 353

10.2 傅里叶幅度谱与相位谱 354

10.2.1 基础知识 354

10.2.2 Python实现 355

10.2.3 C++实现 358

10.3 谱残差显著性检测 361

10.3.1 原理详解 361

10.3.2 Python实现 362

10.3.3 C++实现 363

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

10.4.1 卷积定理 365

10.4.2 Python实现 366

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

10.5.1 步骤详解 369

10.5.2 Python实现 370

10.5.3 C++实现 371

10.6 参考文献 372

11频率域滤波 373

11.1 概述及原理详解 373

11.2 低通滤波和高通滤波 376

11.2.1 三种常用的低通滤波器 376

11.2.2 低通滤波的C++实现 379

11.2.3 低通滤波的Python实现 383

11.2.4 三种常用的高通滤波器 386

11.3 带通和带阻滤波 388

11.3.1 三种常用的带通滤波器 388

11.3.2 三种常用的带阻滤波器 389

11.4 自定义滤波器 391

11.4.1 原理详解 391

11.4.2 C++实现 391

11.5 同态滤波 396

11.5.1 原理详解 396

11.5.2 Python实现 396

11.6 参考文献 398

12色彩空间 399

12.1 常见的色彩空间 399

12.1.1 RGB色彩空间 399

12.1.2 HSV色彩空间 399

12.1.3 HLS色彩空间 400

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

12.2.1 Python实现 401

12.2.2 C++实现 402