Python极客项目编程(第2版) Python编程从入门到实战AI机器学习语音识别OpenGL3D渲染树莓派物联网书籍
¥52.40
运费: | ¥ 0.00-20.00 |
商品详情
书名:Python极客项目编程(第2版)
定价:69.8
ISBN:9787115642363
作者:[美] 马赫什·文基塔查拉姆(Mahesh Venkitachalam)
版次:第2版
出版时间:2024-07
内容提要:
Python是一种解释型、面向对象、动态数据类型的*程序设计语言,通过Python编程能够解决现实生活中的很多问题。本书并不介绍Python语言的基础知识,而是通过一系列有趣的项目,展示如何用Python解决各种实际问题,以及如何使用一些流行的Python库。 本书共15章,每章讲解一个有趣的Python项目,这些项目可以分成5个部分:*部分是热身,包括科赫雪花、繁花曲线;*部分是模拟生命,包括康威生命游戏、使用Karplus-Strong算法生成泛音、群体行为模拟;第三部分是好玩的图形,包括文本图形、照片马赛克、裸眼立体画;第四部分是走进三维,包括理解OpenGL、圆环面上的康威生命游戏、体渲染;第五部分是玩转硬件,包括在树莓派Pico上实现Karplus-Strong算法、树莓派激光音乐秀、物联网花园、树莓派音频机器学习。此外,本书还通过附录介绍如何安装Python和设置树莓派。 本书适合已经了解了基本的Python语法和编程知识、想要尝试和探索通过Python编程解决实际问题的读者阅读,也可作为Python初学者练习项目开发的参考用书。
作者简介:
马赫什·文基塔查拉姆(Mahesh Venkitachalam)是一名计算机图形学和嵌入式系统顾问,拥有二十余年从业经验。他是Electronut Labs的*,该公司以开发充满创意的开源硬件著称。他经常撰写有关编程和电子技术的博客。
目录:
第 一部分 热身
第 1 章 科赫雪花 2
1.1 工作原理 2
1.1.1 使用递归 2
1.1.2 构建科赫雪花 3
1.1.3 使用海龟绘图法绘图 6
1.2 需求 8
1.3 代码 8
1.3.1 计算点的坐标 8
1.3.2 递归 8
1.3.3 绘制片段 9
1.3.4 编写函数 main() 9
1.4 运行程序 10
1.5 小结 10
1.6 实验 11
1.7 完整代码 11
第 2 章 繁花曲线 13
2.1 工作原理 13
2.1.1 理解参数方程 13
2.1.2 使用海龟绘图法绘制曲线 15
2.2 需求 16
2.3 代码 17
2.3.1 绘制繁花曲线 17
2.3.2 协调动画 20
2.3.3 保存曲线 22
2.3.4 分析命令行参数及初始化 23
2.4 运行程序 24
2.5 小结 25
2.6 实验 26
2.7 完整代码 26
*部分 模拟生命
第 3 章 康威生命游戏 32
3.1 工作原理 32
3.2 需求 34
3.3 代码 34
3.3.1 显示网格 34
3.3.2 设置初始状态 35
3.3.3 实现边界条件 36
3.3.4 实现规则 37
3.3.5 向程序传递命令行参数 37
3.3.6 初始化 38
3.4 运行程序 38
3.5 小结 40
3.6 实验 40
3.7 完整代码 40
第 4 章 使用 Karplus-Strong 算法生成泛音 43
4.1 工作原理 442
4.1.1 模拟 45
4.1.2 WAV 文件格式 46
4.1.3 小调五声音阶 47
4.2 需求 48
4.3 代码 48
4.3.1 使用 deque 实现环形缓冲区 48
4.3.2 实现 Karplus-Strong算法 48
4.3.3 写入 WAV 文件 50
4.3.4 使用 PyAudio 播放 WAV文件 50
4.3.5 创建音符及分析参数 52
4.4 运行弹拨乐器模拟程序 53
4.5 小结 54
4.6 实验 54
4.7 完整代码 54
第 5 章 群体行为模拟 58
5.1 工作原理 58
5.2 需求 59
5.3 代码 59
5.3.1 初始化模拟 59
5.3.2 设置边界条件 60
5.3.3 绘制个体 62
5.3.4 应用群体行为规则 63
5.3.5 影响模拟 67
5.3.6 分步模拟 68
5.3.7 分析参数及实例化Boids 类 69
5.4 运行群体行为模拟程序 69
5.5 小结 69
5.6 实验 70
5.7 完整代码 70
第三部分 好玩的图形
第 6 章 文本图形 74
6.1 工作原理 75
6.2 需求 76
6.3 代码 76
6.3.1 定义灰度标尺和网格 76
6.3.2 计算平均亮度 77
6.3.3 根据图像生成 ASCII 内容 77
6.3.4 定义命令行参数 78
6.3.5 将表示文本图形的字符串写入文本文件 79
6.4 运行文本图形生成程序 79
6.5 小结 80
6.6 实验 80
6.7 完整代码 80
第 7 章 照片马赛克 83
7.1 工作原理 83
7.1.1 分割目标图像 84
7.1.2 计算平均 RGB 值 84
7.1.3 匹配图像 85
7.2 需求 87
7.3 代码 87
7.3.1 读入输入图像 87
7.3.2 计算图像的平均 RGB 值 88
7.3.3 将目标图像分割为网格 88
7.3.4 查找与分片*匹配的图像 89
7.3.5 创建图像网格 90
7.3.6 创建照片马赛克 91
7.3.7 编写函数 main() 93
7.4 运行照片马赛克生成程序 94
7.5 小结 95
7.6 实验 95
7.7 完整代码 95
第 8 章 裸眼立体画 101
8.1 工作原理 102
8.1.1 感知裸眼立体画中的深度 102
8.1.2 使用深度图 103
8.1.3 平移像素 105
8.2 需求 106
8.3 代码 106
8.3.1 创建由随机圆组成的分片 106
8.3.2 重复分片 107
8.3.3 创建裸眼立体画 108
8.3.4 提供命令行参数 109
8.4 运行裸眼立体画生成程序 109
8.5 小结 110
8.6 实验 111
8.7 完整代码 111
第四部分 走进三维
第 9 章 理解 OpenGL 116
9.1 OpenGL 的工作原理 117
9.1.1 图元 117
9.1.2 三维变换 118
9.1.3 着色器 120
9.1.4 顶点缓存 121
9.1.5 纹理映射 121
9.1.6 OpenGL 上下文 122
9.2 需求 122
9.3 代码 122
9.3.1 RenderWindow 类 123
9.3.2 Scene 类 125
9.3.3 辅助函数 129
9.4 运行 OpenGL 应用程序 130
9.5 小结 130
9.6 实验 130
9.7 完整代码 131
第 10 章 圆环面上的康威生命游戏 136
10.1 工作原理 136
10.1.1 计算顶点 136
10.1.2 计算光照法线 138
10.1.3 渲染 139
10.1.4 给三角形带着色 140
10.1.5 控制相机 140
10.1.6 将网格映射到圆环面 141
10.2 需求 142
10.3 代码 142
10.3.1 渲染圆环面 142
10.3.2 实现康威生命游戏模拟 148
10.3.3 创建相机 149
10.3.4 整合代码 151
10.4 运行三维版康威生命游戏模拟 153
10.5 小结 154
10.6 实验 155
10.7 完整的圆环面渲染代码 155
10.8 完整的康威生命游戏模拟代码 160
10.9 完整的相机创建代码 161
10.10 RenderWindow 类的完整代码 162
第 11 章 体渲染 166
11.1 工作原理 166
11.1.1 数据格式 167
11.1.2 生成光线 167
11.1.3 OpenGL 窗口 169
11.2 需求 169
11.3 代码 169
11.3.1 生成三维纹理 170
11.3.2 生成光线 171
11.3.3 实现体光线投射算法 176
11.3.4 显示二维切片 180
11.3.5 整合代码 183
11.4 运行程序 185
11.5 小结 185
11.6 实验 185
11.7 完整的三维纹理生成代码 186
11.8 完整的光线生成代码 187
11.9 完整的体光线投射算法代码 192
11.10 显示二维切片的完整代码 195
11.11 完整的主文件代码 198
第五部分 玩转硬件
第 12 章 在树莓派 Pico 上实现Karplus-Strong 算法 202
12.1 工作原理 203
12.1.1 输入和输出 203
12.1.2 I2S 协议 204
12.2 需求 205
12.2.1 组装硬件 205
12.2.2 安装 MicroPython 207
12.3 代码 207
12.3.1 设置 207
12.3.2 生成音符 208
12.3.3 播放音频 210
12.3.4 编写函数 main() 211
12.4 运行程序 212
12.5 小结 213
12.6 实验 213
12.7 完整代码 214
第 13 章 树莓派激光音乐秀 218
13.1 工作原理 218
13.1.1 使用激光生成图案 219
13.1.2 使用快速傅里叶变换分析音频 222
13.2 需求 224
13.2.1 在树莓派上安装系统和软件 224
13.2.2 搭建激光秀装置 225
13.2.3 连接硬件 226
13.3 代码 228
13.3.1 设置 228
13.3.2 控制硬件 229
13.3.3 处理音频 230
13.3.4 测试电机 233
13.3.5 整合代码 234
13.4 运行激光音乐秀程序 235
13.5 小结 236
13.6 实验 236
13.7 完整代码 237
第 14 章 物联网花园 242
14.1 工作原理 242
14.1.1 低功耗蓝牙 243
14.1.2 Web 框架 Bottle 245
14.1.3 SQLite 数据库 246
14.2 需求 247
14.2.1 在树莓派上安装系统和软件 247
14.2.2 安装 CircuitPython 247
14.2.3 设置 IFTTT 服务 248
14.3 代码 249
14.3.1 CircuitPython 代码 249
14.3.2 BLE 扫描器代码 252
14.3.3 Web 服务器代码 258
14.3.4 主程序文件 264
14.4 运行物联网花园程序 266
14.5 小结 267
14.6 实验 267
14.7 完整的 CircuitPython 代码 268
14.8 完整的 BLE 扫描器代码 270
14.9 完整的 Python Web 服务器代码 273
14.10 完整的主程序代码 275
第 15 章 树莓派音频机器学习 277
15.1 机器学习概述 277
15.2 工作原理 278
15.2.1 声谱图 280
15.2.2 在树莓派上推断 281
15.3 需求 283
15.4 代码 284
15.4.1 在 Colab 中训练模型 284
15.4.2 在树莓派上使用模型 293
15.5 运行语音识别系统 301
15.6 小结 302
15.7 实验 303
15.8 完整代码 303
附录 A 安装 Python 309
A.1 获取本书项目的源代码 309
A.2 安装 Python 和 Python 模块 309
A.2.1 Windows 309
A.2.2 macOS 310
A.2.3 Linux 311
附录 B 设置树莓派 312
B.1 安装操作系统 312
B.2 测试连接 314
B.3 使用 SSH 登录树莓派 315
B.4 安装 Python 模块 316
B.5 远程使用 Visual Studio Code 316
定价:69.8
ISBN:9787115642363
作者:[美] 马赫什·文基塔查拉姆(Mahesh Venkitachalam)
版次:第2版
出版时间:2024-07
内容提要:
Python是一种解释型、面向对象、动态数据类型的*程序设计语言,通过Python编程能够解决现实生活中的很多问题。本书并不介绍Python语言的基础知识,而是通过一系列有趣的项目,展示如何用Python解决各种实际问题,以及如何使用一些流行的Python库。 本书共15章,每章讲解一个有趣的Python项目,这些项目可以分成5个部分:*部分是热身,包括科赫雪花、繁花曲线;*部分是模拟生命,包括康威生命游戏、使用Karplus-Strong算法生成泛音、群体行为模拟;第三部分是好玩的图形,包括文本图形、照片马赛克、裸眼立体画;第四部分是走进三维,包括理解OpenGL、圆环面上的康威生命游戏、体渲染;第五部分是玩转硬件,包括在树莓派Pico上实现Karplus-Strong算法、树莓派激光音乐秀、物联网花园、树莓派音频机器学习。此外,本书还通过附录介绍如何安装Python和设置树莓派。 本书适合已经了解了基本的Python语法和编程知识、想要尝试和探索通过Python编程解决实际问题的读者阅读,也可作为Python初学者练习项目开发的参考用书。
作者简介:
马赫什·文基塔查拉姆(Mahesh Venkitachalam)是一名计算机图形学和嵌入式系统顾问,拥有二十余年从业经验。他是Electronut Labs的*,该公司以开发充满创意的开源硬件著称。他经常撰写有关编程和电子技术的博客。
目录:
第 一部分 热身
第 1 章 科赫雪花 2
1.1 工作原理 2
1.1.1 使用递归 2
1.1.2 构建科赫雪花 3
1.1.3 使用海龟绘图法绘图 6
1.2 需求 8
1.3 代码 8
1.3.1 计算点的坐标 8
1.3.2 递归 8
1.3.3 绘制片段 9
1.3.4 编写函数 main() 9
1.4 运行程序 10
1.5 小结 10
1.6 实验 11
1.7 完整代码 11
第 2 章 繁花曲线 13
2.1 工作原理 13
2.1.1 理解参数方程 13
2.1.2 使用海龟绘图法绘制曲线 15
2.2 需求 16
2.3 代码 17
2.3.1 绘制繁花曲线 17
2.3.2 协调动画 20
2.3.3 保存曲线 22
2.3.4 分析命令行参数及初始化 23
2.4 运行程序 24
2.5 小结 25
2.6 实验 26
2.7 完整代码 26
*部分 模拟生命
第 3 章 康威生命游戏 32
3.1 工作原理 32
3.2 需求 34
3.3 代码 34
3.3.1 显示网格 34
3.3.2 设置初始状态 35
3.3.3 实现边界条件 36
3.3.4 实现规则 37
3.3.5 向程序传递命令行参数 37
3.3.6 初始化 38
3.4 运行程序 38
3.5 小结 40
3.6 实验 40
3.7 完整代码 40
第 4 章 使用 Karplus-Strong 算法生成泛音 43
4.1 工作原理 442
4.1.1 模拟 45
4.1.2 WAV 文件格式 46
4.1.3 小调五声音阶 47
4.2 需求 48
4.3 代码 48
4.3.1 使用 deque 实现环形缓冲区 48
4.3.2 实现 Karplus-Strong算法 48
4.3.3 写入 WAV 文件 50
4.3.4 使用 PyAudio 播放 WAV文件 50
4.3.5 创建音符及分析参数 52
4.4 运行弹拨乐器模拟程序 53
4.5 小结 54
4.6 实验 54
4.7 完整代码 54
第 5 章 群体行为模拟 58
5.1 工作原理 58
5.2 需求 59
5.3 代码 59
5.3.1 初始化模拟 59
5.3.2 设置边界条件 60
5.3.3 绘制个体 62
5.3.4 应用群体行为规则 63
5.3.5 影响模拟 67
5.3.6 分步模拟 68
5.3.7 分析参数及实例化Boids 类 69
5.4 运行群体行为模拟程序 69
5.5 小结 69
5.6 实验 70
5.7 完整代码 70
第三部分 好玩的图形
第 6 章 文本图形 74
6.1 工作原理 75
6.2 需求 76
6.3 代码 76
6.3.1 定义灰度标尺和网格 76
6.3.2 计算平均亮度 77
6.3.3 根据图像生成 ASCII 内容 77
6.3.4 定义命令行参数 78
6.3.5 将表示文本图形的字符串写入文本文件 79
6.4 运行文本图形生成程序 79
6.5 小结 80
6.6 实验 80
6.7 完整代码 80
第 7 章 照片马赛克 83
7.1 工作原理 83
7.1.1 分割目标图像 84
7.1.2 计算平均 RGB 值 84
7.1.3 匹配图像 85
7.2 需求 87
7.3 代码 87
7.3.1 读入输入图像 87
7.3.2 计算图像的平均 RGB 值 88
7.3.3 将目标图像分割为网格 88
7.3.4 查找与分片*匹配的图像 89
7.3.5 创建图像网格 90
7.3.6 创建照片马赛克 91
7.3.7 编写函数 main() 93
7.4 运行照片马赛克生成程序 94
7.5 小结 95
7.6 实验 95
7.7 完整代码 95
第 8 章 裸眼立体画 101
8.1 工作原理 102
8.1.1 感知裸眼立体画中的深度 102
8.1.2 使用深度图 103
8.1.3 平移像素 105
8.2 需求 106
8.3 代码 106
8.3.1 创建由随机圆组成的分片 106
8.3.2 重复分片 107
8.3.3 创建裸眼立体画 108
8.3.4 提供命令行参数 109
8.4 运行裸眼立体画生成程序 109
8.5 小结 110
8.6 实验 111
8.7 完整代码 111
第四部分 走进三维
第 9 章 理解 OpenGL 116
9.1 OpenGL 的工作原理 117
9.1.1 图元 117
9.1.2 三维变换 118
9.1.3 着色器 120
9.1.4 顶点缓存 121
9.1.5 纹理映射 121
9.1.6 OpenGL 上下文 122
9.2 需求 122
9.3 代码 122
9.3.1 RenderWindow 类 123
9.3.2 Scene 类 125
9.3.3 辅助函数 129
9.4 运行 OpenGL 应用程序 130
9.5 小结 130
9.6 实验 130
9.7 完整代码 131
第 10 章 圆环面上的康威生命游戏 136
10.1 工作原理 136
10.1.1 计算顶点 136
10.1.2 计算光照法线 138
10.1.3 渲染 139
10.1.4 给三角形带着色 140
10.1.5 控制相机 140
10.1.6 将网格映射到圆环面 141
10.2 需求 142
10.3 代码 142
10.3.1 渲染圆环面 142
10.3.2 实现康威生命游戏模拟 148
10.3.3 创建相机 149
10.3.4 整合代码 151
10.4 运行三维版康威生命游戏模拟 153
10.5 小结 154
10.6 实验 155
10.7 完整的圆环面渲染代码 155
10.8 完整的康威生命游戏模拟代码 160
10.9 完整的相机创建代码 161
10.10 RenderWindow 类的完整代码 162
第 11 章 体渲染 166
11.1 工作原理 166
11.1.1 数据格式 167
11.1.2 生成光线 167
11.1.3 OpenGL 窗口 169
11.2 需求 169
11.3 代码 169
11.3.1 生成三维纹理 170
11.3.2 生成光线 171
11.3.3 实现体光线投射算法 176
11.3.4 显示二维切片 180
11.3.5 整合代码 183
11.4 运行程序 185
11.5 小结 185
11.6 实验 185
11.7 完整的三维纹理生成代码 186
11.8 完整的光线生成代码 187
11.9 完整的体光线投射算法代码 192
11.10 显示二维切片的完整代码 195
11.11 完整的主文件代码 198
第五部分 玩转硬件
第 12 章 在树莓派 Pico 上实现Karplus-Strong 算法 202
12.1 工作原理 203
12.1.1 输入和输出 203
12.1.2 I2S 协议 204
12.2 需求 205
12.2.1 组装硬件 205
12.2.2 安装 MicroPython 207
12.3 代码 207
12.3.1 设置 207
12.3.2 生成音符 208
12.3.3 播放音频 210
12.3.4 编写函数 main() 211
12.4 运行程序 212
12.5 小结 213
12.6 实验 213
12.7 完整代码 214
第 13 章 树莓派激光音乐秀 218
13.1 工作原理 218
13.1.1 使用激光生成图案 219
13.1.2 使用快速傅里叶变换分析音频 222
13.2 需求 224
13.2.1 在树莓派上安装系统和软件 224
13.2.2 搭建激光秀装置 225
13.2.3 连接硬件 226
13.3 代码 228
13.3.1 设置 228
13.3.2 控制硬件 229
13.3.3 处理音频 230
13.3.4 测试电机 233
13.3.5 整合代码 234
13.4 运行激光音乐秀程序 235
13.5 小结 236
13.6 实验 236
13.7 完整代码 237
第 14 章 物联网花园 242
14.1 工作原理 242
14.1.1 低功耗蓝牙 243
14.1.2 Web 框架 Bottle 245
14.1.3 SQLite 数据库 246
14.2 需求 247
14.2.1 在树莓派上安装系统和软件 247
14.2.2 安装 CircuitPython 247
14.2.3 设置 IFTTT 服务 248
14.3 代码 249
14.3.1 CircuitPython 代码 249
14.3.2 BLE 扫描器代码 252
14.3.3 Web 服务器代码 258
14.3.4 主程序文件 264
14.4 运行物联网花园程序 266
14.5 小结 267
14.6 实验 267
14.7 完整的 CircuitPython 代码 268
14.8 完整的 BLE 扫描器代码 270
14.9 完整的 Python Web 服务器代码 273
14.10 完整的主程序代码 275
第 15 章 树莓派音频机器学习 277
15.1 机器学习概述 277
15.2 工作原理 278
15.2.1 声谱图 280
15.2.2 在树莓派上推断 281
15.3 需求 283
15.4 代码 284
15.4.1 在 Colab 中训练模型 284
15.4.2 在树莓派上使用模型 293
15.5 运行语音识别系统 301
15.6 小结 302
15.7 实验 303
15.8 完整代码 303
附录 A 安装 Python 309
A.1 获取本书项目的源代码 309
A.2 安装 Python 和 Python 模块 309
A.2.1 Windows 309
A.2.2 macOS 310
A.2.3 Linux 311
附录 B 设置树莓派 312
B.1 安装操作系统 312
B.2 测试连接 314
B.3 使用 SSH 登录树莓派 315
B.4 安装 Python 模块 316
B.5 远程使用 Visual Studio Code 316
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...