书馨卡帮你省薪
欢迎光临中图网 请 | 注册

Octav AR应用实战

作者:于红博
出版社:清华大学出版社出版时间:2024-01-01
开本: 16开 页数: 628
中 图 价:¥108.8(7.3折) 定价  ¥149.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

Octav AR应用实战 版权信息

Octav AR应用实战 本书特色

本书依据真实的工业研发经验和笔者在科学计算领域的积累,将实际的应用场景和理论的AR算法相融合,博采其他编程语言的经典概念,配合Octave编程的基础知识进行实战,力求读者可以由浅入深地上手AR技术中的各个环节。书中还讲解了倾斜摄影技术,倾斜摄影是一种高新技术,在遥感测绘等方面的AR应用上非常广泛。

Octav AR应用实战 内容简介

Octave为GNU项目下的开源软件,旨在解决线性和非线性的数值计算问题。本书全面讲解AR技术在理论上的基础和在行业内的应用,帮助读者尽快掌握Octave的应用技巧。
本书共13章,涵盖广泛的AR技术应用场景,将庞大的AR技术分解为可视化技术、计算机视觉、硬件选型、SLAM算法等方面,分类进行详细讲解,并提供大量实用程序示例,让读者不仅可以在学习过程中减小阻碍,在实际的工程研究中也方便查找,内容覆盖全面。
本书针对零基础的读者,有VR方向研发经验的程序设计人员也可以学到很多Octave独有的特性。

Octav AR应用实战 目录

