ISP算法学习之LSC(镜头阴影校正)

2023-10-27

LSC(Lens Shading Correction)是ISP算法中的一个重要组成部分,用于校正镜头遮挡(lens shading)现象。镜头遮挡是由于镜头和图像传感器的光学特性导致的图像亮度不均匀的现象。通常,图像的中心部分较亮,而边缘部分较暗。LSC算法的目标是通过校正这种亮度不均匀,使得图像在整个视场中具有相同的亮度水平。

1、产生原因

镜头遮挡(Lens Shading)是一种导致图像亮度不均匀的现象,通常表现为图像中心较亮,边缘部分较暗。镜头遮挡的产生原因有以下几点:

  1. 光学透镜特性:透镜在将光线聚焦到图像传感器上时,会出现光线衰减现象。由于透镜的几何形状和折射特性,光线在经过透镜边缘部分时,衰减程度通常较大。这导致图像边缘部分的亮度降低。通常镜头的衰减符合:f(\theta)=\cos ^{4}(\theta)

  2. 光源角度:在拍摄过程中,入射光线的角度对镜头遮挡现象也有影响。当光线从不同的角度入射时,透镜边缘部分的光线损失会更加严重,从而导致更明显的遮挡效果。

  3. 传感器接收特性:图像传感器(如CMOS或CCD传感器)在接收光线时,由于其表面特性和感光元件排列方式,边缘像素对光线的接收效果可能会降低。这会导致图像边缘部分亮度不足。

  4. 透镜涂层:为减少反射、降低眩光并提高透镜性能,透镜通常涂有多层薄膜。这些涂层会影响透镜的光学特性,有时也会导致图像边缘亮度降低。

2、矫正方法

2.1LUT矫正法

  1. 捕获一幅平坦照明图像:在均匀照明条件下拍摄一张图像。这张图像应该包含镜头遮挡现象,可以作为校正的基准。

  2. 生成理想的平坦照明图像:创建一幅理想的平坦照明图像,该图像的亮度在整个视场中应该是均匀的。这可以通过计算一个与实际图像尺寸相同的均匀灰度图像来实现。

  3. 计算校正表(Correction Table):比较实际拍摄的图像和理想的平坦照明图像,计算出一个校正表。校正表可以表示为一个一维或二维的查找表,表中的每个元素表示相应像素位置的亮度校正系数。

  4. 生成LUT:将校正表转换为一个查找表(LUT),以便在实时图像处理过程中快速查找和应用。LUT可以存储在硬件或软件中,以实现高效的计算和校正。

  5. 应用LUT校正:在实时图像处理过程中,对原始图像的每个像素值使用LUT进行校正。这可以通过查找表中与原始像素值对应的亮度校正系数,并将其应用于原始像素值来实现。

通常情况下为每个像素点创建表要存储的东西就太大了,因此一般不这么做。

1)radial shading correct

上面有提到衰减符合cos(θ)的四次方规律,而θ在三维空间对各个方向是一致的,所以各个方向的衰减如下图 图中相同颜色可以理解成亮度是一样的,也就是图中红色一圈圈的像素需要的增益是一样的,所以就可以用半径为变量来求出不同半径像素需要的增益。然后把半径对应的增益值储存在内存中,到了要用的时候再拿出来用,从而完成矫正。但是不可能把所有像素的半径都存储起来,所以就通过采样的方式提取特征半径的增益存储到内存,然后其他半径对应的增益在矫正的时候通过插值算法求出来。这种方式对内存的硬件要求就低了。这就是radial shading correct。

2)mesh shading correct

和半径不同,这种方式是把整幅图像分成n*n个网格,然后针对网格顶点求出矫正的增益,然后把这些顶点的增益储存到内存中,同理其他的点的增益也是通过插值的方式求出。

2.2多项式拟合

多项式拟合的方式就是用半径为采样点,然后把这些采样点通过高次拟合的方式拟合成一个高次曲线,然后把高次曲线的参数储存起来,用的时候把半径带入公式就能求出对应的gain值用于矫正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ISP算法学习之LSC(镜头阴影校正) 的相关文章

  • ZIP 软件包管理

    ZIP 也是计算机文件的压缩的算法 原名 Deflate 真空 发明者为菲利普 卡兹 Phil Katz 他于 1989 年 1 月公布了该格式的资料 ZIP 通常使用后缀名 zip 主流的压缩格式包括 tar rar zip war gz
  • C#软件加序列号激活、试用期限

    道高一尺 魔高一丈 程序员想尽各种办法给软件加密 用户就想尽各种办法对软件破解 现在做软件试用限制 那么就讨论下软件的试用限制 总体来说 限制的方法有这么几种 1 时间限制 2 次数限制 以时间限制为例 主要是用户从安装之日起 限制用户使用
  • 2023华为OD机试真题【预定酒店/自定义排序】

    题目描述 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为n的 数组A 他的心理价位是x元 请帮他筛选出k个最接近x元的酒店 n gt k gt 0 并由低到高打印酒店的价格 输入描述 第一行 n k x 第二行
  • Github域名加上1s,在线VS Code阅读源码神器诞生

    近日 一款域名为 github1s 开源项目诞生了 正如他的名字所说 只要在 github 地址上面加上 1s 就能秒级用在线 VS Code 打开 github 项目 这可以说为开发者带来了巨大的便利 我们来看看这个项目打开后长什么样子
  • go get或go mod tidy报错 fatal: could not read Username for

    go get git xxxxx net CPC protocol module git xxxxx net CPC protocol git ls remote q origin in Users admin go pkg mod cac

