Camera学习--光源

进入CV 领域,视频图像的成像,最前端的camera,camera的sensor 以及影响成像质量的光源,噪声等因素是绕不开的问题。

那么今天就从成像的光源说起。

标准光源(Standard Light Sources)是指模拟各种环境光线下的人造光源,让生产工厂或实验室非现场也能获得与这些特定环境下的光源基本一致的照明效果。标准光源通常安装在标准光源箱内,主要用于检测物品的颜色偏差,自动白平衡等校准需要用到各类标准光源。

众所周知,观察颜色离不开观察光源,没有光就没有色彩。物理学的知识告诉我们:可见光也是一种电磁波,它的波长范围是:3900nm-7600nm.(如下图所示)。靠近3900nm波长的
光是紫光.靠近7600nm波长的光是红光.低于3900nm的光叫紫外线,人眼一般看不见.?高于7600nm波长的光叫红外线,?人眼一般也看不见.

在可见光3900nm-7600nm之间,我们引入一个表示光的发光颜色的物理概念--色温.光源的色温是以光源发光时所显现的颜色与一个绝对黑体被高温燃烧时所显现的颜色相一致
时的燃烧温度来定义的,它的单位是绝对温度Kelvin『K』.K值越高,光所显现的颜色就愈趋向于白蓝色,即愈趋向于3900nm;K值越低,光所显现的颜色就愈趋向于黄红色,即愈趋
向于7600nm.如图

光源色温

光源有高、中、低三种色温,具体有D50,D65,D35,D75,A,F,TL84,TL83,965,CWF,U30 HOR(Horizon),UV等。

色温场景

  • 暖色光:暖色光的色温在3300K以下,暖色光与白炽灯相近,红光成分较多,能给人温暖、健康、舒适的感觉。适用于家庭、住宅、宿舍、宾馆等场所或温度较低的地方。
  • 冷白色光:又叫中性色,它的色温在3300K~5300K之间,中性色由于光线柔和,使人有愉快、舒适、安详的感觉。适用于商店、医院、办公室、饭店、餐厅、候车室等场所。
  • 冷色光:又叫日光色,它的色温在5300K以上,光源接近自然光,有明亮的感觉,使人精力集中。适用于办公室、会议室、教室、绘图室、设计室、图书馆的阅览室、展览橱窗等场所。

低色温光源

  • H:色温2300K,模拟水平日光(Horizon);
  • F:色温2700K,模拟家庭酒店暖色灯光、比色参考光源,夕阳光、黃光源、落日黃,多为英式灯箱使用;
  • A:色温2856K,美式厨窗射灯,功率60W,多为美式灯箱使用
  • WF:色温2500-3000K,暖荧光灯(Warm Fluorescent),通用室内荧光灯;
  • Inca灯:色温2856K,模拟美式展示厅射灯,特殊钨丝灯;
  • U30:色温3000K,模拟美国暖白商店光源(Warm White Fluorescent),功率20W;
  • TL83:色温3000K,欧洲标准暖白商店光源 (Warm White ),功率18W;
  • T:色温2600-3200K,钨丝灯(Tungsten)(40W 2600K,100W 2850K);
  • U35:色温3500K,模拟指定的商店灯光光源;

中色温光源

  • CWF:色温4150K,模拟美国冷白商店光源(Cold White Fluorescent),功率20W;
  • TL84:色温4000K(3750K),模拟欧洲、日本、中国商店灯光
  • F:同TL84光源,荧光灯(Fluorescent);

高色温光源

  • D为Daylight,日光,色温5200K;
  • S:色温7000K,阴影,Shade;
  • D50:色温5000K,模拟太阳光
  • D65:色温6500K,国际标准人工日光(Artificial Daylight),模拟蓝天日光
  • D75:色温7500K,模拟北方平均太阳光,同S
    DF:同D65,Daylight Fluorescent;
    DNP:色温5100K,透射式灯箱;

其他光源

  • UV:波长365nm,紫外灯光源(Ultra-Violet),功率20W

