白平衡

转自:http://forums.nphoto.net/thread/2007-12/01/ff8080811682b00901169438cf6144ae.shtml

 

 

 

白平衡并不是数码摄影特有的东西,胶片也有白平衡,只不过胶片的白平衡是预设的,如钨丝灯型胶卷在钨丝灯光源的照射下拍出的照片就可以有正确的白平衡。换句话说,在胶片时代,摄影师根据光源的不同而选择不同的胶片就是在“调节”白平衡了。但数码技术允许我们后期几乎不受限制地的白平衡,无疑它要灵活得多,给摄影师提供了更多的创作手段。

白平衡的本质是让白色的物体在任何颜色的光源下都显示为白色。这一点对人眼来说很容易办到,因为人眼有自适应的能力,只要光源的色彩不超出一定的限度,就可以自动还原白色。但相机就不同了,无论是图像传感器还是胶卷都会记录光源的颜色,白色的物体就会带上光源的颜色,白平衡所要做的就是把这个偏色去掉。

自动白平衡是一个很复杂的问题,目前还没有一个万能的方法可以解决所有场景的白平衡问题。有些统计数据表明大部分场景的颜色平均值是中性的,即没有颜色【见注一】。一种自动白平衡算法就是依据这个统计数据设计的,它计算出图像颜色的均值,再算出均值和同等亮度的中性灰的差别,这个差别就是偏色值,对每个像素的颜色值用这个偏色值校正就得到正确的自动白平衡了。网上有一个开源的RAW处理软件——dcraw——就是用这种方法自动校正白平衡的(要知道dcraw有多牛,你只要知道早期很多商业软件、包括Adobe Camera Raw都是基于它的源代码的就够了)。

自动白平衡的问题是有时会给出同拍摄者希望相反的结果,比如拍摄一个金色阳光的早晨的场景,自动白平衡可能会算出光线偏红黄而减少照片中的红黄,结果我们美丽的朝阳变成了苍白的阴天。同样,如果一个场景中某种颜色占了很大的比重,如大面积的緑树,相机的自动白平衡算法也有可能被糊弄从而产生不可预知的结果。

问题的根本是我们有时候想保留光源的色彩(如日落、日出),有时候则想去掉光源的色彩,再牛的软件也不知道拍摄者的意图是什么,因此所有的数码单反都允许用户预设白平衡光源,如晴天、多云、日光灯等,拍摄者只要根据不同的光源预设不同的白平衡值就可以得到很好的色彩还原了。对于户外的风光摄影,很多人都喜欢偏暖的色调。胶片时代的摄影师通常用一些暖色的滤镜(如红、黄滤镜等)来解决这个问题,在数码时代有些摄影师则建议把白平衡一直设置在多云上,实际上我的很多风光片都是这么设置的。

预设白平衡可以较好地还原色彩,可以满足我们的大多数要求。我们有时候希望更准确的色彩还原,不同厂商的预设白平衡也可能并不相同,,这时候就需要手动调整白平衡了。手动调整白平衡的原理很简单,我们只要告诉相机或图像处理软件图片中的某个物体是中性的就可以了,软件会根据实际拍摄的物体的颜色值自动地计算出光源的颜色,进而调整整个画面的色彩。一种常见的手动调整白平衡方法是在拍摄的场景中放置一块白卡或灰卡,后期告诉软件它是中性的。

有人可能会问,我们应该用白卡还是灰卡?理论上两者都可以,只要白卡是真正的中性色,灰卡是真正的中性灰。实际使用时,很多市面上的灰卡(如柯达灰卡)并不是中性灰的,这是因为这些灰卡是给测光用的,只要保证它们反射18%的入射光就行了,而不用考虑它们是否是真正的中性灰。目前市面上有售专门为数码白平衡设计的白卡,它们是真正的中性的,如果需要的话,是个不错的选择。我推荐使用白卡手动调整白平衡的另外一个理由是白色的曝光值高(假设拍摄者能正确地曝光),曝光值高的像素有更好的信号和噪声的比例,因而得到的感光数据能更好地用来测试白平衡。

说到这里,是不是我们解决了所有的白平衡问题? Not so fast!最后我要提一下的是白板法仅适用于光照均匀的情形。设想一下,一位拍摄者站在阴影底下拍摄一座阳光照射的大山,这时白板法显然不行,因为拍摄者和拍摄物所处的光源不一样。在这种情况下,没有什么好的机械的手动白平衡调整方法,只有靠记忆后期调整光源的色温了。

【注一】在色彩科学里,中性色是指没有其它颜色,而只有灰色、白色或黑色的颜色。在计算机里面,红(R)、绿(G)、蓝(B)三个值相等就是中性色,白色的(R,G,B)是(255,255,255),是一种中性色;黑色是(0,0,0),也是一种中性色。 不幸的是,我们常常看到中性灰的提法,似乎白和黑不是中性色,这是不对的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
白平衡是指通过调整图像中的色温和色调,使白色物体在图像中呈现出真实的白色。不同光源的性质会使图像呈现不同的色彩倾向,而相机只会直接记录呈现在它面前的色彩。因此,当图像中的白平衡被破坏时,图像的色调可能会偏暖或偏冷。在Python中,我们可以通过调节图像的整体强度信息来实现白平衡。一种常见的方法是使用OpenCV库中的addWeighted函数来对图像进行处理。具体代码如下: import cv2 import numpy as np # 读取输入图像 img = cv2.imread("input.jpg") # 创建一个与输入图像大小相同的空白图像 img2 = np.zeros(img.shape, img.dtype) # 调整图像的亮度和对比度以实现白平衡 brightness = cv2.addWeighted(img, 1, img2, 2, -40) # 将处理后的图像保存到输出路径 cv2.imwrite("output.jpg", brightness) 以上代码将输入图像进行白平衡处理,并保存到输出路径中。你可以根据自己的需要修改输入和输出的路径。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [python实现图像的白平衡,破坏图像的白平衡(冷、暖)和调节图像的亮度](https://blog.csdn.net/weixin_39853245/article/details/101199768)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值