3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging )

通常,无论属于哪一类TMO,都有两个共同的步骤。 本节描述了大多数但不是全部TMO使用的通用例程。 第一步是从输入的HDR图像或帧中提取亮度信息。 这是因为TMO通常在亮度通道上工作,从而避免了颜色压缩。 第二步是恢复压缩图像中的颜色信息。 list3.1和list3.2中显示了这两个步骤的实现。

在list3.1的第一步中,检查输入图像img,看它是否由三个颜色通道组成。 然后,使用函数lum.m在文件夹ColorSpace下提取亮度通道。 请注意,对于本章将介绍的每个TMO,用于确定输出图像外观的可选输入参数imgOut,进行了验证。如果不存在,则将它们设置为其作者建议的默认值。

在list3.2的最后一步中,将文件夹Tmo / util中的ChangeLuminance.m应用于img,以删除旧的亮度L,然后用Ld替换它,以获得imgOut。 可选步骤是颜色校正。 许多TMO通过将公式(3.2)应用于最终输出来处理此问题。 但是,由于颜色外观可能会根据TMO的参数而有很大差异,因此省去了这一额外的过程。 list3.3中显示了ColorCorrection文件夹下的ColorCorrection.m函数,该函数以简单的方式将公式(3.2)应用于输入图像。 注意,校正值cc_s可以是每个像素校正的单通道图像。

本书中所有已实现的TMO都在[0,1]中产生线性色调映射值。 为了在显示器上正确显示色调映射的图像,需要应用监视器的反特性。 对于标准LCD和CRT显示器,一种简单的方法是通过调用文件夹Tmo中的GammaTMO.m函数来应用反伽马函数(通常使用γ= 2.2)或通过调用ConvertRGBtosRGB.m应用sRGB非线性函数。 在ColorSpace文件夹中。

代码演示

clc
clear
hdr=hdrread("Bottles_Small.hdr");
hdr_r=hdr(:,:,1);
hdr_g=hdr(:,:,2);
hdr_b=hdr(:,:,3);
%提取亮度信息
L=lum(hdr);
Lmax=max(L(:));
%颜色校正
cc_s=0.5;
imgout=zeros(size(hdr));
for i=1:size(hdr, 3)imgout(:,:,i) = ((hdr(:,:,i) ./ L).^cc_s) .* L;
end
RGBout=ConvertRGBtosRGB(imgout,0);
%如果像素值大于1,压缩到1,如果像素值小于0,压缩到0
for i=1:size(hdr,1)for j=1:size(hdr,2)for k=1:size(hdr,3)if(RGBout(i,j,k)>1)RGBout(i,j,k)=1;endif(RGBout(i,j,k)<0)RGBout(i,j,k)=1;endendend
end
imshow([hdr RGBout]);
function l = lum(img)
col = size(img, 3);switch colcase 1l = img;case 3l = 0.2126 * img(:,:,1) + 0.7152 * img(:,:,2) + 0.0722 * img(:,:,3);otherwisel = mean(img, 3); disp('Mean of channels was computed; the input image is not an RGB or luminance image!');
endend
function imgOut = ConvertRGBtosRGB(img, inverse)
a = 0.055;
imgOut = zeros(size(img));if(inverse == 0) %from linear RGB to sRGBgamma_inv = 1.0 / 2.4;imgOut(img <= 0.0031308) = 12.92 * img(img <= 0.0031308);imgOut(img >  0.0031308) = (1 + a) * (img(img > 0.0031308).^gamma_inv) - a;
endif(inverse == 1) %from sRGB to linear RGBgamma = 2.4;imgOut(img <= 0.04045) = img(img <= 0.04045) / 12.92;imgOut(img >  0.04045) = ((img(img > 0.04045) + a) / (1 + a)).^gamma;
endend

结果

