ISP算法简述-BLC

Black Level Calibration, 黑电平矫正

现象

1)在纯黑条件下拍张图,你会发现像素值不为0

2)或者你发现图像整体偏色

这些问题可能是黑电平导致的。

原因

存在黑电平的原因有2个:

1)sensor的电路本身存在暗电流。暗电流主要产生在光电信号转换过程中,光电二极管受温度,电压稳定性等因素的干扰,导致全黑状态下输出电平不一定稳定为0。
2)A/D转换器的精度无法将电压值很小的一部分转换出来,这会导致暗部细节丢失。因此人为的给模拟信号加一个固定的offset,使整体信号放大,有效的保留了暗部细节。当然这也会导致亮部溢出,损失亮部细节。而人眼特性是对暗部细节更加敏感,因此优先保证暗部细节。

BLC就是为了去除上述的暗电流和offset,一般放在ISP的前端。

BLC若处理的不好,会导致图像偏色,因为黑电平影响了RGB之间正常的比例关系:

扣少了会导致图像偏紫,对比度降低
扣多了会导致图像偏率,动态范围降低

image

算法

矫正分为2部分:

1)sensor端的矫正:一般采用OB区矫正法
2)isp端矫正:由于sensor端已完成了最复杂的矫正,这部分处理比较简单。

OB区矫正

关于 OB区的概念与矫正办法,可参考这位大佬的文章:ISP-OB - 知乎 (zhihu.com)

另外,在sensor手册上也是可以看到其具体的矫正算法的,以某sensor为例:

1)先按行读取OB区的值,计算得行均值(各颜色通道独立)
2)行均值经scaled,offset(即y=scaled*x+offset)后,再加权平均得到correction_value

【注】:scaled和offset具体值取决于工作温度。且应该是越靠近active区,权重越高。

3)像素实际值 = 像素readout值 - correction_value
4)上面步骤得到的像素值可能是负数,为保留这些值,我们会添加pedestal值(各通道独立),而不是直接clip为0

综上,像素输出值 = 像素实际值 + pedestal = 像素readout值 - correction_value + pedestal

注:OB区与active区的黑电平毕竟是有差异的,所以这种办法并不能完美矫正。

ISP端

由于OB区已经进行了虽不完美但也不错的处理,isp这边的操作就比较简单了,分通道减去pedestal即可(也可称为offset).

【注】:也有利用标定法来进行处理的,即在不同的Again,Dgain,温度,曝光下拍摄黑帧,以mesh表的形式进行黑电平计算,存储,矫正。这种矫正办法更准确,但考虑的因素越多,模块复杂度也呈指数上升。

转自:https://zhuanlan.zhihu.com/p/505024642

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内某求职app遭“撞库”攻击,百万条用户数据泄露

什么是撞库? 简单来说:一些用户为了方便记忆,会采用相同的账户密码登录多个网站或app,甚至是存储关键信息的系统平台。如果其中一个平台有漏洞被黑客利用窃取了账户名和密码,黑客便用这套凭证登录大量测试所有平台&am…

葡萄酒的储存条件会影响葡萄酒的陈酿吗?

自20世纪末以来,葡萄酒储存有关的行业一直在增长,一些葡萄酒鉴赏家可能会选择将葡萄酒存放在家里的专用房间或壁橱里。 自云仓酒庄品牌雷盛红酒分享总所周知,瓶装葡萄酒的储存条件是会影响葡萄酒的陈酿,振动和热波动会加速葡萄酒的…

COCO格式标签(json)内容可视化(python)

主要是查到的可用代码,便于自己使用查询,和有相关需求的提供参考。 代码是MMYOLO下的可视化代码browse_coco_json.py,有json文件和图像文件,可以直接输入执行,输出会把bbox、mask等类型标注展示。 下面直接上代码&am…

【深度学习笔记】09 权重衰减

