登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

『簡體書』Octave AR应用实战

書城自編碼: 3963644
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: 于红博
國際書號(ISBN): 9787302652632
出版社: 清华大学出版社
出版日期: 2024-02-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 834

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
观鹤笔记.全三册
《 观鹤笔记.全三册 》

售價:NT$ 837.0
Hello算法
《 Hello算法 》

售價:NT$ 727.0
变革时代的公司契约:法律能否与时俱进?
《 变革时代的公司契约:法律能否与时俱进? 》

售價:NT$ 437.0
我国城乡融合发展基本格局及典型形态研究
《 我国城乡融合发展基本格局及典型形态研究 》

售價:NT$ 386.0
写意兰竹树石课徒稿
《 写意兰竹树石课徒稿 》

售價:NT$ 515.0
不较真的心理智慧
《 不较真的心理智慧 》

售價:NT$ 279.0
漫画算法与数据结构(大规模数据集)
《 漫画算法与数据结构(大规模数据集) 》

售價:NT$ 447.0
欧洲的扩张1415—1789:现代世界的奠基
《 欧洲的扩张1415—1789:现代世界的奠基 》

售價:NT$ 829.0

編輯推薦:
本书依据真实的工业研发经验和笔者在科学计算领域的积累,将实际的应用场景和理论的AR算法相融合,博采其他编程语言的经典概念,配合Octave编程的基础知识进行实战,力求读者可以由浅入深地上手AR技术中的各个环节。书中还讲解了倾斜摄影技术,倾斜摄影是一种高新技术,在遥感测绘等方面的AR应用上非常广泛。
內容簡介:
Octave为GNU项目下的开源软件,旨在解决线性和非线性的数值计算问题。本书全面讲解AR技术在理论上的基础和在行业内的应用,帮助读者尽快掌握Octave的应用技巧。
本书共13章,涵盖广泛的AR技术应用场景,将庞大的AR技术分解为可视化技术、计算机视觉、硬件选型、SLAM算法等方面,分类进行详细讲解,并提供大量实用程序示例,让读者不仅可以在学习过程中减小阻碍,在实际的工程研究中也方便查找,内容覆盖全面。
本书针对零基础的读者,有VR方向研发经验的程序设计人员也可以学到很多Octave独有的特性。
關於作者:
于红博,曾在某世界500强公司担任测试开发工程师,参与内部框架的维护和开发。主要涉及科学计算、图像处理、自动化系统设计、模式识别、神经网络等分支的算法设计和程序设计领域。在业余时间爱好编写、审阅及完善开源软件,对于开源软件的发展做出了一定的贡献。
目錄
第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
內容試閱
AR技术是增强现实技术的简称,是一种将虚拟信息与真实世界进行融合的技术。AR技术通过计算机生成的图像、声音和其他感官输入,将虚拟元素叠加到真实环境中,使用户可以与虚拟和真实世界进行交互。
AR技术通常使用智能手机、平板电脑、AR眼镜或头戴式显示器等设备来呈现虚拟内容。通过这些设备,用户不仅可以看到真实场景,还可以看到额外添加的特效。
AR技术在人们的生活中逐渐普及。用户可以通过支持AR芯片的手机拍摄实时的特效视频,可以通过AR眼镜等新型外设看到增强的景象,还可以通过智能驾驶技术更轻松地驾车出行。
AR技术的应用场景广泛。AR技术可用于制作电子游戏,有些AR游戏可以在现实世界中放置桌椅模型,并将所有用户虚拟成卡通人物。AR技术可用于制作远程教育应用,为学生营造出一种轻松愉快的学习氛围;在AR应用中的教具也可能是虚拟的模型,拥有更丰富的动作,因此教师也能更好地发挥自己的教学水平。AR技术可用于零售行业,消费者可以通过AR应用远程查看商品的任意角度;AR应用还支持试穿功能,实时拍摄用户的视频影像,并将服饰模型放置在人物之上,达到远程试穿的效果。制造业中的AR技术可实时展示工业设计、维修和装配的效果,提供实时指导和可视化信息,提高工作效率和准确性。
笔者依据真实的工业研发经验和在科学计算领域的积累,将实际的应用场景和理论的AR算法相融合,博采其他编程语言的经典概念,配合Octave编程的基础知识进行实战,力求使读者由浅入深地上手AR技术中的各个环节。
本书共分为13章,主要内容如下。
第1章绪论,为Octave的概述内容。
第2章从简单的模型入手,到如何创建复杂的模型,再到实际研发过程中的模型背景如何透明等技术细节,最后编写在AR画面中放置模型的实战应用。
第3章讲解与位姿相关的知识。从数学和力学等基础理论入手,到仿射变换的理论和应用,再配合Octave的仿射变换函数和其他工具的空间变换命令,最后编写机器人模型位姿变换的实战应用。从传统的几何变换到复杂的仿射变换,这种思维的转变是本章的一大难点。
第4章讲解与投影相关的知识。读者需要先理解投影的理论,再配合Octave的相机概念,即可在软件层面上轻松控制机器人模型的投影效果,最后编写控制机器人模型的投影效果的实战应用。
第5章讲解与畸变相关的知识。从投影的分类入手,再讲解畸变矫正工具的用法,配合畸变矫正的公式理论,帮助读者在拍摄AR画面时能够一步微调画面的显示效果,最后编写畸变矫正的实战应用。
第6章讲解与计算机视觉相关的知识。先讲解经典且常用的SIFT和SURF等算法,再深入讲解计算机视觉的代码如何在Octave上实现,引导读者根据实际的应用场景去编写新的算法。还涉及点云模型在计算机视觉中的用法,引领读者在开发AR应用时脱离固有的RGB彩色图像的限制,最后介绍YOLOv8等顶级的计算机视觉算法。
第7章从AR系统的硬件选型入手,意在让读者领悟理论的算法与实际的硬件之间的关联。不同的算法往往对应不同的选型方案,本章的内容对提高读者的AR系统设计能力有较大帮助。
第8章讲解与倾斜摄影相关的知识。倾斜摄影是一种高新技术,在遥感测绘等方面的AR应用上被广泛应用,并且具备卓越的性能优势。
第9章讲解SLAM算法的入门知识。先从SLAM算法的流程开始讲解,又讲解了Octave的传感器数据读取函数等基础用法,最后从头编写一套SLAM算法代码,帮助读者从能够开发单个的算法提升到能够开发整套SLAM算法。
第10章和第11章讲解SLAM算法的常用库和开源算法的实现,帮助读者能够在已有的SLAM算法基础上进行二次开发,希望读者能够具备拿来就用和知道用什么的能力。二次开发已有的开源算法也是业界常用的一种做法。
第12章讲解与贴图相关的知识。贴图是一种具有艺术性的工序,本章不但从代码层面上讲解贴图的各种实战应用,还举了大量生活中的例子,使内容更贴近实际且更容易理解。
第13章讲解推流和拉流。本章中的实战内容将算法处理完的AR视频以流媒体的形式在网络上传输,并且涵盖和部署应用相关的技术难点。
素材(源代码)等资源: 扫描封底的文泉云盘防盗码,再扫描目录上方的二维码下载。
限于本人的水平和经验,书中一定存在疏漏之处,恳请专家与读者批评指正。
于红博2023年11月于哈尔滨

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.