ISP图像处理流程

2023-10-31


前言

因工作需要,今天看了ISP图像处理的基本流程,为了检验自己的理解情况,这里根据自己的理解写下这篇文章,如有错误,敬请原谅!


ISP图像处理流程

ISP(Image Sensor Process)图像处理流程如下:

  1. DPC(Defect Pixel Correction):坏点矫正,图像中每个pixel在芯片上对应一个点,正常情况下,该点数值与照射到该点的光强成正比关系,我们把不符合前面正常情况的点成为坏点。常见的坏点有亮点,即该点数值比正常数值大;暗点,即该点数值接近0;这两类坏点也可称为静态坏点,与之相对,还存在动态坏点。动态坏点一定条件下是正常的,超过这一条件则变得不正常。对于亮点,我们可以在全黑环境中检测出来,它的值比其它点要高;对于暗点,可以在亮的环境检测出来,它的值比其他点要小。坏点一般是由于芯片制造工艺过程中产生的,通俗点说就是坏点数值异于常值。坏点矫正一般取周围像素的中值或者均值来替代该点值。

  2. BLC(Black level Correction): 黑电平矫正,因为sensor有暗电流,当光线通过lens(镜头)穿过Bayer滤镜照射到sensor上时,sensor会将光信号转换为电信号,这时就会有电压产生,这个电压包含了sensor本身产生暗电流的电压,所以去除该黑电平后才是真正的图像数据。该暗电流不是固定不变的,和sensor本身的温度和增益有关,温度越高或者增益越大,黑电平越高。一般会在芯片上预留位置获取黑电平数据。黑电平可以在RAW域去噪前完成,这样得到图像更加清晰;也可以在RAW域去噪后完成,这样得到的图像噪声更好。另外,黑电平减的多,会造成图像偏绿;黑电平减的少,会造成图像篇紫红;

  3. Denoise: 降噪,噪声一般表现为像素值较周围像素差异很大的孤立点或者区域,比如椒盐噪声,通常降噪方法在去除噪声的同时,会造成边缘模糊,比如均值滤波,高斯滤波等;

  4. LSC(Lens shading Correction): 镜头亮度矫正,因为镜头的关系,一般对应镜头中心轴附近的sensor像素点获得的光照较多,得到的图像亮度较高,远离中心轴的像素点得到的光照较少,因此图像的亮度较暗,最终呈现的图像就是一个圆形图像,中间亮度高,远离中心亮度低。LSC的目的就是均匀光照,使图像中心与远离中心的亮度相同;

  5. AWB(Auto White Balance):自动白平衡,就是在不同光照条件下使本来是白色的物体还是显示出白色。一般在低色温(暖色温)环境下,白色呈现出偏黄色,在高色温(冷色温)环境下,白色呈现偏蓝色。常用的矫正方法包括灰度世界法,完美反射法(还没有研究过这些方法)。

  6. Demosica:颜色插值,我们从bayer滤镜得到每一像素值仅包含单一颜色值,这一步骤的目的就是使一个像素点包含R/G/B三个颜色值,人眼一般对绿色更加敏感,所以绿色像素个数是其它颜色的2倍。

  7. CCM(Color Correction Matrix): 颜色矫正,这里主要是对除白色外其它颜色的矫正,我们人眼获得的颜色信息和sensor直接获得的颜色信息是有差别的,因此需要一个 3 × 3 3\times 3 3×3的颜色矩阵来进行矫正,据了解,可通过相机拍摄的场景图像和标准场景图像经过计算得到这个颜色矩阵,详细的后面还会继续学习,然后再分享给大家。

  8. Ygamma: 这里指的是gamma亮度矫正,以前显示器端亮度与电流强度是非线性关系,所以引入gamma曲线来矫正亮度,后来显示器端工艺做到了线性关系,但是由于gamma曲线能够较好的显示图像暗区域信息,所以还会在camera中使用gamma矫正来对图像亮度、对比度和动态范围做调整。

  9. EE: 锐化,当图像锐度不够时,一般图像就比较模糊尤其是物体边缘,看不清晰;当锐度过大,很明显看到图像物体边缘有锯齿等。

  10. CSM(Color space Matrix):色彩空间转换,通过该矩阵实现颜色空间的转换,比如RGB到YUV。