09 权重衰减 范数和权重衰减利用高维线性回归实现权重衰减初始化模型参数定义 L 2 L_2 L2​范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减 权重衰减的简洁实现 范数和权重衰减 在训练参数化机器学习模型时,权重衰减(decay weight&#xff09…

python中获取函数签名(参数)

说明 有些时候我们不清楚python的函数的具体签名的时候,调用可能会报错,这里就是介绍一种简单的方法来获取函数的签名参数。 语法 获取函数的参数签名可以使用 组件.函数.__signature__示例: 我想要获取streamlit.text_input函数的参数签…

golang开发之个微机器人开发

请求URL: http://域名地址/sendFile 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wId是string登录实例标识wcId是string接收…

使用Redis实现购物车后端处理

本文中心思想:实现购物车的后端处理逻辑。 本文将教会你掌握:1.存储商品信息,2.存储购物车信息,3.获取购物车信息。 存储商品信息 商品包含多个属性,例如:名字&#x…

it资产管理系统

it资产管理系统这个词组初听有些陌生,再听却别有一种科技感。 先来看下it资产管理系统的定义: 它是一种针对企业IT资产进行全面管理和监控的工具,它可以帮助企业实现对IT资源的有效利用和合理配置,提高企业的运营效率和市场竞争力…

查看php进程占用内存

要查看每个PHP中Swoole进程占用的内存,您可以使用Linux的一些工具和命令来实现。 使用ps命令列出正在运行的进程,可以通过进程名或进程ID(PID)过滤结果: ps aux | grep php这将显示与PHP相关的进程列表。 通过top命令…

Python 3 读写 json 文件

使用函数 json.dumps()、loads() 、json.dump()、json.load() 。 1 json.dumps() 将python对象编码成Json字符串 import jsondata {name:Alice,age:25,gender:F,city:北京 }# 1 json.dumps() 将python对象编码成Json字符串 print(type(data)) json_str json.dumps(data…

mysql安装环境

安装mysql https://www.mysql.com/downloads/ 如果操作系统版本比较低,还需要安装NET Framework4.5.2 搭建环境变量 MySQL可视化界面: 破解navicat:

spark不同结构Dataset合并

1.先将hdfs(或本地)存储的csv文件加载为Dataset 先在本地C盘准备两个csv文件 test.csv client_id,behives,del,normal_status,cust_type,no_trd_days 7056,zl,1,hy,个人,2 7057,cf,1,hy,个人,12 7058,hs,2,hy,个人,1200 212121,0,sj,hy,个人,1100 212122,1,yx,hy,个人,100 212…

如何入驻抖音本地生活服务商,门槛太高怎么办?

随着抖音本地生活服务市场的逐渐成熟,越来越多平台开始涉及本地生活服务领域,而本地生活服务商成了一个香窝窝,为了保护用户权益和平台生态,对入驻入驻抖音本地生活服务商的条件及审核也越来越严格,这让很多想成为抖音…

ES常用操作语句

ES常用操作语句 注:本文中的操作语句基于ES5.5和7.7的版本,版本不同操作语句上可能有细微差别,如5.5版本有索引类型,7.7版本已废弃,查询不应该带索引类型 新增 # 添加字段,并设置字段类型 PUT /索引/_map…

LeetCode56. 合并区间

&#x1f517;:【贪心算法&#xff0c;合并区间有细节&#xff01;LeetCode&#xff1a;56.合并区间-哔哩哔哩】 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if(intervals.size()0){return intervals;…

【页面】表格展示

展示 Dom <template><div class"srch-result-container"><!--左侧--><div class"left"><div v-for"(item,index) in muneList" :key"index" :class"(muneIndexitem.mm)?active:"click"pa…

GORM gorm.DB 对象剖析

文章目录 1.GORM 简介2.gorm.DB 简介2.1 定义2.2 初始化2.3 查询方法2.4 事务支持2.5 模型关联2.6 钩子&#xff08;Hooks&#xff09;2.7 自定义数据类型 3.为什么不同请求可以共用一个 gorm.DB 对象&#xff1f;4.链式调用与方法5.小结参考文献 1.GORM 简介 GORM 是一个流行…

基于c 实现 FIFO

功能&#xff1a; 1、读和写长度不限制 2、数据操作 和 指针操作分开&#xff08;如先操作数据&#xff0c;再操作指针&#xff09; 适用场景&#xff1a; 单向通信模式&#xff0c;一方写、一方读&#xff0c;可用于任务间单向通信&#xff08;无需锁&#xff09; 如&…

7-HDFS的文件管理

单选题 题目1&#xff1a;下列哪个属性是hdfs-site.xml中的配置&#xff1f; 选项: A fs.defaultFS B dfs.replication C mapreduce.framework.name D yarn.resourcemanager.address 答案&#xff1a;B ------------------------------ 题目2&#xff1a;HDFS默认备份数量&…

fastboot常用命令

fastboot常用命令 显示fastboot设备&#xff1a;fastboot devices 获取手机相关信息&#xff1a;fastboot getvar all 重启手机&#xff1a;fastboot reboot 重启到bootloader&#xff1a;fastboot reboot-bootloader 擦除分区&#xff1a;fastboot erase (分区名) 例&…