本书以培养学生利用DSP硬件平台实现数字图像处理算法的编程技能为核心,采用DSP原理与图像处理算法相融合的方式,详细地介绍了DSP数字图像处理基础知识、TMS320C6000硬件结构、存储结构、视频接口、中断、EDMA控制器、CCS软件、图像处理算法原理、编程步骤与DSP程序等内容。
本书的前7章讲解DSP硬件结构与编程方法,后面13章详细地剖析了13个DSP图像处理试验,每个试验来源于数字图像处理的经典算法,其中主要包括图像灰度化、图像的噪声产生与平滑、图像直方图、图像增强、边缘检测、阈值二值化、图像取反与DCT变换等。每个试验分别组织成完整的一章,由算法引入、基本原理、算法步骤、流程图、DSP代码分析与仿真试验等主体部分组成。通过理论学习和试验,学生不仅能够掌握DSP和图像处理的理论知识,而且能够掌握DSP的编程方法,达到理论与实践相结合的教学目的,从而培养学生的动手能力,激发学生的学习兴趣。
本书内容丰富新颖,所举实例具有代表性与典型性,对图像处理原理及DSP编程步骤分析非常透彻,具有较强的实用性与指导性;本书可作为各类工科院校电子信息、自动化等专业的教材,也可供从事DSP应用设计开发的工程技术人员参考。
第 1章 DSP数字图像处理基础知识 1
1.1 数字图像处理的起源及发展 1
1.2 数字图像处理的基本概念 2
1.2.1 图像的概念 2
1.2.2 图像的类型 2
1.2.3 数字图像的主要参数 4
1.2.4 图像处理与图像表示 5
1.2.5 BMP位图的颜色数目 6
1.2.6 颜色模型 6
1.3 数字图像处理的应用领域 10
1.4 数字图像处理的优势 11
1.5 数字图像处理系统的基本模块 12
1.6 数字图像处理的研究内容与发展方向 13
1.7 基于DSP的图像处理系统 14
1.7.1 DSP芯片的特点 15
1.7.2 DSP芯片选择 16
1.7.3 DSP图像处理系统的优势 17
1.7.4 DSP的发展趋势与前景 17
习题 18
第 2章 TMS320C6000 DSP芯片概述 19
2.1 DSP芯片概述 19
2.1.1 主要类型 19
2.1.2 TI公司的DSP芯片 20
2.1.3 TI公司DSP芯片的命名规则 22
2.2 TMS320DM642 DSP芯片 25
2.2.1 DM642概述 25
2.2.2 DM642的器件特性 26
2.2.3 TMS320DM642原理框图 29
2.2.4 TMS320DM642的应用领域 30
习题 30
第3章 GPIO及视频接口 31
3.1 概述 31
3.2 GPIO寄存器 32
3.2.1 GPIO使能寄存器(GPEN) 32
3.2.2 GPIO方向寄存器(GPDIR) 33
3.2.3 GPIO数值寄存器(GPVAL) 33
3.2.4 GPIO Delta寄存器(GPDH,GPDL) 33
3.2.5 GPIO屏蔽寄存器(GPHM,GPLM) 34
3.2.6 GPIO全局控制寄存器(GPGC) 35
3.3 TMS320DM642视频口 36
习题 38
第4章 CPU及存储结构 39
4.1 CPU结构 39
4.1.1 中央处理单元 39
4.1.2 CPU数据总线与控制 40
4.2 存储器空间分配 42
习题 45
第5章 中断及定时器 46
5.1 中断系统 46
5.1.1 复位 47
5.1.2 不可屏蔽中断(NMI) 47
5.1.3 可屏蔽中断(INT4~INT15) 48
5.1.4 中断优先级 48
5.1.5 中断控制寄存器 48
5.1.6 中断服务表(IST) 49
5.1.7 中断服务表指针寄存器(ISTP) 49
5.2 定时器 50
5.2.1 概述 50
5.2.2 定时器寄存器 51
5.2.3 定时器控制 52
习题 54
第6章 串口及EDMA控制器 55
6.1 串口概述 55
6.2 接口信号和控制寄存器 56
6.2.1 串口配置寄存器 58
6.2.2 接收和发送控制寄存器 61
6.2.3 采样率发生寄存器 63
6.3 EDMA控制器 64
6.3.1 EDMA控制器概述 64
6.3.2 事件处理和EDMA控制寄存器 66
6.3.3 传输参数与参数RAM 67
6.3.4 EDMA的传输操作 71
6.3.5 EDMA传输的终止 75
习题 76
第7章 CCS软件及C语言编程 77
7.1 CCS的简介 77
7.2 代码生成工具 78
7.3 CCS集成开发环境 79
7.3.1 编辑源程序 79
7.3.2 创建应用程序 80
7.3.3 调试应用程序 80
7.4 硬件仿真和实时数据交换 80
7.5 CCS文件和变量 81
7.5.1 安装文件夹 81
7.5.2 扩展文件夹 82
7.6 CCS的安装与配置 83
7.6.1 安装CCS软件 83
7.6.2 设置CCS 84
7.6.3 启动与关闭CCS 87
7.7 CCS入门实验 87
7.7.1 建立DSP工程 87
7.7.2 编辑与修改工程文件 88
7.7.3 基本调试功能 91
7.7.4 使用观察窗口 92
7.8 TMS320C64x C语言设计 94
7.8.1 TMS320DM642支持的C语言的数据类型 94
7.8.2 C语言的常用语句 96
7.8.3 函数的定义 98
习题 99
第8章 彩色图像转化成灰度图像 100
8.1 RGB彩色图像转化成灰度图像 100
8.1.1 基本原理 100
8.1.2 算法步骤与流程图 103
8.1.3 C语言代码与分析 103
8.2 YUV彩色图像转化成灰度图像 104
8.2.1 基本原理 104
8.2.2 算法步骤 106
8.2.3 C语言代码与分析 106
8.3 试验结果与分析 106
8.3.1 试验目的 106
8.3.2 试验准备 106
8.3.3 试验步骤 107
8.3.4 试验结果与比较 107
8.4 分析与总结 109
习题 109
第9章 噪声图像产生及处理 110
9.1 引言 110
9.2 图像去噪 113
9.3 椒盐噪声 118
9.3.1 基本原理 118
9.3.2 算法步骤与流程图 119
9.3.3 C语言代码与分析 119
9.4 高斯噪声 120
9.4.1 基本原理 120
9.4.2 算法步骤与流程图 122
9.4.3 C语言代码与分析 122
9.5 试验结果与分析 123
9.5.1 试验目的 123
9.5.2 试验设备 123
9.5.3 试验步骤 124
9.5.4 试验结果与比较 124
9.6 分析与总结 126
习题 127
第 10章 图像平滑 128
10.1 引言 128
10.2 邻域平均法图像平滑 129
10.2.1 基本原理 129
10.2.2 算法步骤与流程图 130
10.2.3 C语言代码与分析 130
10.3 加权平均法图像平滑 132
10.3.1 基本原理 132
10.3.2 算法步骤与流程图 134
10.3.3 C语言代码与分析 135
10.4 试验结果与分析 136
10.4.1 试验目的 136
10.4.2 试验设备 136
10.4.3 试验步骤 136
10.4.4 试验结果与比较 136
10.5 分析与总结 138
习题 139
第 11章 中值滤波 140
11.1 引言 140
11.2 中值滤波的基本原理 140
11.2.1 背景知识 140
11.2.2 中值滤波的基本原理 141
11.3 算法步骤与流程图 143
11.4 C语言代码与分析 143
11.5 试验结果 145
11.5.1 试验目的 145
11.5.2 试验设备 145
11.5.3 试验步骤 145
11.5.4 试验结果与比较 146
11.6 分析与总结 148
习题 148
第 12章 图像锐化 149
12.1 引言 149
12.2 梯度锐化 149
12.2.1 基本原理 149
12.2.2 算法步骤与流程图 152
12.2.3 C语言代码与分析 152
12.3 拉普拉斯锐化 153
12.3.1 基本原理 153
12.3.2 算法步骤与流程图 155
12.3.3 C语言代码与分析 156
12.4 试验结果与分析 157
12.4.1 试验目的 157
12.4.2 试验设备 157
12.4.3 试验步骤 158
12.4.4 试验结果与比较 158
12.5 分析与总结 160
习题 160
第 13章 图像灰度线性变换 161
13.1 引言 161
13.2 图像灰度线性变换的基本原理 162
13.2.1 灰度变换 162
13.2.2 灰度线性变换 162
13.2.3 分段线性灰度变换 163
13.3 算法步骤与流程图 165
13.4 C语言代码与分析 165
13.5 试验结果与分析 166
13.5.1 试验目的 166
13.5.2 试验设备 166
13.5.3 试验步骤 166
13.5.4 试验结果与比较 167
13.6 分析与总结 169
习题 169
第 14章 图像灰度非线性变换 170
14.1 引言 170
14.2 对数非线性变换 171
14.2.1 基本原理 171
14.2.2 算法步骤与流程图 172
14.2.3 C语言DSP子程序与分析 172
14.3 指数非线性变换 174
14.3.1 基本原理 174
14.3.2 算法步骤与流程图 174
14.3.3 C语言DSP子程序与分析 175
14.4 试验结果与分析 177
14.4.1 试验目的 177
14.4.2 试验设备 177
14.4.3 试验步骤 177
14.4.4 试验结果与比较 177
14.5 分析与总结 179
习题 180
第 15章 直方图统计 181
15.1 基本原理 181
15.1.1 数字图像的表示 181
15.1.2 数字图像直方图的统计原理 182
15.1.3 图像灰度直方图对比 183
15.1.4 灰度直方图的应用 183
15.2 算法步骤与流程图 185
15.3 C语言代码与分析 185
15.4 试验结果与分析 186
15.4.1 试验目的 186
15.4.2 试验设备 186
15.4.3 试验步骤 186
15.4.4 试验结果与比较 187
15.5 分析与总结 188
习题 189
第 16章 直方图均衡化 190
16.1 基本原理 190
16.2 算法步骤与流程图 191
16.3 C语言代码与分析 193
16.4 试验结果 194
16.4.1 试验目的 194
16.4.2 试验设备 194
16.4.3 试验步骤 194
16.4.4 试验结果与比较 194
16.5 分析与总结 197
习题 197
第 17章 边缘检测 198
17.1 边缘检测 198
17.1.1 图像边缘的概念 199
17.1.2 边缘检测的原理 201
17.1.3 边缘检测的步骤 202
17.1.4 边缘检测的算法 202
17.2 Sobel算子 205
17.2.1 基本原理 205
17.2.2 算法步骤与流程图 207
17.2.3 C语言代码与分析 207
17.3 试验结果与分析 210
17.3.1 试验目的 210
17.3.2 试验设备 210
17.3.3 试验步骤 210
17.3.4 试验结果与比较 211
17.4 分析与总结 213
习题 214
第 18章 图像取反 216
18.1 图像取反基本原理 216
18.2 算法步骤与流程图 217
18.3 C语言DSP子程序与分析 218
18.4 试验结果与分析 219
18.4.1 试验目的 219
18.4.2 试验设备 219
18.4.3 试验步骤 219
18.4.4 试验结果与比较 220
18.5 分析与总结 222
习题 222
第 19章 图像阈值二值化处理 223
19.1 引言 223
19.2 阈值二值化基本原理 224
19.2.1 双峰法 224
19.2.2 P参数法 225
19.2.3 大津法 225
19.2.4 最大熵阈值法 226
19.2.5 迭代法(最佳阈值法) 227
19.3 算法步骤与流程图 227
19.4 C语言DSP子程序与分析 228
19.5 试验结果与分析 230
19.5.1 试验目的 230
19.5.2 试验设备 230
19.5.3 试验步骤 230
19.5.4 试验结果与比较 231
19.6 分析与总结 233
习题 234
第 20章 二维DCT 235
20.1 二维DFT概念及发展 235
20.1.1 一维傅里叶变换及其反变换 235
20.1.2 二维DFT及其反变换 237
20.1.3 快速傅里叶变换及反变换 238
20.2 二维DCT变换 238
20.2.1 从Fourier级数到余弦变换 238
20.2.2 余弦级数 239
20.2.3 连续余弦变换 239
20.2.4 一维离散余弦变换 239
20.2.5 二维离散余弦变换 240
20.2.6 二维DCT的应用 241
20.3 算法步骤与流程图 241
20.4 C语言代码与分析 244
20.5 试验结果与分析 250
20.5.1 试验目的 250
20.5.2 试验设备 250
20.5.3 试验步骤 250
20.5.4 试验结果与比较 250
20.6 分析与总结 253
习题 253
参考文献 254