原文地址:https://www.cnblogs.com/michaelcjl/p/12044235.html

时间: 2024-08-03 03:03:55

Camera学习--光源的相关文章

android camera 学习

总体介绍 Android Camera框架从整体上看是一个client/service架构.有两个进程,一个是client进程,可以看成AP端 ,主要包括Java代码和一些native层的c/c++代码:另一个是service进程,属于服务端,是native c/c++代码, 主要负责和linux kernel中的camera driver交互,搜集linux kernel中driver层传上来的数据,并交给显示系统(surface)显示.client 和 service 进程通过Binder机

sc7731 Android 5.1 Camera 学习之二 framework 到 HAL接口整理

前面已经分析过,Client端发起远程调用,而实际完成处理任务的,是Server端的 CameraClient 实例.远程client 和 server是两个不同的进程,它们使用binder作为通信工具,完成进程间的通信. 注:CameraClient定义如下: 1 class CameraClient : public CameraService::Client 2 { 3 //... 4 }; App需要对Camera进行各种操作,framework-java 和framework-c++

高通camera学习笔记三

media controller线程 1.概述    MCT线程是camera新架构的引擎部分,负责对管道的监控,由此来完成一个camera设备的控制运转.它运行在daemon进程空间,由MSM_CAMERA_NEW_SESSION事件来开启,具体开启函数为mct_controller_new(). 2.mct_controller_new()函数    此函数创建一个新的MCT引擎,这将对应一个事务的pipeline.我们知道上层可以创建多个事务,每个对应一个camera,也对应自己的MCT及

Camera学习,实现简单的相机App得到demo

1.首先得加入权限,其中清单文件如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mycamera" android:versionCode="1" android:versi

高通camera学习笔记(一)

高通新的camera驱动架构设计发生了一些变化,借用互联网上常用的一种结构,大致的原理如此:将camera的所有功能划分为不同的模块,让模块自己来决定自己的事情(高内聚,低耦合),模块需要有统一的接口和格式.模块中有端口,通过端口把模块连接起来,又把模块挂在总线上.每一个端口的连接就是一个流,把这些流用pipeline来管理.每次启动一个camera就创建一个会话,由这个会话来管理此camera的一切事物.对于每一个会话,模块是共享的,它可以是camera的硬件资源也可以是其它资源(如一些软件算

高通camera学习笔记二

高通camera daemon进程 1.概述 高通在Android的camera架构中,依旧沿用了其传统的方式,将其自身的一些处理放在一个daemon进程中.这部分内容出于应用于driver之间,是为了保护自身及硬件厂商的利益而专门弄出来的一个东东.其它各家平台也采用类似的方式将这部分的处理放在HAL层处理. 2.进程的入口    做为一个单独的进程,那肯定是有其main函数入口的.在vendor\qcom\proprietary\mm-camera\mm-camera2\server-imag

高通camera学习笔记五(actuator驱动参数解析)

1.概述 actuator驱动信息文件是指vendor目录下的$ActuatorName_actuator.h文件(如gigaset_actuator.h).此信息文件就是一个actuator_driver_ctrl_t结构体.包括actuator_params与actuator_tuned_params两部分,即driver与tunning两部分.文档以目前最主流的VCM为例进行参数的介绍. 2.driver部分信息——actuator_params act_type: actuator类型,

高通camera学习笔记四

sensor模块 1.概述 sensor模块是众多模块中的一个,主要是由模组的各个硬件模块组成,包括sensor.Flash.Af.EEprom.OIS.CSI等.这个模块主要描述了模组硬件的一些工作原理及部分驱动相关部分. 2.module_sensor_init()函数 在前面讲到的server process中提到,服务进程开始后会初始化各个模块,其中就包括sensor模块,sensor初始化入口函数即为module_sensor_init(...).这个函数将创建sensor模块并返回其

Camera学习,调用系统摄像机。

1.android很多应用会调用照相机功能,比如拍照上传用户图像等等,不多说,下面上传简单的demo: public class MainActivity extends Activity {//ActionBarActivity private Uri uriSavedImage; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save