当前位置: 首页 > news >正文

0基础学习VR全景平台篇第111篇:全景图拼接和编辑 - PTGui Pro教程

上课!全体起立~

大家好,欢迎观看蛙色官方系列全景摄影课程!

前情回顾:上节,我们将源图像导入了PTGui,也设置好了各项参数。

下面我们就开始拼接全景图,并且在编辑器里进行一系列检查错位设定主视角的编辑操作。

都是知识点,拿小本记一下:

1)全景编辑器这个工具,就像导演的监视器,把控着全景作品的质量关;

2)全景编辑器这个工具,又像中央厨房,联结着遮罩、控制点等其他选项卡,协同工作。

(对齐影像)

(等待拼接进度条)

点击【对齐影像】按钮,PTGui Pro 弹出进度条弹框,请耐心等待进度条走完。

软件会默认会自动识别一组“源图像”重合部分的控制点,拼接出一张“宽高比”2:1的全景图。

划重点:

全景摄影师拍摄全景时,讲究的就是“重合”,我们给大家规定地拍拍摄时每隔60度拍摄一张,也是为了保证图片与图片之间有将近50%的重合部分。

航拍因为斜下拍摄多圈,一圈图与一圈图之间也得保证重合

(全景编辑器界面)

进度条走完,全景图拼接完成后,会跳出“全景编辑器界面”,如上图。

为了确保全景图尺寸比例为2:1,这是行业标准,我们要把界面左侧下方红框圈中的两个按钮拉到最下面最右边,否则在后面处理时会产生很多完全不必要的麻烦。

(全景编辑按钮&快捷键)

“全景编辑器”界面可以随意关闭,不会对拼接结果产生任何影响。

关闭后,也可以通过在主界面里,点击菜单栏【工具】>【全景编辑】,重新打开“全景编辑器”界面。

温馨小提示:

“全景编辑器”快捷键是Ctrl+E;

大多数软件都会在菜单栏对应按钮的后方,标注快捷键,赶快学起来吧!

打开“全景编辑器”界面,下面为大家介绍全景编辑常用的几个小功能。

(编辑单个影像模式)

(编辑全局影像模式)

“全景编辑”分为两个影像模式:“编辑单个影像模式”&“编辑全局影像模式”,后者比较常用。

编辑单个影像模式此模式可以单独移动或旋转组成全景的单个影像;

编辑全局影像模式此模式可以整体移动或旋转组成全景的全局影像。

(球形全景投影)

全景编辑的“投影”模式很多,软件默认选用“球形全景投影”模式,这个不必更改,如上图。

“球形全景投影”又叫“等距离长方圆柱投影”,专用于球形360°*180°全景图的投影,方便查看全景的整体概况

(细节查看器按钮)

“找茬”环节,检查错位矫正水平,我们都需要用到“细节查看器”。

“细节查看器”是一个放大镜的图标,作用是放大显示全景中详细信息。投影模式也会改变,可以四处拖拽改变视角。

(细节查看器界面)

“细节查看器”查看时可以放大和缩小,利用界面左侧红框圈中按钮,上下滑动。滚动鼠标滚轮,也能实现同样效果。

划重点:

“细节查看器”放大查看细节和错位;

“细节查看器”缩小查看垂直和水平;

(全景编辑器网格中心线)

“全景编辑器”会显示辅助网格线,网格线的中心线则代表着这张全景图的主视角

我们一般将画面主体&关键内容设置为主视角,或是正对空间关系上的前进方向。

例如上图中,如果想让观众的第一眼是墙上的logo和文字。

上手操作,在“编辑全局影像模式”下,直接鼠标左键拖动画面向右移动,主视角设定完成。

(设定主视角)

答疑时间!

问:为什么我拍摄的全景总是无法拼接?

答:无法拼接,只有两个原因。

1. 前期拍摄时,相机云台节点没有调节准确,透视关系随着不同拍摄角度偏移,无法拼接;