总结

这篇只是ISP大体流程的了解,本人还没有具体探索,这里记录下并检验自己的学习情况,如果有误,敬请指正,谢谢!


参考

http://camera.geek-docs.com/camera-isp/camera-isp-flow-intro.html

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

ISP图像处理流程 的相关文章

  • OPENCV手势识别抓取图片

    PENCV手势识别抓取图片 一位油管的小哥做的项目非常棒 照着写了一个 代码 注意 看好cvzone的版本 太新的版本中有个函数没有 如果找不到这个函数的时候请更换一下库的版本 import cv2 from cvzone HandTrac
  • JPEG编码过程详解

    JPEG编码过程详解 本文旨在对JPEG编码过程中的细节步骤进行说明 具体原理部分请参照Wikipedia 色彩空间转换 原始图像的像素点是以RGB形式存储的 即每个像素点由3个字节的数据组成 分别为Red通道 Green通道和Blue通道
  • 图像的二值化分割,otsu类间方差法

    二值化图像指图像中的每个像素只取两个离散的值之一 用数学公式表示为 公式中 f x y 表示一幅数字图像 X Y表示该图像中某像素的坐标值 T为 二值化的阈值 表示经过阈值运算后的二值化图像 这里0和1仅仅是一个抽象表示 并非实际像素值 它
  • gstreamer中tee如何实现动态增减支路(预览+截图+录像)

    系列文章目录 Gstreamer中获取帧数据的方式 gstreamer中如何使用probe 探针 获取帧数据 gstreamer拉流rtsp使用appsink获取帧数据 预览 截图 gstreamer中如何使用fakesink获取帧数据 预
  • windows8.1 vs2015 dlib库cpu 版本编译以及应用 library is 90, caller expects 80

    近期由于要做一个关于人脸计数的项目 因此对dlib库进行了编译和使用 其中遇到了不少问题 下面请听我一一道来 第一步 从dlib官网下载dlib源码 链接地址 https github com davisking dlib 第二步 采用cm
  • matlab中 hold on 与 hold off,figure作用

    hold on是当前轴及图像保持而不被刷新 准备接受此后将绘制的图形 多图共存 即启动图形保持功能 当前坐标轴和图形都将保持 从此绘制的图形都将添加在这个图形的基础上 并自动调整坐标轴的范围 hold off使当前轴及图像不再具备被刷新的性
  • matlab 读取某一文件夹下的文件

    MATLAB 是一个十分强大的科学计算软件 用于各种数据分析和科学计算 在实际工作和研究过程中 我们通常将数据存储在文件中 文件存在于系统的某个目录中 如果需要读取这些文件 可以使用 MATLAB 提供的文件和文件夹操作函数 本文将介绍如何
  • R-CNN史上最全讲解

    文章目录 一 初识R CNN 网络结构 二 训练步骤 1 RP的确定 2 模型pre training 3 Fine Tunning 4 提取并保存RP的特征向量 5 SVM的训练 6 bbox regression的训练 三 测试步骤 s
  • Image Processing图像处理(对比俩张图像的差异并且在图上标注出来)

    图像处理是构建所有计算机视觉的基础 按照我的图像处理指南使用OpenCV库学习计算机视觉的基础知识 SSIM进阶 利用python openCV将图片的差异性画框展示出来 诀窍是学习如何准确地确定在 x y 坐标位置上 图像的差异在哪里 使
  • python批量处理

    python opencv图像二值化批量处理 from skimage import data dir io transform color filters import numpy as np import cv2 def convert
  • 使用python实现简单全连接神经网络

    最近在学习神经网络的相关知识 特在此做一个笔记 python语言的功能很强大 可以使用很少的代码实现很多功能 因此大家如果想研究深度学习的话 一定要懂得python语言 这篇笔记记录我的第一次使用python编写神经网络代码的过程 其中代码
  • 图像恢复(加噪与去噪)

    人工智能导论实验导航 实验一 斑马问题 https blog csdn net weixin 46291251 article details 122246347 实验二 图像恢复 https blog csdn net weixin 46
  • 图像二值化

    文章目录 1 图像二值化 2 图像二值化方法及Python实现 2 1 简单二值法 2 2 平均值法 2 3 双峰法 2 4 OTSU法 3 opencv python中二值化方法的应用 3 1 简单阈值分割 Simple Threshol
  • 【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

    目录 前言 一 图像处理 二值化处理 膨胀 腐蚀 开运算 闭运算 二 案例实现 Step1 灰度处理 Step2 对视频进行帧差处理 Step3 二值化处理 Step4 腐蚀处理 Step5 膨胀处理 Step6 标记 框选目标 完整代码
  • 【图像压缩】QOI图像格式详解

    最近听说一种图像格式比较流行 想起我曾经是做图像压缩的emmmm 就来研究一下 QOI Quite OK Image Format 很好的图像格式 git链接 能快速地无损压缩图像 原理也非常简单 没有各种变换 直接空域处理 而无损压缩 自
  • 图像处理——我理解的傅里叶变换

    1 傅里叶变换的理解 傅里叶变换的相关数学公式目前还没有搞懂 先不整那个东西 我们主要是研究傅里叶变换的一些思想和应用 这个思想起源于牛顿研究那个三棱镜 白光透过棱镜之后会被分解为七种颜色的光 这些光叠加又能形成白光 所以说可以把一种事物分
  • MATLAB算法实战应用案例精讲-【图像处理】缺陷检测(补充篇)

    目录 前言 疵点缺陷识别 1边缘增强 1 1经典算子 1 2坯布疵点边缘检测
  • Python图像处理:批量添加水印的优雅实现与进阶技巧

    1 简介 在日常图像处理中 为图片添加水印是一项常见任务 有多种方法和工具可供选择 而今天我们将专注于使用Python语言结合PIL库批量添加水印 需要注意的是 所选用的图片格式不应为JPG或JPEG 因为这两种格式的图片不支持透明度设置
  • 北京机器视觉技术的商业化应用与市场趋势分析

    随着科技的快速发展 机器视觉技术已经逐渐成为工业自动化 智能制造等领域的重要技术之一 北京作为中国的科技创新中心 其机器视觉技术的发展和应用也备受关注 本文将分析北京机器视觉技术的商业化应用以及市场趋势 一 商业化应用 工业自动化 机器视觉
  • 【图像配准】

    非配对配准 Non rigid registration 和配对配准 Rigid registration 是医学图像配准中常用的两种方法 它们有着不同的含义和应用 非配对配准 Non rigid registration 非配对配准是指将

