文档章节

HDR阴影高光图像增强

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:45
字数 667
阅读 12
收藏 0

1. 技术背景

         HDR图像处理的技术本质上是对阴影,高光的细节增强。即图像太暗或者太亮的部分,其细节丢失的比较明显,HDR图像处理就是对暗部和高亮部分的细节进行恢复的过程。

        HDR的处理思路是这样的。首先,用户至少拍摄3张不同曝光量下的照片。分别对应低曝光,正常曝光和高曝光量。对于低曝光拍摄的图片,场景中比较亮的部分细节会比较突出,而其他部分则细节丢失比较严重。而对于高曝光量,则场景中较暗的部分被凸显出来,而其它部分曝光过度造成细节丢失。正常曝光水平则是丢失暗部细节和高亮的部分。

       值得一提的是HDR相机拍出来的图片,其每一个像素的分量并不是8位的,而是大于8位的。然而大多数显示设备目前只能显示每一个分量为8位的位图。如何把这3张不同曝光量水平的图片合成一张图片,以方便显示设备显示,这就是HDR色调映射的关键步骤。

      由此可见,对于场景光照不均的场合特别适合HDR效果,而正常光照下,其效果并不太明显。

      Photoshop提供的阴影高光工具可以一定程度上增强阴影高光的细节,但会产生噪点和色彩失真,尤其是在多次处理之后。iOS设备本身已经具备HDR功能,但处理时间很长,这主要是因为HDR算法复杂,在嵌入式设备上没法进行视频图像的实时处理。


2. 新的实现思路

   类似于数字音频中的均衡器原理,通过对不同波段局部光照量的分析,分段映射不同局部光照量到原始图片上,实现了一种简单高效的阴影高光细节增强算法。而其中局部光照量的分析使用积分图可以快速计算。该算法只需要一张照片就可以处理,完全满足视频图像处理的需要,时间复杂度为O(1)。优化后的算法只占用一帧灰度图像的缓存空间,在iPod4设备上对于640x480的图片可以达到20FPS以上。


3. 图像处理结果














测试图片来源于网络,其中最后一张图片是连续两次增强的结果。




本文转载自:http://www.cnblogs.com/celerychen/archive/2013/05/15/3588206.html

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
Quartz/UIKit 绘画工具箱--XFCrystalKit

Quartz / UIKit 绘画工具箱,汇集常用几何和Context操作方法、图像效果处理、路径绘图、多变形状、渐变填充、3D内外阴影高光渲染、高斯模糊、动画效果及属性文本绘制。 安装 1、使用CocoaPo...

yizzuide
2016/09/05
307
0
神奇的图像处理算法

几周前,我介绍了相似图片搜索。 这是利用数学算法,进行高难度图像处理的一个例子。事实上,图像处理的数学算法,已经发展到令人叹为观止的地步。 Scriptol列出了几种神奇的图像处理算法,让...

阮一峰
2011/08/13
0
0
Shader笔记(高光编程+Unity内置函数)

高光原理:光线经物体的反射后的光线与视线夹角越小,高光越强,90度时,高光不存在。 用角度1计算高光: Shader"Lesson/SpecDiffuse"{Properties{ _ValveIndex("ValveIndex",Range(0.0,1.0)...

vermouthstx
04/11
0
0
Unity游戏画面品质增强,shader和贴图

参考文章:https://simonschreibt.de/game-art-tricks/ 游戏代码:http://git.oschina.net/liyonghelpme/unityRpg 如何增强普通场景的画面品质?通过对比类似风格游戏画面,来进行优化。 例如...

李勇2
2016/05/24
334
0
photoshop学习入门:选择和处理

昨天花了一天时间看了李涛的视频《高手之路》入门的24集,累得连写工作日报的力气都没了,19点就睡。今天4点起来,补一下记录。 photoshop是个位图处理工具(别的花里胡哨的功能忽略)—— ...

祁达方
2015/12/18
65
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

谷歌 Fuchsia 上手体验,将取代Android/win10

在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重,在平板以及大屏幕设备上表现糟糕,...

linux-tao
28分钟前
1
0
List、Array与ArrayList

数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1"; 但是数组...

shimmerkaiye
30分钟前
0
0
Linux 的Lnmp环境下为mysql添加环境变量

一.问题 在Linux 安装完Lnmp 环境后 , 连接Mysql 告诉没有这条命令 mysql -uroot -p 命令失效 因为是源码安装的,所以会出现这样的的原因 。集成环境是不会出现的。 其实很简单,只需要给m...

15834278076
32分钟前
3
0
apolloxlua include函数

include函数不是单独使用的函数, 他并不是标准库的一部分, 你可以使用include函数将某个后缀为 .aop的文档包含到你的文档流中。 因为include是单独处理流, 所以不会在主处理流程中有所表示...

钟元OSS
36分钟前
0
0
【转载分享】做一名较真的工程师

近些年与我共事过的同事,一定知道我至今仍有一个较真的性格。我会:指出同事所写代码的不当命名问题(并帮助改进);指出同事所写文档中的逻辑混乱问题(并辅以修订);指出同事所写PPT中乱...

HellerZhang
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部