2. 所拍摄的场景含有许多PTGui软件无法识别控制点的的画面,例如像天空、水面,纯色墙体等。

问:拼接之后全景图为什么有错位?

答:产生错位的原因,同样是因为节点调节不准。

除此之外还有,像拍摄时不小心碰到三脚架,手按快门造成相机晃动,三脚架水平歪斜等其他原因。

问:上面这些问题有办法补救吗?

答:最好的办法是重新精准调整节点,再次拍摄。一些微小的错位可以通过PTGui优化,PS修补来消除。

下课啦!!!

欢迎在下方评论区留言,与蛙色的小伙伴们共同交流进步吧!

相关文章:

0基础学习VR全景平台篇第111篇:全景图拼接和编辑 - PTGui Pro教程

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 前情回顾:上节,我们将源图像导入了PTGui,也设置好了各项参数。 下面我们就开始拼接全景图,并且在编辑器里进行一系列检查错位和设…...

Dynamics 365 使用ILMerge 合并CRM开发后的DLL

很久以前写过一篇博文,关于用ILMerge 命令合并DLL,当时时纯敲命令行的,现在有了更简单的方式,只需要在NuGet下载如下两个包 另外插件引用第三方dll的新方案Preview来了,不久的将来就不需要使用ILMerge了...

SpringBoot Web请求响应

目录 前言请求PostmanPostman使用 简单参数原始方式接收普通参数SpringBoot方式接收普通参数参数名不一致问题 实体参数简单实体参数复杂实体对象 数组集合参数数组参数集合参数 日期参数JSON参数路径参数 响应ResponseBody统一响应结果请求响应案例案例需求与准备工作案例实现…...

Jenkins CLI二次开发工具类

使用Jenkins CLI进行二次开发 使用背景 公司自研CI/DI平台,借助JenkinsSonarQube进行代码质量管理。对接版本 Jenkins版本为:Version 2.428 SonarQube版本为:Community EditionVersion 10.2.1 (build 78527)技术选型 Java对接Jenkins有第…...

2. 计算WPL

题目 Huffman编码是通信系统中常用的一种不等长编码,它的特点是:能够使编码之后的电文长度最短。 更多关于Huffman编码的内容参考教材第十章。 输入: 第一行为要编码的符号数量n 第二行~第n1行为每个符号出现的频率 输…...

筹备三年,自动驾驶L3标准将至,智驾产业链的关键一跃

‍作者|张祥威 编辑|德新 多位知情人士告诉HiEV,智能网联汽车准入试点通知,乐观预计将在一个月内发布。试点的推动,意味着国家层面的自动驾驶L3标准随之到来。 「L3标准内容大部分与主机厂相关,由工信部牵头,找了几家…...

【Python】Python使用Switch语句

这里写目录标题 1.使用字典(Dictionary)2.使用if-elif-else 1.使用字典(Dictionary) 在 Python 中,没有内置的 switch 语句,但可以使用其他方式来实现类似的功能。以下是两种常见的方法: 使用…...

一年一度的1024程序员节

前言 1024 程序员节是中国程序员的节日,于每年的 10 月 24 日庆祝。这个节日旨在纪念和表彰程序员对科技和社会发展所做的贡献。 1024 程序员节最早由中国互联网公司 CSDN(中国软件开发者网)发起,自然而然地成为了中国程序员社区…...

第十七章 数据库操作

数据库基础 和JDBC概论和常用类和接口就不过多的说了 直接来到 数据库的操作 一开始是在数据库中插入了四个类型 两个int 两个varchar类型 再分别插入 名字 序号 号码 性别 然后再在java中操作增删改查 这几个操作 全部代码如下 package 第十七章; import j…...

RTI-DDS代码分析使用介绍

DDS(Data Distribution Service数据分发服务)是对象管理组织OMG的有关分布式实时系统中数据发布的规范。 DDS规范采用了发布/订阅体系结构,但对实时性要求提供更好的支持。DDS是以数据为中心的发布/订阅通信模型。 以下工程基于rti_connext_dds-7.2.0 hello_world.…...

