当前位置: 首页 > news >正文

isp 图像处理--DPC坏点矫正

一,Bayer pattern简要介绍

我们平时所看到的彩色图像每个像素有三个分量组成,分别为红绿蓝。而目前广泛用到的成像传感器为CMOS传感器,其输出的数据格式为每个像素点只有一个颜色分量,一般称为Bayer Pattern数据格式如下图所示

  • 坏点定义

在图像局部区域内,看起来明显过亮、过暗的点即可称为坏点

注意:坏点的值不一定非得是0或者255,比如全零的局部块中间有个128的像素点,此时应该认为是坏点

  • 坏点来源
  1. CMOS图像传感器,在生产环节不能保证每个点都是百分之百好的一般都会或多或少出现一些异常的点
  2. 感光元器件在使用过程中,温度,湿度,光强电流等发生变化时,也会一定程度上对传感器造成损坏,出现异常;

  • 坏点分类

   静态坏点和动态坏点

  • 坏点去除位置

一般是在bayer域去除,如果不在bayer域并且是isp pipe靠前的位置,经过bayer 域去噪(Bayer NR)和Demosaic(cfa 插值) 后,会极大的放大坏点的影响范围,如图下图所示

  1. bayer 域2x2的坏点簇,经过Demosaic后会变成6x6的坏点簇,极大的影响图像是的视觉体验,并且这个6x6坏点簇如果想在rgb/yuv域去除,基本很难做到,或者需要花费比raw很多倍的代价才能做到
  2. 如果BNR/Demosaic算法滤波核太大,demosaic 后6x6的坏点簇可能会更大
  3. 故一般去坏点一般在ISP Pipe的最前端(或者比较靠前的位置)
  • DPC算法的评价指标
  1. 能够去除所有坏点
  2. 不能损失图像细节
  3. 不能使原本正常点,变成不正常的点
  • 坏点算法开发流程
  1. 确定算法去除坏点的能力:

比如去除单坏点,或者2x2坏点簇,或者2x2中含3个坏点等,这个可以通过sensor Spec来确定,或者通过经验来确定;

  1. 检测坏点:

主要确定当前点是不是坏点,这也是此算法最核心的东西,也有很多种方案,比如:

  1. ,对于单坏点,一定是局部最大值(最小值),只需找到局部最值,然后与局部均值做差值,与设置的阈值作比较即可
  2. 对于坏点簇,这个不同的公司由不同的算法,这里就不在详述

注:实际开发过程中需要注意坏点在图像中的位置,比如平坦区,边缘,角点位置等等

  1. 矫正坏点:

    这一步就简单很多了,比如用均值滤波,中值滤波,带方向的滤波等都是可以的

  • 效果图

 

http://www.dtcms.com/a/359438.html

相关文章:

  • 人工神经网络(ANN)深度学习
  • 当服务器报警响起:CPU、内存、磁盘使用率飙升的诊断与处置
  • 零信任网络(1)
  • MySQL 8 的 SQL 语法新特性
  • WebSocket的基本使用方法
  • 异步编程以及promise的一些拓展
  • SpringBoot学习笔记(上)——自动装配原理、自定义 springboot-starter、配置文件编写
  • 螺旋曲面交线投影切线角度计算与分析
  • Junior Engineer浅谈CAS
  • 联合体Union
  • OpenStack 03:创建实例
  • LeetCode100-160相交链表【链表介绍】
  • 基于Adaboost集成学习与SHAP可解释性分析的分类预测
  • 洞悉边界:软件测试中边界值分析的艺术与科学
  • kotlin - 2个Activity实现平行视图,使用SplitPairFilter
  • 代码随想录算法训练营五十三天|图论part11
  • Linux中的ss命令
  • 项目跑起来之前的那些事
  • 【Spring】ApplicationListener监听器
  • BigDecimal账户分布式原子操作
  • Linux 中进入 root 权限
  • dayjs 常用方法总结
  • Nginx 502 Bad Gateway:从 upstream 日志到 FastCGI 超时复盘
  • 【大数据技术实战】流式计算 Flink~生产错误实战解析
  • vim-plugin AI插件
  • Playwright Python教程:基础篇
  • 秋招笔记-8.31
  • 在集群级别应用 Pod 安全标准
  • 【MySQL】练习12-4:启用GTID并配置循环复制
  • Conda相关的用法