有道理…

“紫边”问题的根源

(一)问题的出现使用数码相机或者数码摄像机,大家可能常常会发现,在拍摄高反差大背光物体的照片中,物体边缘出现了刺眼的“紫边”(Purple Fringing) ,这一点,几乎绝大部分DC和DV都存在此问题,无一幸免,差别只是程度问题,有的格外严重有的程度稍轻。这个问题困扰了大家很久。

(二)争论和解释这个困扰大家N长时间的问题,想解决它,就首先得弄清楚问题产生的根源到底在哪儿,罪魁祸首到底是谁?百花齐放百家争鸣,各种各样的解释出现了,有的说是镜头质量问题,有的说是光学色散问题,有的说是软件算法问题,各持一词,莫衷一是,每一种说法,听起来都有点道理,但又不能完美的解释所有的现象和问题。你说是镜头问题吧,那传统银盐胶卷相机上却从来没有出现此类问题,哪怕是100多元塑料镜头的Tom相机;你说是光学色散问题吧,色散的表现又不是这个样子的,很勉强;你说是软件算法问题吧,有点道理,可似乎不是根本原因,算法问题不至于这么难以解决。开始,我也很迷惑,当时,在dpreivew(可以算是数码摄影器材第一权威网站了吧)上看到了Phil Asky对紫边的定义和解释——Chromatic Aberration(色差),乍一看很有道理,可是问题是为什么只有DC。DV才有这个问题,Phil的解释没能解答这个问题。慢慢地,随着对DC、DV成像原理的深入了解,尤其是PMA2002上Foveon公司的X3 CMOS技术的提示,我发现Phil的解释可以说是误入歧途。Chromatic Aberration(色差),有着很清晰的定义,就是镜头光学上的误差,原理上简单说,镜头成像因为光或者其他辐射的波长不同而变化的一种光学缺陷,色差有两种,一种是Axial Chromatic Aberration,另一种是Transverse Chromatic Aberration,都会导致白光“分散”成光斑或者彩虹状的光边。具体体现在照片上,就是影像的边缘原本是单纯白色,因为色差而变成RGB三原色不能重叠在同一线。从现象上来说,Chromatic Aberration可以解释紫边问题,但是Chromatic Aberration说不能解释的是,为何采用同样的镜头,DC/DV和传统银盐相机相比会有截然不同地表现。

