第1篇 句柄图形对象 1
第1章 句柄图形对象简介 2
1.1 面向对象的思维方式 2
1.2 句柄图形对象的组织 2
1.2.1 句柄图形对象的层次结构 2
1.2.2 句柄图形对象的类型 3
1.3 图形窗口——Figure对象 3
1.3.1 用于绘图的图形窗口 4
1.3.2 Figure对象用作GUI 4
1.3.3 Root对象——Figure对象的父对象 4
1.4 对象的属性 . 5
1.4.1 设置和查询属性值 5
1.4.2 默认属性 7
1.4.3 示例——设置默认线型 8
1.4.4 与窗口锚定有关的属性 9
1.4.5 确定图形窗口的位置和大小 10
第2章 核心图形对象和图形定制 12
2.1 核心图形对象简介 12
2.1.1 核心图形对象的组织结构 12
2.1.2 核心图形对象的简单描述 12
2.2 创建核心图形对象 14
2.2.1 创建核心图形对象的函数 15
2.2.2 创建直线段、多义线和曲线——line函数 16
2.2.3 创建矩形、圆角矩形、椭圆、圆及对应的区域图形——rectangle函数 17
2.2.4 创建多边形——patch函数 18
2.2.5 创建文本——text函数 19
2.2.6 指定父对象 20
2.2.7 高级函数和低级函数 20
2.3.1 标签和外观属性 21
2.2.8 简化的调用语法 21
2.3 坐标系属性 21
2.3.2 坐标系的位置和大小 22
2.3.3 在同一图形窗口中显示多个坐标系 26
2.3.4 单个坐标轴的控制 27
2.3.5 使用多个x轴和y轴 30
2.4 定制图形 30
2.4.1 创建圆弧 30
2.4.2 创建面积图 32
第3章 绘图对象 33
3.1 绘图对象简介 33
3.2 创建绘图对象 33
3.2.1 创建绘图对象的函数 33
3.2.2 实例分析 34
3.3.2 连接图形和变量 35
3.3 其他技巧 35
3.3.1 编程识别绘图对象 35
3.3.3 保存与MATLAB以前版本相兼容的图形 36
第4章 标注对象 37
4.1 标注对象简介 37
4.1.1 Arrow对象类型 37
4.1.2 Doublearrow对象类型 38
4.1.3 Ellipse对象类型 38
4.1.4 Line对象类型 38
4.1.5 Rectangle对象类型 38
4.1.6 Textarrow对象类型 39
4.1.7 Textbox对象类型 40
4.2 创建标注对象 41
5.1.2 组对象的属性 43
5.1.1 两个组对象 43
第5章 组对象 43
5.1 组对象简介 43
5.2 创建组对象 44
5.2.1 创建Hggroup对象 45
5.2.2 创建Hgtransform对象 45
第6章 GUI对象 51
6.1 创建基本控件 51
6.2 创建菜单 52
6.3 弹出式菜单 52
6.4 按钮组控件 53
6.5 创建面板控件 53
6.6 工具栏 56
7.1.2 当前图形、坐标轴和对象 58
7.1.1 获取对象句柄 58
7.1 句柄操作 58
第7章 句柄图形对象的操作和控制 58
7.1.3 用属性值查找对象——findobj函数 59
7.1.4 复制对象 61
7.1.5 删除对象 62
7.2 句柄图形对象的回调 63
7.2.1 图形对象的回调属性 63
7.2.2 函数句柄回调 63
7.3 句柄图形的视图控制 64
7.3.1 指定图形输出的目标区域 64
7.3.2 设置图形窗口和坐标系 64
7.3.3 测试保持(Hold)绘图状态 66
7.3.4 防止Figure和Axes对象成为绘图目标区域 67
7.3.5 关闭请求函数 68
第2篇 高级绘图技术 69
8.1 网格图、刻面图和曲面图的着色 70
8.1.1 主要的着色技术 70
8.1.2 颜色查找表 70
第8章 图形着色 70
8.1.3 索引着色表面——直接映射和比例化映射 74
8.1.4 示例——表面曲率向颜色映射 74
8.1.5 真彩色表面 75
8.1.6 纹理映射 76
8.2 多边形模型的着色 77
8.2.1 面片只有1个小面的情况 77
8.2.2 面片有多个小面的情况 78
8.2.3 控制面片着色的属性 80
8.2.4 面片边的着色 80
9.2 光照命令 81
第9章 光照与材质 81
9.1 Light对象 81
9.3 给场景添加光照 83
9.4 影响光照效果的属性 84
9.5 光照算法 84
9.6 图形对象的反射特性——材质 85
9.6.1 镜面反射和漫反射 85
9.6.2 环境光 85
9.6.3 镜面反射指数 86
9.6.4 镜面反射光的颜色 86
9.6.5 背面光照 86
9.6.6 material函数 88
9.6.7 一个例子 88
10.1.1 alpha值 90
10.1.2 与透明性相关的属性和函数 90
第10章 透明性 90
10.1 使对象透明 90
10.2 指定一个单独的透明度值 93
10.3 将数据映射给透明度 94
10.3.1 alpha数据数组的大小 94
10.3.2 将alpha数据映射到alpha查找表 94
10.3.3 示例——将数据映射到颜色或透明度 95
10.4 选择一个alpha查找表 95
第11章 交互操作 98
11.1 橡皮线技术 98
11.1.1 鼠标操作 98
11.1.2 绘制橡皮线 99
11.1.3 绘制橡皮矩形 101
11.1.4 移动矩形 102
11.2.1 用方位角和仰角设置视点 103
11.2 视点和相机 103
11.2.2 一个重要的交互工具——相机 104
11.3 用相机工具条进行场景空间变换 105
11.3.1 相机工具条 105
11.3.2 交换主轴 105
11.3.3 盘旋 106
11.3.4 平移 107
11.3.5 缩放 108
11.3.6 滚动 109
11.3.7 漫游 110
11.4 用相机相关函数实现场景空间变换 110
11.4.1 低级相机属性 110
11.4.2 相机相关函数 111
11.4.3 示例——平移图像 119
11.5.1 正交投影和透视投影 120
11.5 投影 120
11.5.2 投影类型和相机位置 121
11.5.3 坐标轴方向上的显示比率 122
11.6 子体积 124
11.7 体包围盒 125
第12章 科学计算可视化 126
12.1 沿场景移动相机 126
12.2 飞越快照显示 128
12.3 用剖面面板察看体 129
12.4 等值面和等帽盖 132
12.4.1 等值面 132
12.4.2 等帽盖 133
12.5 指定流图中流线的起点 134
12.5.1 确定起点 135
12.5.2 指定起点坐标数组 135
12.6 矢量数据的流线图 136
12.7 用流带显示卷曲 138
12.8 用流管显示差异 140
12.9 创建流沙动画 142
12.10 用流锥图表示矢量场 144
第13章 LOD编程 148
13.1 LOD简介 148
13.2 减面 148
13.3 减元素 149
13.4 缩面 150
13.5 实现LOD 151
第3篇 图像处理工具箱 153
第14章 图像处理工具箱简介 154
14.1 图像类型 154
14.1.1 索引图像 154
14.1.3 二值图像 155
14.1.2 灰度图像 155
14.1.4 RGB图像 156
14.1.5 图像类型转换 157
14.2 图像数据 158
14.2.1 图像的数据保存类型 158
14.2.2 读写图像数据 159
14.2.3 读写DICOM文件 162
第15章 显示图像 165
15.1 用图像查看器显示图像 165
15.2 用imshow函数显示图像 167
15.2.1 打开图像 167
15.2.2 指定图像的初始大小 167
15.2.3 查看多幅图像 168
15.3 显示不同类型的图像 169
15.3.1 显示索引图像 169
15.2.4 理解句柄图形对象的属性设置 169
15.3.2 显示灰度图像 170
15.3.3 显示二值图像 171
15.3.4 显示RGB图像 172
15.4 特殊显示技巧 172
15.4.1 添加颜色条 173
15.4.2 一次显示多帧图像的所有帧 173
15.4.3 将多帧图像转换为动画 174
15.4.4 纹理映射 174
15.5 打印图像 175
15.6 设置图像显示的参数选项 175
第16章 颜色和坐标 176
16.1 颜色 176
16.1.1 屏幕位深 176
16.1.2 减少图像中的颜色种数 177
16.2.1 像素坐标 180
16.2 坐标系统 180
16.2.2 空间坐标 181
第17章 图像合成 183
17.1 代数运算 183
17.1.1 图像加运算 183
17.1.2 图像减运算 184
17.1.3 图像乘运算 185
17.1.4 图像除运算 186
17.1.5 嵌套调用图像运算函数 186
17.2 逻辑运算 186
第18章 空间变换 188
18.1 插值 188
18.2.1 指定输出图像的大小 189
18.2.2 指定插值方法 189
18.2 图像缩放 189
18.2.3 用滤波器防止走样 190
18.3 旋转图像 190
18.3.1 指定插值方法 190
18.3.2 指定输出图像的大小 191
18.4 图像裁剪 191
18.5 进行一般的空间变换 191
第19章 邻域和块处理 193
19.1 块处理操作 193
19.2 滑动邻域操作 193
19.3 分离块操作 195
19.4 列处理 196
19.4.1 滑动邻域操作 197
19.4.2 分离块操作 197
20.1.2 其他选择方法 199
20.1.1 选择多边形 199
第20章 基于区域的处理 199
20.1 指定目标区域 199
20.2 对区域进行滤波 200
20.3 填充区域 201
第21章 变换域处理 202
21.1 傅里叶变换 202
21.1.1 傅里叶变换的定义 202
21.1.2 离散傅里叶变换 203
21.1.3 傅里叶变换的应用 205
21.2 离散余弦变换 207
21.2.1 DCT变换矩阵 208
21.2.2 DCT和图像压缩 208
21.3 Radon变换 209
21.3.1 概念 209
21.3.2 使用Radon变换来发现线形影像 211
21.3.3 逆Radon变换 212
21.3.4 利用投影数据重建图像 213
21.4 扇形光束投影数据 214
21.4.1 计算扇形光束投影数据 214
21.4.2 用扇形光束投影数据重建图像 215
第22章 数学形态学 218
22.1 膨胀和腐蚀 218
22.1.1 理解膨胀和腐蚀 218
22.1.2 结构元素 219
22.1.3 处理图像边缘的像素 221
22.1.4 膨胀图像 222
22.1.5 腐蚀图像 223
22.1.6 组合膨胀和腐蚀 224
22.1.7 开运算 225
22.1.9 骨架提取 226
22.1.8 闭运算 226
22.1.10 边缘检测 227
22.1.11 击中击不中 228
22.1.12 top-hat和bottom-hat滤波 228
22.2 数学形态学重建 229
22.2.1 Marker图像和Mask图像 229
22.2.2 像素连通性 231
22.2.3 填充操作 232
22.2.4 寻找峰和谷 234
22.3 距离变换 238
22.3.1 bwdist函数 238
22.3.2 图像分割 240
22.4 对象、区域和特征度量 243
22.4.1 连接组分的标注 243
22.4.3 计算二值图像中前景的面积 244
22.4.2 查看标注矩阵 244
22.4.4 计算二值图像中的欧拉数 245
22.5 查找表 245
第23章 图像分析 247
23.1 像素值和统计量 247
23.1.1 像素选择 247
23.1.2 灰度轮廓 248
23.1.3 图形等值线 249
23.1.4 图像直方图 250
23.1.5 综述统计量 251
23.1.6 区域属性度量 251
23.2 分析图像 251
23.2.1 边缘检测 251
23.2.2 边界跟踪 252
23.2.3 Hough变换 254
23.2.4 四叉树分解 256
23.3 纹理分析 256
23.3.1 纹理滤波函数 257
23.3.2 灰度级别共生矩阵(GLCM) 258
第24章 图像增强 262
24.1 灰度调整 262
24.1.1 将灰度值调整到一个指定的范围 262
24.1.2 直方均等化 265
24.1.3 有限对比适应性直方均等化 266
24.1.4 去相关拉伸 266
24.2 去噪 268
24.2.1 线性滤波 268
24.2.2 中值滤波 274
24.2.3 自适应滤波 275
第25章 图像配准 276
25.1 配准图像的一般过程 276
25.1.1 点映射 276
25.1.2 示例——将数字航空照片配准成数字正色投影照片 276
25.2 支持的变换类型 278
25.3 选择控制点 279
第26章 图像恢复 285
26.1 理解图像恢复 285
26.1.1 影响图像质量的原因 285
26.1.2 图像恢复模型 285
26.2 用函数恢复图像 286
26.2.1 用Wiener滤波器进行恢复 286
26.2.2 用正则滤波器进行恢复 287
26.2.3 用Lucy-Richardson算法进行恢复 288
26.2.4 用盲去卷积算法进行恢复 289
26.3 避免在恢复后的图像中出现跳跃效应 292
第4篇 虚拟现实工具箱 293
第27章 虚拟现实工具箱简介 294
27.1 虚拟现实工具箱的特点 294
27.2 VRML支持 294
27.3 MATLAB接口 295
27.4 Simulink接口 295
27.5 VRML查看器 295
27.6 VRML编辑器 295
第28章 VRML与V-Realm编辑器 296
28.1 VRML语言 296
28.1.1 VRML的历史 296
28.1.2 VRML坐标系统 296
28.1.3 VRML数据类型 297
28.1.5 VRML文件格式 299
28.1.4 VRML编辑工具 299
28.2 V-Realm编辑器 300
28.2.1 VRML编辑工具 300
28.2.2 V-Realm编辑器的安装 301
28.2.3 设置虚拟场景的默认编辑器 301
28.2.4 V-Realm编辑器的界面环境 303
28.2.5 用V-Realm编辑器创建虚拟场景 304
28.2.6 用V-Realm编辑器编辑虚拟场景 306
第29章 MATLAB与虚拟世界进行交互 308
29.1 显示虚拟世界 308
29.1.1 VRML查看器 308
29.1.2 网络浏览器 308
29.2 与虚拟世界交互 310
29.2.1 创建虚拟现实工具箱对象 310
29.2.2 使用MATLAB接口 311
30.1 vrworld对象 315
30.1.1 vrworld对象的属性 315
30.1.2 vrworld对象的方法 315
第30章 虚拟现实工具箱中的对象 315
30.2 vrnode对象 316
30.2.1 vmode对象的属性 316
30.2.2 vmode对象的方法 316
30.3 vrfigure对象 316
30.3.1 vrfiigure对象的属性 316
30.3.2 vrfigure对象的方法 317
第31章 虚拟现实工具箱中的函数 318
31.1 vrclear函数 318
31.2 vrclose函数 318
31.4 vrgetpref函数 319
31.3 vrdrawnow函数 319
31.5 vrinstall函数 320
31.6 vrlib函数 321
31.7 vrsetpref函数 321
31.8 vrview函数 322
31.9 vrwho函数 322
31.10 vrwhos函数 322
第5篇 地图制作工具箱 323
第32章 地图制作工具箱简介 324
32.1 创建底图 324
32.2 在底图上显示数据 328
32.3 导入高分辨率地图集数据 329
32.4 地理计算 331
33.1.1 矢量数据 332
33.1 地图数据 332
第33章 地理空间数据 332
33.1.2 栅格数据 333
33.2 操作矢量数据 335
33.2.1 重新组装矢量对象 336
33.2.2 匹配直线段 337
33.2.3 地理插值 337
33.2.4 矢量相交 338
33.2.5 多边形的面积 339
33.2.6 通过布尔操作叠加多边形 339
33.2.7 生成缓冲区 341
33.3 操作栅格数据 342
33.3.1 矢量数据和栅格数据的转换 342
33.3.2 用GUI光栅化多边形 343
33.3.3 路径上的数据网格值 344
34.1.1 地球体和椭球体 346
34.1.2 椭球体矢量 346
第34章 地理空间几何 346
34.1 球体、椭球体和地球体 346
34.2 纬度和经度 348
34.3 大圆、恒向线和小圆 348
34.3.1 大圆 348
34.3.2 恒向线 349
34.3.3 小圆 349
34.4 球体或椭球体上的角度和方向 349
34.4.1 定位——前向问题 349
34.4.2 计算跟踪路径——大圆和恒向线 350
34.4.3 距离、方位角和反方位角(反向问题) 350
34.4.4 计算方位角和仰角 351
34.5 历年的行星数据 352
34.6 计算球面四边形的面积 353
第35章 地图投影 354
35.1 地图投影的定量属性 354
35.2 几何表面 355
35.2.1 柱面投影 355
35.2.2 锥面投影 355
35.2.3 方位投影 355
35.3 投影方位 356
35.3.1 origin矢量 356
35.3.2 坐标转换 358
35.4 投影计算 360
35.5 使用球面投影 362
35.6 使用UTM投影 363
35.7 投影类型综述 366
36.1.1 用worldmap和usamap函数显示简单的地图 368
36.1 地图制作简介 368
第36章 创建和查看地图 368
36.1.2 坐标 369
36.1.3 在投影类型之间转换 371
36.2 用地图制作工具箱函数显示矢量数据 372
36.2.1 把矢量地图显示成直线对象 372
36.2.2 把矢量地图显示成面片 373
第37章 制作三维地图 376
37.1 地形数据源 376
37.1.1 源于NIMA的数字地形高程 376
37.1.2 源于USGS的数字高程模型(DEM)文件 376
37.1.3 确定区域内存在什么高程数据 376
37.2 交互读取高程数据 379
37.3 确定整个地形上的可见性并进行显示 382
37.4.1 给DTED文件创建的地形图添加光照 383
37.4 给地形图添加阴影和光照 383
37.4.2 用lightm函数和lightmui工具给世界地形图添加光照 385
37.4.3 给地貌添加阴影 386
37.4.4 给阴影地貌图着色并作三维显示 388
37.4.5 用光照对象照亮彩色三维地貌图 389
37.5 在高程地图上叠加数据 390
37.5.1 在地形图上叠加大地水准面高度 390
37.5.2 在地形图上叠加不同的网格数据 391
37.6 球体显示操作 393
37.6.1 在球体显示中使用透明性 394
37.6.2 用相机定位函数进行水平三维视图 395
37.6.3 显示一个旋转的地球 395
第38章 定制地图 398
38.1 插入地图 398
38.3 指北针 399
38.2 图形比例尺 399
38.4 主题图 400
38.4.1 地区分布图 401
38.4.2 杆状图 403
38.4.3 等值线图 403
38.4.4 散点图 403
38.4.5 三角化数据点 404
38.4.6 矢量图 405
38.5 使用颜色查找表和色条 406
38.5.1 地形数据的颜色查找表 406
38.5.2 等值线颜色查找表 406
38.5.3 政区图的颜色查找表 407
38.5.4 标注和编辑色条 408
参考文献 410