随机推荐

  • STM32 基础系列教程 24 - USB_HID_key

    前言 学习stm32 USB接口使用 学会用CUBE工具快速创建USB设备工程及调试 关于usb的相关知道请读者提前准备并学习 当然如果不想深究其中原理的话 跟着本文来操作就可以实现基于USB的设备开发了 需要提示的是 stm32在使用us
  • 【蓝屏解决】笔记本频繁蓝屏,错误代码IRQL_NOT_LESS_OR_EQUAL

    问题发现 笔记本近期频繁蓝屏 最初几天会出现一次 后面10分钟左右就出现一次蓝屏情况 解决方案 Step1 找到崩溃日志 Win10 的崩溃日志保存在 C Windows Minidump 里 Step2 下载Debugging Tools
  • AIX系统启动

    复杂度2 5 机密度3 5 最后更新2021 04 23 AIX的启动过程粗略来看 大概是这样的 其中有通过硬件 微码 只能调整少量设置 完成的过程 也有通过操作系统软件 可修改 完成的功能 to be continue 关于SMS的介绍在
  • springmvc框架定时器功能实现和service注入问题解决

    1 在SpringMVC配置文件中添加 xmlns task http www springframework org schema task http www springframework org schema task http ww
  • PHP九大全局变量

    POST 用于接收post提交的数据 GET 用于获取url地址栏的参数数据 FILES 用于文件就收的处理img 最常见 COOKIE 用于获取与setCookie 中的name 值 SESSION 用于存储session的值或获取ses
  • Vue实现Markdown文件内容显示及代码块高亮

    用到的插件有 marked highlight js github markdown css 安装命令 安装 marked npm install marked 安装 highlight js npm install highlight j
  • 电脑往服务器传文件方法,电脑怎么给云服务器传文件

    电脑怎么给云服务器传文件 内容精选 换一换 简要介绍DNSmasq提供DNS缓存和DHCP服务功能 作为域名解析服务器 DNSmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度 作为DHCP服务器 DNSmasq可以用于为局域网电
  • iframe加载完成事件

    获取到iframe加载的前提条件 1 iframe必须在body的下方 如 body append 2 IE下和其他浏览器下的iframe加载完成后执行事件 var iframe document getElementById player
  • 运行ddddocr项目,报错 DLL load failed: 找不到指定的模块

    我的环境是python3 7 9的 from onnxruntime pybind11 state import noqa ImportError DLL load failed 找不到指定的模块 看了网上什么改这改那的 太麻烦了 后来发现
  • 2.搭建一个spring-boot项目(git项目)

    很多同学在搭建一个springboot项目的时候会遇到很多问题 闲来无事我就自己搭建了一个基础的框架 大家可以自己看看 框架主要包括 初始化配置 数据库配置 Mysql mybatis plus JPA 自动生成代码 logback 基本上
  • Grafana 安装(Centos7)

    一 联网安装 1 Grafana安装 1 下载grafana wget https dl grafana com oss release grafana 8 0 3 1 x86 64 rpm wget https dl grafana co
  • java stream 多个filter_跟光磊学Java开发-流式编程

    使用Stream API操作集合 假设现在有一批名字数据 需要筛选出姓张的人后来需求又变了 需要筛选出姓张 而且名字长度大于等于3的人 使用传统方式操作集合只要操作集合都不得不需要使用循环遍历元素每次筛选后都需要使用新的集合存储元素 pac
  • jdbc的练习:建立一个连接数据库的类

    import java sql public class DatabaseConnection String driver com mysql jdbc Driver String url jdbc mysql localhost 3306
  • 【Pytorch深度学习实战】(8)双向循环神经网络(BiRNN)

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • c语言:char *c;测试

    include
  • html图片列表选择器,CSS 列表

    CSS 列表 从某种意义上讲 不是描述性的文本的任何内容都可以认为是列表 人口普查 太阳系 家谱 参观菜单 甚至你的所有朋友都可以表示为一个列表或者是列表的列表 由于列表如此多样 这使得列表相当重要 所以说 CSS 中列表样式不太丰富确实是
  • Laravel 图片不显示解决方案

    转自 https blog csdn net qq 18951197 article details 93163149 图片文件存储位置为 项目目录 storage app public 1 在项目目录下执行命令创建过软链接 php art
  • ELF文件查看利器之objdump用法

    Android在NDK开发工具中提供了objdump 用来帮助开发者查看编译后目标文件的组成结构和具体内容 常用的有以下几个功能选项 1 a或者 archive headers 这个参数起到的作用和ar命令相似 用来看一个 a静态库文件中包
  • OpenStack--部署nova控制节点与计算节点

    官方部署文档 https docs openstack org mitaka zh CN install guide rdo common get started compute html 1 安装并配置 nova 控制节点 官方安装文档
  • ISP算法学习之LSC(镜头阴影校正)

    LSC Lens Shading Correction 是ISP算法中的一个重要组成部分 用于校正镜头遮挡 lens shading 现象 镜头遮挡是由于镜头和图像传感器的光学特性导致的图像亮度不均匀的现象 通常 图像的中心部分较亮 而边缘