3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging )相关推荐

  1. 3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO

    3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO Schlick [341]提出 ...

  2. 2.1.2 Capturing HDR Videos(Advanced High Dynamic Range Imaging )

    2.1.2 Capturing HDR Videos(Advanced High Dynamic Range Imaging ) 目录 2.1.2 Capturing HDR Videos(Advan ...

  3. 论文解读:Deep High Dynamic Range Imaging of Dynamic Scenes

    Deep High Dynamic Range Imaging of Dynamic Scenes Abstract 这篇文章介绍了一种在动态场景中,如何将不同曝光的图像进行融合从而得到高动态图像的方 ...

  4. Faster Read: Deep High Dynamic Range Imaging with Large Foreground Motions

    ECCV 2018, Hong Kong University of Science and Technology, Tencent Youtu,  U of Oxford 论文名称: Deep Hi ...

  5. 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR)

    1  HDR基本概念 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR),是一种表达超过了显示器所能表现的亮度范围的图像映射技术,已成为目前游戏应用不可或缺的 ...

  6. High Dynamic Range Imaging

    High Dynamic Range Imaging 一.背景介绍 ​ 今天,大多数数字图像和成像设备每通道使用8位,因此将设备的动态范围限制为两个数量级(实际上是256级),而人眼可以适应变化十个数 ...

  7. HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像

    HDR(High Dynamic RangeImaging)在摄影中指高动态范围成像.国内的教程基本语焉不详,找到一篇比较详尽的国外教程翻译出来,希望对大家有帮助.^_^ 原文地址:http://ph ...

  8. 【论文学习】UPHDR-GAN: Generative Adversarial Network forHigh Dynamic Range Imaging with Unpaired Data

    UPHDR-GAN:基于非配对数据的高动态范围成像生成对抗网络 摘要 introduction 主要贡献 proposed method 网络框图 网络详介 1.输入 2.生成器输出 3.生成器 4. ...

  9. Unity消息简易框架 Advanced C# messenger

    Unity消息简易框架 Advanced C# messenger Unity C# 消息机制  [转载 雨凇MOMO博客] https://www.xuanyusong.com/archives/2 ...

最新文章

  1. 前端面试知识点整理(二)
  2. linux 线程--内核线程、用户线程实现方法
  3. Ability的基本概念(2)
  4. ORACLE 11G DATA GUARD主从切换
  5. UDP和TCP协议包大小的计算-转
  6. linux sed 正则转义,Linux运维云升笔记 (一)正则表达式以及文档编辑器sed
  7. Redis(三):Redis基础知识与常用命令
  8. 五人合伙最佳股份分配_【干货要点】再谈“类直营”——百果园的店长合伙人...
  9. 01背包 (dp专题)
  10. leetcode Generate Parentheses python
  11. 计算机网络考研408计算机134分笔记!超级详细!23最新考纲
  12. DRF批量修改序列化器使用
  13. LUR 算法 原理(附带自己实现源码)
  14. 张量学习(1):张量的基本概念
  15. 巴菲特午餐终局谜题何时揭晓,中标者是不是孙宇晨?
  16. creator网页调试工具(ccc-devtools v3.0.1)
  17. 【Vue插件】Vue-amap:基于vue-cli2.0与高德地图的使用
  18. android 打开闪光灯,如何在Android中以编程方式打开前置闪光灯...
  19. 直流斩波电路---DC Chopper
  20. 深入浅出神经网络pdf,神经网络 pdf

热门文章

  1. c++语言打开文件对话框,C++采用openfilename打开文件对话框用法实例
  2. ios3怎么取消长按弹出菜单_ios13长按多功能怎么关闭-手机数据恢复精灵
  3. AdGuard推荐设置
  4. windows10新增本地账户
  5. Android传感器——传感器监听器及摇一摇案例
  6. chrome浏览器当鼠标碰到超链接的时候会窗口会抖动
  7. CAD完美转ArcGIS的操作方法技巧
  8. 指数多项式的Galois群计算
  9. python mp4 视频格式压缩
  10. EXCEL表格内部换行