相机测量环境光照度和发光体亮度的推导
m24h2022/07/17原创 物理 IP:上海

假设当前有某光照度的环境光照射在一个具有某反射率的物体上,那么用相机拍照,它的像素值是多少,取其中一小块某面积的微元来计算 :

这块微元反射的光通量=环境光照度*反射率*微元面积

这个反射的光通量实际上不可能在整个立体角上无差别乱射,受到漫反射/镜面反射比率和余弦定律的影响,也受到镜头距离和通透率等实际很多因素的影响,这里就忽略一堆东西吧,比如认为光线正照物体(对于无规则的环境光来说也难找入射角),认为镜头正对微元(即使倾斜,成像的缩小和余弦定律也正好抵消),接着认为微元反射的光在2π立体角上无差别发射 (背面不可能有),最多再加个系数叫做"受光系数"。

那么镜头假如够远够小 :

通过镜头的光通量=这块微元反射的光通量*受光系数*镜头面积/(2π*物距^2)   ....物距就是微元离开镜头的距离。

落到胶片或者感光元件上的光照度是:

感光元件上的光照度=通过镜头的光通量/微元成像面积

代入推导得:

感光元件上的光照度=环境光照度*反射率*微元面积*受光系数*镜头面积/(2π*物距^2) /[微元面积*(像距/物距)^2]

感光元件上的光照度=环境光照度*反射率*受光系数*π*镜头直径^2/8/[(像距)^2]

感光元件上的光照度=环境光照度*反射率*受光系数/8*光圈^2

曝光量=环境光照度*反射率*受光系数*曝光时间/8*光圈^2

这里要注意,如果距离物体比较近,要考虑成像光圈和光通量光圈的区别,尼康会给出光通量光圈而其他品牌未必,反正这里先不考虑微距摄影,就直接用了,此外,这里的光圈,不是F2.8之类,记住光圈其实是倒数,比如F/2.8。

然后就是考虑怎么引入感光度(ISO)来得到曝光量和像素值之间的关系,遗憾的是这个ISO的定义相当经验化,有胶片ISO,数码ISO(SAT),SOS,EI,REI等各种指标,各厂商估计也会暗搓搓地搞自己的特色,所以不能指望太精确,应该说,即使会相差一倍都不要觉得奇怪...不过,可以找个光度计给自己使用的相机标定一下,会对结果精度有大幅改进。

ISO的定义其实相当简单,都是在某个特定成像输出数码亮点/银盐密度值作为基准点,规定感光度*曝光量的值,不过对于胶片就复杂了,胶片成像和曝光量不是线性关系,基准点定义也特别难搞,正片/负片/黑白/彩色都不一样,不过胶片机已经变成历史了,数码机比较简单,大家公认的基准点有两种,饱和点和中性灰点 (但是别忘了,厂商不可能直接使用这两个标准的,肯定搞特色的)。

ISO(SAT)定义:输出饱和为1时,感光度*曝光量=78 (ISO:12232-2006,这个标准按ISO,2721标定的测光系统控制,141%反射率的东西才使得感光元件饱和,余量太大)

SOS定义:输出为中性灰0.182时,感光度*曝光量=10 (日本CIPA标准,显然这个更亮更讨喜)

不管哪种标准,看起来都是可以加一个感光校正系数来解决的,然后似乎大多数厂商都倾向更亮更讨喜虽然有过曝可能的SOS,比如佳能曾经用过ISO(SAT)*0.75,就接近SOS了,所以我选SOS。

所以:

像素值=(感光校正系数*感光度*曝光量/10*0.182)^(1/2.2)    ....sRGB空间,结果归一化

代入得:

像素值=(感光校正系数*感光度*环境光照度*反射率*受光系数*曝光时间*0.002275*光圈^2)^(1/2.2)

反过来说:

环境光照度=(像素值^2.2)/0.002275/光圈^2/感光度/反射率/曝光时间/感光校正系数/受光系数

这样,就可以用相机测量环境光照度了,以上也均为国际单位,出来的是lux。

如果更粗略点,使用点测光(使得点测目标曝光成18灰),得到光圈快门ISO,忽略两个校正用的系数,可以简单地算出:

环境光照度=80/光圈^2/感光度/快门/反射率

比如我现在,使用相机对室外白纸(反射率认为90%吧),点测光,ISO100,光圈F/5.6,快门1/125,计算出来光照度是3484lux,用lux表实测是3300左右,算很接近了,或许以后只需要结果加个因子0.95就可以了。

此外测光表测不了发光物体的亮度(或者很麻烦也需要许多辅助测量和计算,对微光不够灵敏),但是相机可以,这里是类似的推导,假设发光体中有个微元表面:

通过镜头的光通量=微元亮度*微元面积*受光系数*镜头面积/物距^2

感光元件上的光照度=微元亮度*微元面积*受光系数*镜头面积/物距^2/[微元面积*(像距/物距)^2]

感光元件上的光照度=微元亮度*受光系数*π*光圈^2/4

曝光量=微元亮度*受光系数*π*光圈^2*曝光时间/4

像素值=(感光校正系数*感光度*微元亮度*受光系数*光圈^2*曝光时间*0.01429)^(1/2.2)

微元亮度=(像素值^2.2)/0.01429/感光度/感光校正系数/受光系数/光圈^2/曝光时间

如果使用点测得到ISO,快门和光圈,忽略各校正系数,可以简单计算为:

微元亮度=12.74/感光度/光圈^2/快门

我用相机对云层点测,ISO100,光圈F/8,快门1/800,计算出来云层亮度有6523尼特,对显示屏白屏点测,ISO100,光圈F/4,快门1/100,计算出来显示屏亮度有204尼特,只是都没有其他测量手段参照对比。

以上对不想买lux表,但是关心环境照度是否对眼睛友好,或者关心自己的显示屏亮度有没有达标,又恰好有相机的朋友,可能有所帮助。

...........................

虽然我不信有人去真的看文章中逗号和句号(我真的想尽办法才打出。而不是.)的区别,但是还是好不容易地按要求加了标点,不过因为我在分享应用而不是刊印学术理论,而且自己也喜欢保存为最简单的txt文件存放(就连RFC建议都是txt的),所以latex还是算了,尤其要把一堆易懂的中文名词非要找个拉丁希腊字母替代进简单的乘除式子然后在使用的时候再一一查找它们代替的含义更是太过麻烦。

[修改于 2年5个月前 - 2022/07/17 18:06:32]

来自:数理化 / 物理
0
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
m24h
进士 学者 机友
文章
54
回复
904
学术分
1
2020/01/22注册,5时5分前活动

个人开源项目: XXXXXXXXXXXXXX

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}