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

VR全景HDR拍摄教程

什么是HDR? HDR可以用在哪里?

书面解释:HDR(高动态范围 High Dynamic Range)摄影,是摄影领域广泛使用的一种技术。

是不是有点懵? 我们来看一个实际的拍摄现场环境,你就懂了

我们要拍摄一个,傍晚弱光环境的酒店,环境整体光线较暗, 但人造光源又比较亮。 这时如果我们以环境光线为基础设置曝光,可以看到,人造光源包括室内,会出现曝光过渡,高光溢出的情况。(下图,红圈部分)

同时,门前的灌木,背光处出现了 曝光不足的情况。

假设,我们以人造光源为测光点, 下图,可以看到虽然人造光源的地方保留了更多细节, 但其他区域整体处于曝光不足,同样也缺乏足够细节。

为了让背光处,保留更多细节, 在整体提升了曝光后,可以看到镜头前的灌木展现出了更多的细节,但是人造光源曝光过渡,已经没有细节了。

在这种情况下,能不能保留三张照片中各自的优点, 让暗光部分、高光部分都保留足够的细节? 这个技术就叫HDR 通过HDR合成(三张或更多不同曝光的照片),我们就得到了一张不论高光、暗部都呈现出了足够的细节的照片。

通过这个案例就可以说明,HDR摄影比较适合 “光比”较大场景,如室内外光照差异大的地方、城市夜景、建筑空间等。

HDR的这些特点可以说与720云 VR全景简直就是绝配, 因此这也是一名优秀VR全景摄影创作者必备技能。

那么如何将HDR技术应用到VR全景摄影当中呢?

大多数相机都有自动包围曝光(AEB)功能,允许你快速连拍几张不同曝光的照片。通常,至少需要三张照片:一张正常曝光、一张过曝和一张欠曝。 包围曝光的设置

以尼康相机为例,设置菜单中可以看到“自动包围”菜单,有不同AE参数设置,以“AE1.0”为例,通常指的是曝光补偿或曝光增减的步长为1.0EV(曝光值)。这意味着在进行自动包围曝光拍摄时,相机将自动拍摄一系列照片,其中每张照片的曝光值将比上一张多1.0EV或少1.0EV。

具体来说,如果你设置了AEB为"AE 1.0"并选择拍摄3张照片,你按三次快门,将会得到三张不同曝光的照片:

光圈的设置:使用光圈优先模式保持光圈大小不变,确保场景景深的一致性。

焦距的设置:我们拍摄VR全景是多张照片拼接而成,因此对焦模式使用手动对焦,确保所有拍摄的图片焦距一致,以便于后期拼接。

完成以上准备和拍摄后,就可以使用lightroom 进行HDR合成了。具体的操作流程可以看这里的这边教学 ——

LightRoom 批量合并HDR​www.720yun.com/bbs/article?id=697

除此之外,也可以使用Ptgui直接进行VR全景的HDR合成与拼接,方法也很简单

只需将所拍摄的HDR所有照片拖拽到 PTgui界面中,软件自动提示 “是否激活HDR模式”

合成HDR之后,还需要使用Camrea RAW 滤镜对合成的照片进行调色,调整色彩平衡、对比度、亮度等。

拼接后的全景图,同样需要检查全景图的接缝是否自然,HDR图像的细节是否丰富。

最后建议大家经常实践,尝试不同的曝光组合和后期处理设置,找到最适合特定场景的方法。学习并应用图像编辑软件的高级功能,如局部调整工具,以进一步提升图像质量。

通过掌握这些技巧,你将能够创造出令人印象深刻的VR全景HDR图像,无论是用于个人项目还是商业展示,都能够展现出非凡的视觉效果。也是跨入专业VR全景创作者必须经历和掌握的。

相关文章:

VR全景HDR拍摄教程

什么是HDR? HDR可以用在哪里? 书面解释:HDR(高动态范围 High Dynamic Range)摄影,是摄影领域广泛使用的一种技术。 是不是有点懵? 我们来看一个实际的拍摄现场环境,你就懂了 我们…...

hive执行select count(1)返回0

背景: 做数据质量检核任务的时候,有些数据表有数据,直接查hive执行select count(1) from table返回的值一直是0 问题原因: hive通过select count(1)或者select count(*) 查询的是元数据库里面的rownum,如果数据表数据是通过load、…...

3D Gaussian splatting 协方差矩阵 球谐函数 简单理解