随机推荐

  • CreateEvent人工重置事件对象

    include
  • 基于springboot的在线考试系统

    本系统和现在有的考试系统有以下几种优势 a 和现在有的系统比较起来 本系统有科目 章节 老师 学生 班级等信息的管理 还有批阅试卷查看已批阅试卷等 传统的考试系统划分并不细 业务功能简单 b 和学校的考试系统还有外面的考试系统比较起来 本系
  • 【配置文档】配置使用CGAL库的经验分享

    诸多经验贴都建议参考CGAL官方网站的步骤一步一步配置 因为我懒得看英文所以找的都是中文博客和问答 结果走了不少弯路 这里开一篇经验贴 记录错误也方便以后的查阅 本文是基于VS2017的配置和使用 这里是CGAL的使用手册 文章目录 一 需
  • Python案例篇2-pycharm import cx_Oracle模块引发的No module named ‘custom_exceptions‘

    一 问题描述 最近在自学python 然后用到Oracle数据库 于是开始学习cx Oracle模块 代码 import cx Oracle dbConnect host cx Oracle makedsn mylocalhost mypo
  • Linux防火墙查看及白名单添加

    一 临时白名单添加 执行即生效 重启防火墙后失效 查看防火墙状态 service iptables status 查看白名单列表 sudo iptables nL 添加白名单 sudo iptables I INPUT m state st
  • Spring AOP 源码分析 - 拦截器链的执行过程

    1 简介 本篇文章是 AOP 源码分析系列文章的最后一篇文章 在前面的两篇文章中 我分别介绍了 Spring AOP 是如何为目标 bean 筛选合适的通知器 以及如何创建代理对象的过程 现在我们的得到了 bean 的代理对象 且通知也以合
  • java:无法从静态上下文中引用非静态方法

    编辑以下代码 public class t public int i public void fun public static void main String args i 3 fun 编译 javac t java 得到以下报错 原因
  • c++svd算法_2020DCIC智能算法赛智慧海洋建设TOP1方案

    大家好 我是来自团队Pursuing the Past Youth的Ethan 天池ID是GrandRookie 和队友青禹小生 wbbhcb Chauncy YAO经过2个多月的 征途 最终在本届智能算法赛部分拿到了线上Top1的成绩 下
  • 蓝桥杯第十届青少年Python组省赛试题

    ns 1 3 5 8 cnt 0 for a in ns for b in ns for c in ns if a b and a c and b c print a 100 b 10 c cnt 1 print cnt for i in
  • SpringSecurity详解

    一 Spring Security简介 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架 Spring Security致力于为Java应用程序提供身份验证和授权的能力 像所有Spring项目一样 Sprin
  • Lora无线终端工作原理及优缺点

    LoRa 数据传输终端是一种基于LoRa 扩频技术的无线数据传输终端 利用 LoRa 网络为用户提供无线数据传输功能 该产品采用高性能的工业级 LoRa 方案 以嵌入式实时操作系统为软件支撑平台 同时提供 RS232 和 RS485 或 R
  • mipsel-openwrt-linux交叉编译libwebsockets

    mipsel openwrt linux交叉编译libwebsockets mipsel openwrt linux交叉编译libwebsockets 1 下载libwebsockets 2 准备条件 3 编译安装libwebsockets
  • 数据库——实体联系模型

    文章目录 1 实体 2 属性 3 联系 4 实体 联系图 5 弱实体集 1 实体 1 实体 客观存在并且可以相互区分的任何事物 可以是实际对象 也可以是抽象概念 2 属性 实体所代表的事物具有的某种特性 每个实体都可以用一组属性来刻画 例如
  • 思维导图怎么变成ppt?4个思维导图一键生成ppt的方法

    做好的思维导图如何变成一份ppt 本文罗列了4个可行方法 一起来看看吧 一 直接复制粘贴 这是最简单的方法 虽然这样可能会花费一些时间 但可以确保内容排版和布局与你想要的一致 当然 我们大可使用更高效的方法 二 导出为图片格式 大多数思维导
  • 矩阵相关定义性质全总结

    矩阵相关定义性质全总结 0 前言 矩阵是线性代数中的核心内容 所以我写这篇文章对矩阵 研究生以下阶段 进行一个完整的叙述 虽然是主要说矩阵 但是我也会将行列式 向量 线性方程组三个方面也包含在内 不过是概述的形式 具体的叙述会另外展开写 能
  • C++沉思录读书笔记1.如何定义一个完整的类

    C 沉思录 Ruminations On C 读书笔记1 如何定义一个完整的类 作者 2006 4 27 12 19 C 哲学 只为用到的东西付出代价 定义一个类时必须搞清楚的几个问题 需要构造函数吗 如果答案为 no 那么很可能你需要定义
  • 关于转义字符&

    1 情况是这样的 就是前段传的xml参数里存在 这种特殊字符 所以前端需要转义后再传给后端 也就是 转义为 后传给后端 但是后端接收但这个参数时 会拼接url 就像下面这样的 http www xx com path api gender
  • 【Colab】基本操作【LeNet】【MNIST】训练测试

    文章目录 1 介绍 2 查看基本配置 2 1查看pytorch版本 2 2查看是否可以使用cuda 2 3查看显卡配置 3 挂载 31 挂载谷歌云盘 3 2更改运行目录 4 训练 5 Reference Colab 官网初始界面 1 介绍
  • python函数用法之numpy.mgrid

    参考链接 python笔记 numpy中mgrid的用法 布衣小张 CSDN博客 mgrid numpy中的mgrid函数 KangLongWang的博客 CSDN博客 mgrid函数 mgrid函数返回多维结构 np mgrid 第1维
  • ISP图像处理流程

    文章目录 前言 ISP图像处理流程 总结 参考 前言 因工作需要 今天看了ISP图像处理的基本流程 为了检验自己的理解情况 这里根据自己的理解写下这篇文章 如有错误 敬请原谅 ISP图像处理流程 ISP Image Sensor Proce