(三)抓出“紫边”的真凶其实,DC/DV上出现的紫边现象,正确的理解,根源原因有如下两点:1. 衍射(Diffraction)2. Mosaic遮罩滤镜式CCD的彩色插值这两点,衍射是导火索,真凶是CCD!就这两点挨个分析:衍射(Diffraction),学过大学普通物理-光学的都明白,一种光波的基本特性,其理论基础是——光线是一种波,有一定的波长。当光线通过一些小孔或者窄缝时,在物体的边缘出现的光波分散现象。由此可得,高反差大背光景物,当强光通过其边缘时,就已经产生了衍射现象(颜色化边),然后才会经过镜头成像。所以,把出现颜色花边归罪于镜头品质是错误的。好了,导火索出来了,同样的光学衍射,为什么偏偏在DC/DV上变成了刺眼的紫边呢?其实,与其叫做紫边,科学的来说,应该叫做洋红边,HEhe,通过Photoshop 中对“紫边”的色彩分析,可以发现,大部分紫边的主要构成就是洋红(Magenta,CMYK四色之一),这些紫边(抑或洋红边)到底如何出现的呢?——紫边,是由于高反差大背光静物边缘,产生光学衍射,加上DC/DV 的CCD在色彩插值时的固有缺陷造成!分析现在现在的CCD(除了Foveon X3 CMOS)都是Mosaic遮罩式,CCD本身不感知色彩,透过CCD每个象素前面的RGB(或者CYGM)滤镜,一个象素只测R,G,B其中一种原色的密度,再由相机内部软件进行彩色化插值处理,利用周边象素信息“猜测”插值出其他颜色。(详细的CCD成像原理不是这篇文章的重点,感兴趣的可以参考其他专业文章论述),注意!产生紫边的关键点就在这个彩色插值过程中!这个插值过程并不可能完全反映真实的色彩分布(就紫边而言就是那部分边缘产生的衍射部分),相机里的算法只能通过周边的象素“推测”出真正的全色分布,这也造成了边缘不清晰,色彩干扰等一系列问题,也产生了刺眼的紫边。也许你会问了,那为什么色彩“推测”式插值后,产生的不是绿边,黄边,黑边,而是紫边呢?根据对Mosaic CCD的GRGB 滤镜的分析,滤镜的排列方式一般都是Bayer Battern,R G R G R G R GG B G B G B G B R G R G R G R GG B G B G B G B R G R G R G R G可以看出,而由于彩色插值“推测式”算法,R+B时最容易推测出来的——就是Magenta洋红,就是大部分紫边的主色;另外,还有一大堆的G,B什么地组合,实际检验高反差大背光景物照片发现,除了紫边,还有兰边,还有同一个衍射边缘,同时出现蓝和洋红等色边……按照我的分析,应该是各个相机的具体插值算法差异。这一点可以在Phil的网站上各个相机的评测中,都有专门对紫边的测试中看出,没有一个是没有一长色边的,有的是紫边,改进了,就成了肉眼不恨敏感的兰边什么的……事实上,从DV上也可以看出,单CCD DV,出现紫边的几率不比DC低,但是高端的3CCD DV,由于RGB三色分色处理,无需色彩插值,因此,3CCD DV上,就压根没了紫边问题。
(四)结论从上面的分析可以得出,紫边问题完全是Mosaic CCD在处理衍射边缘时彩色插值算法的固有缺陷造成。在高背光物体边缘,物体边缘的光线会产生衍射,在胶片上反映为边缘质素降低而在Mosaic CCD成像的DC、DV上,更会因为“猜测”性插值的简单粗暴化特性出现洋红或者蓝色的异常色边,肉眼整体看来,效果就是紫边了。 So,我们可以得出结论——不根本改变目前的Mosaic 遮罩式CCD,“紫边”的问题永远不可能从根本上解决,但是,可以通过改进插值算法,使"紫边"显现起来让肉眼不那么敏感(这就是各个相机厂家的功力了,这也可以说明为什么Canon G1和G2同样用一款镜头,而G1紫边较严重,G2就有很大改进几乎看不出来(变成了浅蓝色、灰色边)——软件算法改进了嘛)
(五)规避和解决根本解决在DC/DV上的紫边问题,就要革单Mosaic CCD的命——要么就用3CCD分别处理,要么……欣慰的是,Foveon的X3 CMOS,革命性的彻底改变了传统的CCD的Mosaic遮罩方式,也从根源上使得紫边问题永远不会发生(因为X3 CMOS每一个象素色彩都是真实感应而不存在一星半点的插值和“猜测”)。就目前的DC/DV而言,没有治本的良方,但可以治标,拍摄时就注意避免高反差大背光景物,要不就闪光灯什么地补点光降低些反差。要么就后期通过Photoshop,针对紫边中的洋红色进行替换处理。