3D Gaussian splatting 是一种图形和视觉处理技术,常用于体积渲染、点云渲染和其他应用中,以便对数据进行平滑或重建。在这个上下文中,高斯分布(或高斯“splat”)用于表示单个数据点(如一个点云中的点&…...

代码随想录算法刷题训练营day27:LeetCode(39)组合总和、LeetCode(40)组合总和 II、LeetCode(131)分割回文串

代码随想录算法刷题训练营day27:LeetCode(39)组合总和、LeetCode(40)组合总和 II、LeetCode(131)分割回文串 LeetCode(39)组合总和 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;clas…...

docker 容器修改端口和目录映射

一、容器修改端口映射 一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p 8088:80 [image-name]…...

echarts鼠标事件

鼠标事件支持方法 ECharts 支持常规的鼠标事件类型,包括 ‘click’、 ‘dblclick’、 ‘mousedown’、 ‘mousemove’、 ‘mouseup’、 ‘mouseover’、 ‘mouseout’、 ‘globalout’、 ‘contextmenu’ 事件 简单实例 // 基于准备好的dom,初始化EChar…...

【北京迅为】《iTOP-3588开发板网络环境配置手册》第2章 电脑、开发板直连交换机或路由器

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…...

6.5 共享数据

本节介绍Android的四大组件之一ContentProvider的基本概念和常见用法:首先说明如何使用内容提供器封装内部数据的外部访问接口,然后阐述如何使用内容解析器通过外部接口操作内部数据,最后叙述如何利用内容解析器读写联系人信息,以…...

SpringBoot之Session新增、删除、获取配置与使用

SpringBoot之Session新增、删除、获取配置与使用 文章目录 SpringBoot之Session新增、删除、获取配置与使用1. SpringBoot版本2. 定义增删查Session的类3. 定义Session的监听器4. 使用 自定义根据sessionId进行session的新增、删除、获取操作 1. SpringBoot版本 <parent>…...

Hive UDF 札记

低版本的udf就不说了&#xff0c;太老了&#xff0c;说现在主流的。 1&#xff1a;initialize 方法的进一步理解&#xff1a; 在Apache Hive中&#xff0c;用户自定义函数&#xff08;UDF&#xff09;的initialize方法是一个可选的方法&#xff0c;它属于Hive UDF的生命周期…...

npm已经配置淘宝源仍然无法使用

使用npm命令安装Taro框架的时候&#xff0c;尽管已经设置淘宝源但是仍然无法下载&#xff0c;提示错误 >npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/cnpm failed, reason: certificate h…...

Qt5转Qt6笔记

背景 现在的主程序和扩展的dll库都是qt5环境下编译发布的。但是想以后用qt6。所以考虑是否能够在qt5中兼容qt6的动态链接库进行加载。于是...就开始吧 开始 2024-02-23 安装好qt6后&#xff0c;在vs2019中需要新增qt6版本的安装路径。目录在&#xff1a;扩展->QT VS Tools…...

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI图像缩放应用本方案的SDI纯verilog图像缩放视频拼接应用本方案的SDI HLS图像缩放视频拼接应用本方案的SDI视频编码动态字符叠加输出应用本方案的SDI视频编码多路视频融合视频叠加应用本方案的SDI视频…...

java 锁

在Java中,有多种类型的锁,用于处理多线程编程中的同步和并发问题。以下是Java中常见的锁类型:互斥同步锁(悲观锁) :Synchronized : Java中最基本的同步机制,它提供了一种简单且透明的方式来同步代码块或方法。Synchronized是基于进入和退出监视器对象(monitor)来实现方…...

该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改。

报错原因 在异步的时候&#xff0c;调用了其他异步&#xff0c;导致UI工程线程该变了数据源&#xff0c;所以只需要将线程变为原始的UI线程。 解决方案 await QueuedTask.Run(() > { Application.Current.Dispatcher.Invoke(() >{报错的代码&#xff0c;…...

Mybatis学习笔记:延迟加载

本文是自己的学习笔记&#xff0c;主要参考以下资料 - 马士兵教育 1、延迟加载2、开启延迟加载2.1、配置信息2.2、查询语法2.2.1、前置条件2.2.2、xml语法2.2.3、总结 1、延迟加载 延迟加载是用于优化一对多或者多对多的查询。 比如员工表和部门表&#xff0c;员工表left jo…...

蓝桥杯题练习:平地起高楼

题目要求 function convertToTree(regions, rootId "0") {// TODO: 在这里写入具体的实现逻辑// 将平铺的结构转化为树状结构&#xff0c;并将 rootId 下的所有子节点数组返回// 如果不存在 rootId 下的子节点&#xff0c;则返回一个空数组}module.exports convert…...

我愿意启动价值流

如前文Flow近佛&#xff0c;人生就是一个价值流。让价值流动起来&#xff0c;Get Things Flow是我们的方法论。然而&#xff0c;还欠上帝的一脚&#xff0c;让价值流启动起来。这个启动&#xff0c;就是我愿意。 我愿意的反面是被烦恼包裹、裹挟、包围、无法摆脱。乐莹离家前就…...

排序算法1:冒泡排序、快速排序、插入排序

排序算法&#xff1a;交换类排序&#xff0c;插入类排序、选择类排序、归并类排序 交换类排序&#xff1a;冒泡排序、快速排序 一、冒泡排序 #include <stdio.h> #include <stdlib.h> #include <time.h> typedef int ElemType; typedef struct{ElemType *e…...

Vant Weapp

Vant Weapp - 轻量、可靠的小程序 UI 组件库 van-radio name 是一个字符串&#xff0c;无法传对象的处理 以及 mpx 多层嵌套 for 循环处理 <viewwx:for"{{questionList}}"wx:for-item"question" // item 重命名wx:for-index"questionIndex"…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt&#xff0c;并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径&#xff0c;并创建logs目录&#xff08;若不存在&#xff09; 3.递归遍历目录data&#xff0c;输出所有.csv文件的路径…...