ant-design-vue 3 a-table保留选中状态

业务需求需要保留选中状态 <a-table class"satistic-table" :row-selection"{ selectedRowKeys: selectedRowKeys, onSelect:onSelect,onSelectAll:onSelectAll }" :row-key"(row)>{ return row.customerId}" :columns"columns"…...

golang 工程组件:grpc-gateway option自定义http规则

option自定义http规则和http body响应 简介 本篇接上文 golang 工程组件&#xff1a;grpc-gateway 环境安装默认网关测试 默认网关配置终究是难用&#xff0c;本篇介绍一下proto里采用option自定义http规则以及让网关返回http响应而不是我们定义的grpc响应 option定义http…...

亚马逊添加购物车和收藏有什么区别

亚马逊的添加购物车和收藏是两个不同的功能&#xff0c;它们在用户行为和用途上有明显的区别&#xff1a; 1、添加购物车&#xff08;Add to Cart&#xff09;&#xff1a; 当用户点击"添加到购物车"按钮时&#xff0c;所选商品将被放入他们的购物车&#xff0c;而…...

JAVA-编程基础-11-03-java IO 字节流

Lison <dreamlison163.com>, v1.0.0, 2023.05.07 JAVA-编程基础-11-03-java IO 字节流 文章目录 JAVA-编程基础-11-03-java IO 字节流字节输出流&#xff08;OutputStream&#xff09;FileOutputStream类**FileOutputStrea 的构造方法**使用文件名创建FileOutputStream…...

python之Cp、Cpk、Pp、Ppk

目录 1、Cp、Cpk、Pp、Ppk 2、python计算 1、Cp、Cpk、Pp、Ppk Cp Process Capability Ratio 可被译为“过程能力指数” Cpk Process Capability K Ratio 可被译为“过程能力K指数” Pp Process Performance Ratio 可被译为“过程绩效指数” Ppk Process Performance K Ra…...

统信uos 1030 企业版 安装.net core环境

安装.net core步骤 添加密钥和包存储库 安装 .NET 之前&#xff0c;请运行以下命令&#xff0c;将 Microsoft 包签名密钥添加到受信任密钥列表&#xff0c;并添加包存储库wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-mic…...

2023/10/23学习记录

1.VS2019中sln对应解决方案 修改sln的文件名&#xff0c;对应的解决方案名称也会变化。 2.如何修改生成的exe文件名呢&#xff1f; 属性--->杂项--->&#xff08;名称) 3.这是任务管理器&#xff0c;这里红色部分显示的是“这是文件描述”。 当通过属性查看详细信息的时…...

flask入门(四)前后端数据传输

文章目录 1、flask后端接收来自前端的数据1&#xff09;如果前端提交的方法为POST2&#xff09;如果前段提交的方法是GET 2、flask后端向前端传数据3、案例参考文献 1、flask后端接收来自前端的数据 1&#xff09;如果前端提交的方法为POST 后端接收时的代码&#xff1a; xx…...

JS——垃圾回收的原理

引言 JavaScript是一种高级的、解释型的编程语言&#xff0c;广泛应用于网页开发和移动应用开发中。在JavaScript中&#xff0c;内存管理是一个重要的话题&#xff0c;而垃圾回收就是内存管理的一部分。本文将介绍JavaScript垃圾回收的原理&#xff0c;并提供一些示例代码来帮助…...

Spring Cloud Gateway 路由构建器的源码分析

Spring Cloud Gateway 路由构建器的源码分析 文章目录 1. 路由构建器的入口2. 创建路由规则3. 设置路由规则和属性4. 路由过滤器的设置5. 构建和获取路由规则&#xff1a;6. 实例化路由构建器&#xff1a;8. 路由构建器的源码分析8.1 RouteLocator接口8.2 RouteLocatorBuilder…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...