高光反差情况下出现紫边的成因分析相关推荐

  1. 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0(设计1111序列检测电路)

    题目: 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0. 分析: 从题目的表述中, 我们获取到信息, 连续出现4个或4个以上的1时, 输出信 ...

  2. notepad 没有plugin manager_如何在没有反光镜的情况下在户外拍摄人物?

    有时外出旅行,当到达该地点,呼吸新鲜空气,欣赏周围的美景,正在与朋友见面,太阳从上方直射,在拍摄时突然想起没有带反光镜的问题,这完全是正常现象,这里有一些技巧可以帮助你拍摄漂亮的无反射镜照片! 什么是 ...

  3. 【Java】JDK 7 HashMap 头插法在并发情况下的成环问题

    CONTENT 问题描述 成因详解 总结 Reference 问题描述 JDK 7 的 HashMap 解决冲突用的是拉链法,在拉链的时候用的是头插,每次在链表的头部插入新元素.resize() 的时 ...

  4. java中如何把时间封装成类,java-如何在不使用任何不推荐使用的类的情况下将日期从一种格式转换为另一种格式的日期对象?...

    java-如何在不使用任何不推荐使用的类的情况下将日期从一种格式转换为另一种格式的日期对象? 我想将date1格式的日期转换为date2格式的日期对象. SimpleDateFormat simple ...

  5. 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

    注意!!!(修改于2020年7月18日) 在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {&quo ...

  6. c# .netframwork 4.0 调用 2.0时报错 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...

    "System.IO.FileLoadException"类型的未经处理的异常在 XXX.dll 中发生 其他信息: 混合模式程序集是针对"v2.0.50727" ...

  7. c#中什么情况下用(int)什么情况下用Convert.ToInt32

    1.c#中什么情况下用(int)什么情况下用Convert.ToInt32   ? 比如说有一个string型的3 ,要给它转换成int型的是用(int)3 ,还是用Convert.ToInt32(3 ...

  8. 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论

    作者:Scott Mitchell [概述] WEB开发自从有了基于脚本的WEB编程技术(如ASP)以来,经历了一个漫长的过程.通过使用微软的ASP.Net技术,传统的ASP中大量的.单调乏味的.重复 ...

  9. nodemanager不能正常关闭_在什么情况下不能使用罗茨风机及如何正确关闭罗茨风机...

    锦工风机给大家介绍一下在什么情况下不能使用罗茨风机及如何正确关闭罗茨风机在什么情况下不能使用罗茨风机: 1.机器故障 这一点其实不用说,因为你知道,设备是存在故障确实不能使用,但会有人感觉有轻微的故障 ...

  10. 在特定情况下的简单SSO实现方案

    最近需要实现类似单点登录的功能.情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不需要再登 ...

最新文章

  1. CSDN:借助工具对【本博客访问来源】进行数据图表可视化(网友主要来自美国、新加坡、日本、英德加澳等)——记录数据来源截止日期20200718晚上22点
  2. 【干货】硅谷创业教父:如何获得创业idea
  3. 【电子信息复试】考研复试常考问题——组成原理
  4. Python实现图像直方图均衡化算法
  5. 特斯拉电动皮卡不太香:预订表现不及3年前的Model 3
  6. sh linux 一组命令,linux中的组命令和子shell
  7. 山西财经大学的计算机科学与技术怎么样,山西财经大学计算机科学与技术专业2017年在福建理科高考录取最低分数线...
  8. GetLastError错误码大全
  9. sql注入工具的使用
  10. Linux下mysql数据恢复
  11. java yml_Spring Boot使用yml格式进行配置的方法
  12. windows datacenter 2012 R2 密钥
  13. 商品进销存系统c语言课设报告,商品进销存管理系统_C语言-课程设计(附报告论文).doc...
  14. python输入一段英文_编写程序,用户输入一段英文,然后输出这段英文中所有长度为 3 个字母的单词。_学小易找答案...
  15. 主流压缩软件压缩率实测(图文详解,揭秘你不知道的)
  16. APP逆向案例之(一)过 app 更新提示
  17. 推荐几本学习Java的教材
  18. 如何用代码画出一幅好看的画
  19. 你的项目无人问津? 找块闻热点快讯就对了
  20. linux运维cadn,Aprende an elaborar un amasamiento tГЎntrico citaciГіn

热门文章

  1. So easy 将程序部署到服务器
  2. DM05-奇异点处理总结
  3. 蚌埠住了,让我虎躯一震的代码!
  4. 十一打卡推荐 | 在北京798 UCCA,百度AI的这场「秀」把我看high了
  5. delphi去掉字段前后的引号_delphi 单引号在字符串中使用方法
  6. log4cxx linux 使用,log4cxx在Linux下的编译使用
  7. 让ros机器人行走、建图、路径规划、定位和导航
  8. EFM32 LG232系列单片机干货之LEUART
  9. count在python中是什么意思_python count返回什么
  10. linux重置ilo,重启HPE管理芯片ILO5的5种方法(Reset ilo)