第1章绪论1
第2章模型与背景画面52.1定义二维模型5
2.1.1matgeom5
2.1.2矩形6
2.1.3圆形7
2.1.4圆弧7
2.1.5椭圆9
2.1.6椭圆弧9
2.2定义三维模型11
2.2.1胶囊体11
2.2.2立体圆形11
2.2.3立体圆弧12
2.2.4圆柱体12
2.2.5球体14
2.2.6立体椭圆14
2.2.7椭球体15
2.2.8圆环面15
2.2.9圆顶面17
2.2.10正方体17
2.2.11长方体17
2.3盒子模型19
2.4制作复杂的模型20
2.4.1制作二维机器人模型20
2.4.2制作三维机器人模型27
2.5以图片格式保存模型35
2.6FFmpeg36
2.6.1安装FFmpeg37
2.6.2FFmpeg支持的命令37
2.7播放真实的背景画面37
2.7.1ffplay命令的主要选项38
2.7.2ffplay命令的键盘操作选项40
2.7.3ffmpeg命令的用例41
2.8模型图片背景透明化42
2.8.1SVG格式42
2.8.2SVG格式的不透明度属性42
2.8.3SVG格式的点属性43
2.8.4SVG格式的svg片段元素43
2.8.5SVG格式的多边形元素43
2.8.6SVG格式的组合对象元素43
2.8.7Octave保存的SVG图片的结构44
2.8.8通过Octave修改SVG图片背景的透明度45
2.8.9GIF格式46
2.8.10GIF格式的背景透明效果46
2.9ImageMagick47
2.9.1安装ImageMagick47
2.9.2安装magick47
2.9.3ImageMagick的用例47
2.9.4制作透明背景的GIF图片48
2.10读取或写入图像48
2.10.1读取图像48
2.10.2写入图像49
2.10.3设置或返回读取图像的路径50
2.10.4返回图像信息50
2.10.5管理支持的图像格式51
2.10.6Octave默认支持处理的图像格式53
2.11显示图像54
2.11.1以基础方式显示图像54
2.11.2将图像矩阵显示为图像54
2.11.3以缩放模式显示图像54
2.12转换图像类型55
2.12.1将图像转换为double格式55
2.12.2将灰度图像或黑白图像转换为索引图像55
2.12.3将索引图像转换为灰度图像或黑白图像56
2.12.4将RGB图像转换为索引图像56
2.12.5将索引图像转换为RGB图像56
2.13将模型放置于真实的背景画面上56
2.13.1预览AR画面57
2.13.2背景画面为视频时的处理方法57
2.13.3加快视频的处理速度57
2.14放置模型应用58
2.14.1放置模型应用原型设计58
2.14.2放置模型应用视图代码设计58
2.14.3放置模型应用属性代码设计62
2.14.4放置模型应用回调函数代码设计69
2.14.5选择图像文件74
2.14.6将视频解压为图片78
2.14.7生成输出文件名或文件夹79
2.14.8初始化轴对象81
2.14.9设置轴对象的宽高比82
2.14.10生成预览图片或视频83
2.14.11更新AR画面的预览效果90
2.14.12实际采用的视频预处理方式和处理方式92
2.15日志功能94
2.15.1日志的原理94
2.15.2日志级别94
2.15.3日志格式95
2.15.4日志持久化96
2.15.5实例化日志对象96
2.15.6日志类97
2.15.7在放置模型应用中使用日志类101
第3章位姿103
3.1位姿在不同坐标系下的数学表述103
3.1.1球面角103
3.1.2球面坐标103
3.1.3欧拉角103
3.1.4RPY角104
3.2计算几何相关知识104
3.2.1两点求角度104
3.2.2三点求角度104
3.3力学相关知识104
3.3.1质点104
3.3.2质点系104
3.3.3质心104
3.3.4质心运动定理105
3.3.5刚体105
3.4旋转矩阵105
3.4.1旋转矩阵的用法105
3.4.2欧拉角与旋转矩阵的变换106
3.4.3根据旋转角度创建旋转矩阵107
3.4.4根据旋转矩阵计算转轴或旋转角度107
3.5仿射变换108
3.5.1平移变换108
3.5.2缩放变换108
3.5.3剪切变换108
3.5.4旋转变换109
3.5.5仿射变换矩阵的尺寸描述109
3.6Octave的空间变换函数110
3.6.1安装image工具箱110
3.6.2实例化仿射变换对象110
3.6.3根据仿射变换对象进行仿射变换112
3.6.4根据仿射变换对象进行仿射变换的逆变换112
3.6.5推断仿射变换矩阵112
3.6.6裁剪图像函数114
3.6.7缩放图像函数114
3.6.8旋转图像函数115
3.6.9快速旋转和缩放图像函数116
3.6.10透视变换函数116
3.6.11高斯金字塔函数117
3.6.12重新映射图像函数117
3.6.13剪切变换函数118
3.6.14平移变换函数119
3.7ImageMagick的空间变换命令119
3.7.1resize参数119
3.7.2geometry参数121
3.7.3thumbnail参数121
3.7.4sample参数122
3.7.5scale参数122
3.7.6filter参数122
3.7.7magnify参数123
3.7.8adaptiveresize参数123
3.7.9interpolate参数123
3.7.10interpolativeresize参数123
3.7.11distort参数123
3.7.12 distort参数131
3.8通过GUI控制模型的位姿132
3.8.1控制模型的位姿应用原型设计132
3.8.2控制模型的位姿应用视图代码设计133
3.8.3控制模型的位姿应用回调函数代码设计139
3.8.4位姿的默认值142
第4章投影144
4.1平行投影和透视投影144
4.2建立模型的边界盒145
4.2.1判断边界145
4.2.2hggroup146
4.2.3图形对象定位148
4.2.4根据边界点的位置绘制边界盒150
4.2.5自动确定模型的边界150
4.2.6在模型类中添加绘制边界盒功能157
4.3将二维模型投影为三维模型160
4.4Octave的相机概念164
4.4.1相机位置165
4.4.2相机目标165
4.4.3相机视角165
4.4.4轴对象的方向166
4.5更改三维模型的投影效果167
4.5.1视点变换167
4.5.2观察点变换167
4.6通过GUI控制模型的投影效果167
4.6.1控制投影效果应用原型设计168
4.6.2控制投影效果应用视图代码设计168
4.6.3更新模型文件的预览效果172
4.6.4显示当前的选项值174
4.6.5修改当前的选项值176
4.6.6保存模型文件的预览效果179
第5章畸变182
5.1图像畸变182
5.1.1径向畸变182
5.1.2桶形畸变和枕形畸变182
5.1.3切向畸变183
5.2Hugin183
5.2.1安装Hugin183
5.2.2Hugin镜头校准的默认状态184
5.2.3Hugin镜头校准的镜头类型184
5.2.4Hugin镜头校准的图片要求185
5.2.5Hugin镜头校准的必选参数185
5.2.6Hugin镜头校准的可选参数185
5.2.7Hugin镜头校准的常见错误185
5.2.8Hugin镜头校准的预览功能185
5.2.9Hugin保存镜头186
5.3kalibr188
5.3.1kalibr在Docker之下安装并校准相机188
5.3.2kalibr源码安装并校准相机189
5.3.3kalibr以ROS包的格式收集数据190
5.3.4kalibr校准多个相机190
5.3.5kalibr校准带IMU的相机191
5.3.6kalibr校准多个IMU193
5.3.7kalibr校准滚动快门相机194
5.3.8kalibr对优化校准结果的改进建议194
5.3.9kalibr使用数据集校准194
5.3.10kalibr支持的相机模型194
5.3.11kalibr支持的畸变模型195
5.3.12kalibr支持的校准目标195
5.3.13kalibr设置相机焦点196
5.3.14kalibr校准验证器197
5.3.15kalibr配合ROS 2使用197
5.4畸变的校准197
5.4.1用现成的参数校准畸变197
5.4.2用Hugin校准畸变198
5.5畸变的矫正200
5.5.1用校准参数矫正畸变200
5.5.2用坐标映射矫正畸变202
5.6通过GUI控制矫正效果205
5.6.1控制矫正效果应用原型设计205
5.6.2控制矫正效果应用视图代码设计206
5.6.3控制矫正效果应用回调函数代码设计211
5.6.4校准参数的默认值214
第6章计算机视觉216
6.1Canny边缘检测216
6.2Hough直线检测217
6.3自适应局部图像阈值处理218
6.4SIFT算法218
6.4.1高斯金字塔218
6.4.2高斯尺度空间219
6.4.3DoG空间219
6.4.4SIFT特征点定位220
6.4.5SIFT特征点方向220
6.4.6SIFT特征匹配221
6.5SURF算法221
6.5.1SURF算法和SIFT算法的区别221
6.5.2积分图像222
6.5.3构造Hessian矩阵222
6.5.4用盒子滤波器代替高斯滤波器223
6.5.5SURF特征点定位223
6.5.6SURF特征点方向分配223
6.5.7SURF特征匹配224
6.6生成图像处理时需要的特殊矩阵224
6.6.1生成均值滤波器224
6.6.2生成圆形区域均值滤波器225
6.6.3生成高斯滤波器226
6.6.4生成高斯拉普拉斯算子227
6.6.5生成拉普拉斯算子228
6.6.6生成锐化算子228
6.6.7生成运动模糊算子229
6.6.8生成Sobel算子229
6.6.9生成Prewitt算子230
6.6.10生成Kirsch算子230
6.7ImageMagick的计算机视觉变换命令230
6.7.1edge参数230
6.7.2canny参数231
6.7.3houghlines参数231
6.7.4lat参数231
6.8文件扩展名为oct的程序231
6.8.1编译oct程序232
6.8.2编译oct程序时支持的可选参数232
6.8.3编译oct程序时支持的环境变量234
6.9PCL库235
6.9.1安装PCL库235
6.9.2PCL库的点的类型236
6.9.3在Octave中使用PCL库238
6.10点云模型239
6.10.1点云模型的概念239
6.10.2点云模型的存储格式239
6.10.3读取PCD模型240
6.10.4写入PCD模型241
6.10.5PCD模型可视化242
6.10.6OpenNI点云捕捉247
6.10.7点云分割248
6.11通过GUI控制计算机视觉变换效果252
6.11.1控制计算机视觉变换效果应用原型设计252
6.11.2控制计算机视觉变换效果应用视图代码设计256
6.11.3控制计算机视觉变换效果应用回调函数代码设计262
6.11.4计算机视觉变换参数的默认值266
6.11.5显示当前修改的参数267
6.11.6计算机视觉变换的关联关系269
6.11.7计算机视觉变换的流程272
6.12OctoMap279
6.12.1OctoMap源码安装280
6.12.2OctoMap通过vcpkg安装280
6.12.3octomap ROS包的用法281
6.12.4octomap_rviz_plugins281
6.13Caffe281
6.13.1Caffe源码安装281
6.13.2Caffe使用Docker安装283
6.13.3Caffe训练MNIST模型283
6.13.4Caffe训练ImageNet模型287
6.14SOLD2288
6.14.1SOLD2源码安装288
6.14.2SOLD2使用pip安装288
6.14.3SOLD2训练模型288
6.14.4SOLD2使用模型289
6.15YOLOv5290
6.15.1YOLOv5源码安装290
6.15.2YOLOv5推断290
6.15.3YOLOv5使用detect.py推断291
6.15.4在其他应用中使用YOLOv5291
6.15.5YOLOv5数据集训练292
6.16YOLOv8292
6.16.1YOLOv8源码安装292
6.16.2YOLOv8的模式293
6.16.3YOLOv8的CLI模式293
6.16.4YOLOv8的Python模式298
6.16.5YOLOv8的三大组件300
6.17Fast RCNN303
6.17.1Fast RCNN源码安装304
6.17.2Fast RCNN运行用例304
第7章硬件选型与AR算法306
7.1相机选型306
7.1.1单目相机和双目相机306
7.1.2景深相机307
7.1.3全景相机307
7.1.4柱面全景相机308
7.1.5网络摄像头308
7.2镜头选型308
7.2.1变焦镜头和定焦镜头308
7.2.2正圆镜头和椭圆镜头309
7.2.3不同焦段的镜头309
7.2.4不同视角的镜头309
7.2.5标准镜头309
7.2.6广角镜头309
7.2.7长焦镜头310
7.2.8鱼眼镜头310
7.2.9微距镜头310
7.2.10移轴镜头310
7.2.11折返镜头310
7.3IMU选型311
7.3.13轴IMU311
7.3.26轴IMU311
7.3.39轴IMU312
7.3.4不同精度的IMU312
7.3.5不同封装的IMU312
7.4激光雷达选型312
7.4.1不同线数的激光雷达313
7.4.2不同记录光能方式的激光雷达313
7.4.3不同工作条件的激光雷达313
7.5声呐选型313
7.5.1不同频率的声呐313
7.5.2不同记录声波方式的声呐314
7.5.3不同扫描方式的声呐314
7.5.4数字成像声呐315
7.5.5数字剖面声呐315
7.6机器人选型315
7.6.1常用的机器人315
7.6.2不同连接方式的机器人315
7.6.3不同移动性的机器人316
7.6.4不同控制方式的机器人316
7.6.5不同几何结构的机器人316
7.6.6不同智能程度的机器人316
7.6.7不同用途的机器人316
7.7AR算法中的景深317
7.8点云处理算法317
7.8.1点云反射317
7.8.2点云降噪317
7.8.3点云分类318
7.8.4体素滤波器318
7.9里程计算法319
7.9.1不同传感器的里程计319
7.9.2不同参考图像或参考点的里程计320
7.9.3里程计的传感器融合320
7.10建图算法320
7.10.1状态估计320
7.10.2回环检测321
7.10.3在线建图321
7.10.4离线建图322
7.11路径规划算法322
7.11.1A算法322
7.11.2Dijkstra算法322
7.11.3RRT算法322
7.11.4D算法322
第8章倾斜摄影323
8.1倾斜摄影技术的特点323
8.2倾斜摄影的图像特点324
8.3倾斜摄影方式325
8.4倾斜摄影的遮挡关系325
8.5倾斜摄影的相机326
8.6倾斜摄影的相机选型329
第9章SLAM算法入门331
9.1SLAM算法的流程331
9.2instrumentcontrol332
9.2.1常用函数332
9.2.2通用函数335
9.2.3GPIB335
9.2.4I2C339
9.2.5MODBUS341
9.2.6并口344
9.2.7串口346
9.2.8新版串口352
9.2.9SPI357
9.2.10TCP360
9.2.11TCP客户端363
9.2.12TCP服务器端365
9.2.13UDP367
9.2.14UDP端口371
9.2.15USBTMC375
9.2.16VXI11377
9.3SLAM算法的分类379
9.3.1不同硬件的SLAM算法379
9.3.2二维SLAM和三维SLAM380
9.3.3紧耦合SLAM和松耦合SLAM380
9.3.4室内SLAM和室外SLAM381
9.3.5不同微调方式的SLAM381
9.4SLAM算法实战381
第10章SLAM算法的常用库393
10.1Protobuf393
10.1.1Protobuf源码安装393
10.1.2Protobuf通过DNF软件源安装394
10.1.3Protobuf用法394
10.2g2o396
10.2.1g2o源码安装397
10.2.2g2o的文件格式398
10.2.3g2o的基本用法398
10.2.4g2o运行用例400
10.2.5g2o的拟合命令404
10.2.6g2o的输出命令409
10.2.7g2o的转换命令411
10.2.8g2o制造数据411
10.2.9g2o的模拟器命令416
10.2.10g2o的优化命令418
10.2.11g2o的校准命令421
10.2.12g2o的GUI命令422
10.3g2opy427
10.3.1g2opy源码安装427
10.3.2g2opy用法428
10.4ROS428
10.4.1ROS 1源码安装428
10.4.2ROS 2源码安装429
10.4.3使用Docker安装ROS 1430
10.4.4使用Docker安装ROS 2430
10.4.5离线访问rosdistro431
10.4.6ROS包初始化环境变量432
10.4.7ROS 1版本更新432
10.4.8ROS 2版本更新433
10.4.9ROS的发行版434
10.5rviz434
10.5.1rviz初始化环境变量434
10.5.2rviz主界面操作435
10.5.3rviz支持的界面类型435
10.5.4rviz的配置文件436
10.5.5rviz在预览时支持的鼠标操作437
10.5.6rviz的键盘操作选项438
10.5.7rviz管理插件438
10.6GLClib438
10.6.1GLClib源码安装439
10.6.2GLClib运行用例439
10.7GLCPlayer 440
10.7.1GLCPlayer源码安装440
10.7.2安装GLCPlayer的Windows安装包441
10.7.3GLCPlayer的主界面441
10.7.4GLCPlayer的用法445
10.8Pangolin451
10.8.1Pangolin支持的主要特性451
10.8.2Pangolin源码安装451
10.9TEASER 452
10.9.1TEASER 源码安装452
10.9.2TEASER 运行用例454
10.10Ceres解算器454
10.10.1Ceres解算器源码安装454
10.10.2Ceres解算器通过DNF软件源安装456
10.10.3Ceres解算器通过vcpkg安装456
10.10.4Ceres解算器使用BAL数据集456
10.11Kindr456
10.11.1Kindr源码安装456
10.11.2Kindr使用catkin安装457
10.11.3Kindr二次开发457
10.11.4Kindr编译文档458
10.12Sophus458
10.12.1Sophus源码安装458
10.12.2Sophus安装Python的包应用458
10.12.3Sophus的C 常用函数和方法459
10.12.4Sophus的Python常用函数和方法459
第11章开源的SLAM算法实现462
11.1OKVIS462
11.1.1OKVIS源码安装462
11.1.2OKVIS运行用例464
11.1.3OKVIS的输出数据464
11.1.4OKVIS的配置文件464
11.1.5OKVIS对校准相机的要求466
11.1.6OKVIS二次开发466
11.2VINSMono467
11.2.1VINSMono源码安装467
11.2.2VINSMono使用视觉惯性里程计和姿态图数据集467
11.2.3VINSMono建图合并468
11.2.4VINSMono建图输入/输出468
11.2.5VINSMono AR演示468
11.2.6VINSMono使用相机468
11.2.7VINSMono在不同相机上的表现469
11.2.8VINSMono在Docker之下安装469
11.3ROVIO469
11.3.1ROVIO源码安装470
11.3.2ROVIO相机内参470
11.3.3ROVIO的配置文件471
11.3.4ROVIO通过校准方式获取相机内参471
11.4MSCKF_VIO471
11.4.1MSCKF_VIO源码安装471
11.4.2MSCKF_VIO校准472
11.4.3MSCKF_VIO使用数据集472
11.4.4MSCKF_VIO的ROS节点473
11.5ORBSLAM473
11.5.1ORBSLAM源码安装474
11.5.2ORBSLAM的用法475
11.5.3ORBSLAM的设置文件475
11.5.4ORBSLAM结果失败的总结475
11.6ORBSLAM2476
11.6.1ORBSLAM2源码安装476
11.6.2ORBSLAM2的单目相机用例477
11.6.3ORBSLAM2的双目相机用例477
11.6.4ORBSLAM2的景深相机用例478
11.6.5ORBSLAM2编译ROS包478
11.6.6ORBSLAM2的ROS包的用法478
11.6.7ORBSLAM2的模式479
11.7ORBSLAM3479
11.7.1ORBSLAM3源码安装479
11.7.2ORBSLAM3配置相机480
11.7.3ORBSLAM3执行用例480
11.7.4ORBSLAM3编译ROS包480
11.7.5ORBSLAM3的ROS包的用法480
11.7.6ORBSLAM3分析运行时间481
11.7.7ORBSLAM3相机校准481
11.8Cube SLAM481
11.8.1Cube SLAM的模式481
11.8.2Cube SLAM源码安装482
11.8.3Cube SLAM的ROS包的用法482
11.8.4Cube SLAM的注意事项483
11.9DSSLAM483
11.9.1DSSLAM源码安装483
11.9.2DSSLAM使用TUM数据集484
11.9.3DSSLAM的目录结构484
11.10DynaSLAM484
11.10.1DynaSLAM源码安装485
11.10.2DynaSLAM使用景深相机和TUM数据集485
11.10.3DynaSLAM使用双目相机和KITTI数据集486
11.10.4DynaSLAM使用单目相机和TUM数据集486
11.10.5DynaSLAM使用单目相机和KITTI数据集486
11.11DXSLAM486
11.11.1DXSLAM源码安装486
11.11.2DXSLAM使用TUM数据集487
11.11.3DXSLAM配置相机487
11.11.4DXSLAM的模式488
11.12LSDSLAM488
11.12.1LSDSLAM源码安装488
11.12.2LSDSLAM的ROS包489
11.12.3LSDSLAM使用相机489
11.12.4LSDSLAM使用数据集489
11.12.5LSDSLAM的校准文件489
11.12.6LSDSLAM的键盘操作选项490
11.12.7LSDSLAM动态调节参数490
11.12.8LSDSLAM对优化结果的改进建议491
11.12.9LSDSLAM查看器492
11.12.10LSDSLAM查看器的键盘操作选项492
11.12.11LSDSLAM查看器动态调节参数493
11.13GTSAM494
11.13.1GTSAM源码安装494
11.13.2GTSAM的用法496
11.13.3GTSAM的包应用496
11.13.4GTSAM的包应用运行用例497
11.13.5GTSAM对提升性能的改进建议498
11.14Limo498
11.14.1Limo源码安装499
11.14.2Limo在Docker之下安装499
11.14.3Limo在Docker之下安装语义分割功能500
11.14.4Limo的核心库500
11.14.5Limo使用数据集500
11.15LeGOLOAM501
11.15.1LeGOLOAM源码安装501
11.15.2LeGOLOAM的外部变量502
11.15.3LeGOLOAM使用ROS包502
11.16SCLeGOLOAM503
11.16.1SCLeGOLOAM源码安装503
11.16.2SCLeGOLOAM使用ROS包503
11.17MULLS503
11.17.1MULLS源码安装504
11.17.2MULLS运行用例505
11.17.3MULLS使用数据集506
11.17.4MULLS的键盘操作选项506
11.17.5MULLS的SLAM参数508
11.17.6MULLS保存结果的首选项511
第12章贴图512
12.1补丁对象512
12.1.1由单个多边形构成的补丁对象512
12.1.2由多个多边形构成的补丁对象513
12.1.3使用多个补丁对象绘图513
12.2面对象514
12.2.1由单个面构成的面对象514
12.2.2由多个面构成的面对象515
12.2.3使用多个面对象绘图516
12.3颜色图517
12.3.1Octave的内置颜色图517
12.3.2查看颜色图518
12.3.3查看色谱519
12.3.4颜色调节520
12.3.5颜色设计521
12.4颜色图插值523
12.4.1interp1()函数523
12.4.2interp1()函数支持的插值方式523
12.4.3其他的一维插值函数524
12.5颜色图重采样525
12.5.1颜色图向下采样525
12.5.2颜色图向上采样526
12.6颜色条526
12.6.1显示颜色条526
12.6.2指定颜色条的绘制位置526
12.6.3删除颜色条527
12.7按坐标上色528
12.7.1fill3()函数528
12.7.2fill3()函数支持的其他参数529
12.7.3按坐标上色和其他对象的关系529
12.8使用颜色图上色529
12.9网格和网格面529
12.9.1创建网格530
12.9.2绘制网格面534
12.9.3特殊的网格面536
12.9.4网格面和其他对象的关系536
12.10光照效果536
12.10.1构造光源对象536
12.10.2光源对象的数量限制537
12.10.3光源对象对其他对象的影响538
12.10.4光照效果对比538
12.10.5构造相机光源对象542
12.10.6内置的相机光源方向542
12.10.7精确的相机光源方向543
12.10.8指定相机光源的风格543
12.11材质543
12.11.1材质的尺度544
12.11.2Octave的内置材质544
12.11.3修改材质544
12.11.4材质设计545
12.12贴图实战案例545
第13章推流和拉流551
13.1推流时使用的网络协议551
13.1.1HTTP551
13.1.2RTMP551
13.1.3RTSP552
13.1.4RTP552
13.1.5TCP553
13.1.6UDP553
13.2Nginx553
13.2.1带插件编译并安装Nginx554
13.2.2启动和停止Nginx555
13.2.3安装HLS库555
13.2.4Nginx的RTMP配置556
13.3rtspsimpleserver556
13.3.1安装rtspsimpleserver556
13.3.2rtspsimpleserver的用法557
13.4使用FFmpeg推流558
13.4.1FFmpeg推流媒体文件558
13.4.2FFmpeg转流558
13.4.3FFmpeg支持的网络协议559
13.4.4FFmpeg指定编译选项559
13.4.5FFmpeg编译第三方库559
13.5libx264编码器561
13.6推流的分类561
13.6.1点对点推流561
13.6.2广播式推流562
13.7常用的拉流客户端562
13.7.1VLC562
13.7.2mplayer562
13.7.3mpv563
13.8推流工具类563
13.8.1推流工具类的构造方法563
13.8.2拼接推流命令565
13.8.3获取推流命令569
13.8.4发送推流命令569
13.9推流CLI应用571
13.10推流GUI应用573
13.10.1推流应用原型设计573
13.10.2推流应用视图代码设计574
13.10.3启动推流或停止推流577
13.10.4推流应用和推流工具类的配合逻辑581
13.10.5推流应用的优化逻辑583
13.11拉流应用585
13.11.1拉流应用原型设计585
13.11.2拉流应用视图代码设计586
13.11.3拉流应用回调函数代码设计589
13.12一体化部署592
13.12.1部署方案592
13.12.2rtspsimpleserver的端口配置592
13.12.3视频流属性代码设计593
13.12.4客户端提示字符串设计598
13.12.5推流应用和拉流应用共同运行599
展开全部

Octav AR应用实战 作者简介

于红博,曾在某世界500强公司担任测试开发工程师,参与内部框架的维护和开发。主要涉及科学计算、图像处理、自动化系统设计、模式识别、神经网络等分支的算法设计和程序设计领域。在业余时间爱好编写、审阅及完善开源软件,对于开源软件的发展做出了一定的贡献。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服