AWB实现流程

2023-11-04

简介

  本篇谈论下对AWB算法的调查和预研工作。

内容概述

  所谓AWB也就是自动白平衡的意思,白平衡在相机中很常见,主要是和色温、色彩还原、色调调整相关。当白平衡设置不佳的时候,常会出现如下这些情况:在日光灯的房间里拍摄的影像会显得发绿,在室内钨丝灯光下拍摄出来的景物就会偏黄等。而awb的作用,就是在相机拍摄的环境色温变化的时候,主动调整白平衡参数,使得相机图像不因为环境色温变化而出现偏色。

基于色温估计法

  大致上,主要分为三个部分:
      1、色温曲线拟合
        2、色温估计
        3、根据当前色温,在色温曲线上找到对应的白平衡参数,进行设置

色温曲线拟合

光源色温
  人造的标准光源色温主要是(常见的自然环境中,基本也都在这些色温范围之内):
     (1)模拟蓝天日光——D65光源 色温:6500K
      (2)模拟北方平均太阳光——D75光源 色温:7500K
      (3)模拟太阳光——D50光源色温:5000K
      (4)模拟欧洲商店灯光——TL84光源 色温:4000K
      (5)模拟美国商店灯光——CWF光源 色温:4100K
      (6)模拟另一种美国商店灯光——U30光源 色温:3000K
      (7)A光--美式厨窗射灯 色温:2856K 功率:60W
      (8)HZ---钨丝灯       色温:2700K
曲线拟合
  在这些光源下,利用相机拍摄灰卡,进行色彩还原,获得在这些色温下对应的awb参数,并进行拟合,结果大致如下:
            
  色温越高的,B/G越大,也就表示越偏蓝;色温越低的R/G越大,也就表示越偏红。

色温估计

  简单的说,就是当前图像r/g和b/g的比值,来估算出当前场景的色温。

参数调整

  根据已经估算出来的当前色温,在前面对应拟合出来的曲线上,获得当前的awb校正参数,进行校正。
需要注意,实际上获得awb参数,很多时候还考虑的参考点权重以及曝光时间等。

其他常用方式

    常用的方式有:1、灰度世界理论 --- 当有足够的色彩变化时,它的R、G、B分量均值趋于平衡。
                  2、全反射理论   --- 一副图像中最亮的点就是白点。
                  3、两者的结合   --- 选出亮度较大的一些类白色点,经过条件筛选之后,进行白点计算。
                        常用的筛选条件:  
                  等。。。。
  这里直接使用前面提到的三种色温估计方式计算出色偏,直接使用色偏进行补偿的结果。
 

灰度世界法

       计算图片R/G/B三通道分别的平均值,进而得到r/g和b/g的偏差,将这偏差对应的加到r/g颜色通道上,获得校正后图像。
   
                        原图像                                           结果图像

全反射法(最大RGB法)

        找到图像最亮的那个0.05%的像素,直接用直接像素计算色偏,对应处理r/g颜色通道。
      结果如下:
    
                    原图像                                                结果图像

两者结合

        找到图像最亮的0.02%的像素,设置筛选条件:1、g通道值大于100,小于210;2、g - b/g通道差值 - r/g通道差值 > 140 筛选出来的像素,再进行灰度世界法处理。结果如下:
 
                        原图像                                           结果图像 
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWB实现流程 的相关文章

  • 使用 K 均值聚类 OpenCV 进行交通标志分割

    I used K Means Clustering to perform segmentation on this traffic sign as shown below 这些是我的代码 读取图像并模糊 img cv imread 000
  • OpenCV 中“IplImage”和“CvMat”的全称是什么?

    有一个IplImage and CvMat在 OpenCV 中 他们的全名是什么 IPL in IplImage代表英特尔处理库 这是Intel维护OpenCV时的残余 CV in cvMat代表计算机视觉矩阵 这是图形中常用的数据结构 I
  • 如何计算立体视觉的基本矩阵

    我正在尝试编写一些代码来计算基本矩阵以确定立体图像之间的关系 我从大多数人推荐的 Hartley 和 Zisserman 书开始 但它没有任何实际示例 并且示例代码是在 MATLAB 中 而我没有 然后我切换到这个比较实用 里面有实际例子
  • 如何使用 OpenCV 从图像中获取调色板 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想提取图像的调色板 类似于此 来自 我需要它来提取特定的颜色 如黄色 绿色和棕色 并显示该颜色覆盖的区域的百分比 另外 我可以添加更
  • `opencv.android.JavaCameraView` 和 `opencv.android.NativeCameraView` 有什么区别

    正如主题中所述 有什么区别opencv android JavaCameraView and opencv android NativeCameraView 与其他主要优点相比 有哪些优点可以提供更多选择 来自OpenCV 文档 http
  • Opencv - 找不到头文件

    我正在尝试使用 opencv 开始开发 问题是 到目前为止我几乎无法设置 opencv 因为我找不到它的头文件 我对此主题进行了一些研究 但没有一个真正有帮助 下面是一些链接 opencv2 包含文件在哪里 https stackoverf
  • 如何将图像从 np.uint16 转换为 np.uint8?

    我正在创建一个图像 image np empty shape height width 1 dtype np uint16 之后我将图像转换为 BGR 模型 image cv2 cvtColor image cv2 COLOR GRAY2B
  • 在 Android 中使用 OpenCV 查找图像匹配

    我正在尝试构建一个 Android 应用程序 该应用程序可以比较设备相机拍摄的照片 以在一组图像中找到匹配项 我已经在 Android Studio 上配置了 OpenCV 但仅此而已 有人可以通过链接到资源或建议教程来提供帮助吗 Open
  • ValueError:当数组不是序列时设置带有序列的数组元素

    您好 此代码旨在存储使用 open cv 绘制的矩形的坐标 并将结果编译为单个图像 import numpy as np import cv2 im cv2 imread 1 jpg im3 im copy gray cv2 cvtColo
  • 使用 OpenCV VideoWriter 将 RTSP 流存储为视频文件

    我正在使用 OpenCV 开发一个 Python 模块 该模块连接到 RTSP 流以对视频执行一些预处理 主要是降低 fps 和分辨率 然后将其存储在文件系统中 但是 即使在尝试了几种编解码器 寻找类似的开发之后 我总是得到一个空的视频 我
  • 警告:发生了非法反射访问操作(java 中的便携式 opencv)

    我想做一个便携的opencv将依赖项添加到 maven 文件的应用程序pom xml 简化的代码是 import org opencv core Mat public class Builder public static void mai
  • 如何在 OpenCV 中将 Float Mat 写入文件

    我有一个矩阵 Mat B 480 640 CV 32FC1 包含浮点值 我想将此矩阵写入一个可以打开的文件Notepad https en wikipedia org wiki Windows Notepad or 微软Word https
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • GrabCut - bgdModel 和 fgdModel 为空 - 断言错误

    我正在尝试使用 OpenCV2 1 C 中的 GrabCut 算法进行图像分割 这是我的代码 Mat rgbWorkImage imread argv 1 Mat mask mask Scalar 0 Mat bgdModel fgdMod
  • 如何识别与我的对象相关的轮廓并找到它们的几何质心

    问题陈述和背景信息 EDIT 约束 法兰上的红色会随着时间的推移而变化 所以我此时不会尝试使用颜色识别来识别我的对象 除非它足够强大 此外 外部照明也可能是一个因素 因为将来这将是在室外区域 我有 RGB 深度相机 有了它 我就能捕捉到这个
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 如何将 Opencv VideoWriter 与 GStreamer 结合使用?

    我正在尝试使用 Opencv VideoWriter 传输 h264 流 以使用 VideoCapture 将其传输到网络上的另一台电脑上 但是 我被困在 VideoWriter 上 执行此代码会返回错误 并且 out isOpened 始
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查

随机推荐

  • 苹果笔记本计算机管理员删除,如何删除一个管理员?

    注销要删除的管理员帐户 再以管理员帐户登入 然后跟下面方法 如果您是管理员 则可以删除您不再想让其可访问电脑的用户 删除用户时 您可以存储该用户的个人文件夹 包含用户的文件和设置 或删除该个人文件夹 选取苹果菜单 gt 系统偏好设置 然后点
  • Python反反爬之JS混淆---动态Cookie(持续更新详细教程)

    写在前面 第一题JS混淆 源码乱码 经过上一题的练习JS混淆 源码乱码 我们已经对JS混淆有了大致的了解 这次我们再来练习一道同类型的题目 只不过这次是动态Cookie 首先 让我们了解一下什么是Cookie Cookie 并不是它的原意
  • lua中的常用字符串处理方法

    对lua中string类库中常用方法总结一二 1 数字和字符串相加减lua自动转换 2 得到字符串的长度 3 string byte 返回字符的内部数字编码 ASCII码 4 string char 返回和参数数量相同长度的字符串 其中每个
  • LeetCode202.快乐数(Python)

    题目 解题思路 运用哈希表 将各个位数进行平方 将得到的数进行判断 如果为1输出True 如果不为1 判断是否重复了 如果重复输出False 如果没有重复 进行各个位数平方 反复以上操作 class Solution def isHappy
  • [转]Smartgit :Remove Discard Delete

    Smartgit Remove Discard Delete https blog csdn net u010272085 article details 85039801 Remove 从仓库中移除选中的文件或目录 可通过Discard还
  • C# this.Invoke()的作用与用法、不阻塞UI界面线程的延时函数

    一 this Invoke 的作用与用法 不阻塞UI界面线程的延时函数 Invoke 的作用是 在应用程序的主线程上执行指定的委托 一般应用 在辅助线程中修改UI线程 主线程 中对象的属性时 调用this Invoke 在多线程编程中 我们
  • CH9-网络编程

    目标 了解HTTP协议通信简介 能够说出什么是HTTP协议 掌握HttpURLConnection的使用方法 能够使用HttpURLConnection访问网络 掌握WebView控件的使用方式 能够使用WebView控件加载不同的网页 掌
  • 机器学习(七):主成分分析PCA降维_Python

    六 PCA主成分分析 降维 github地址 https github com lawlite19 MachineLearning Python 全部代码 1 用处 数据压缩 Data Compression 使程序运行更快 可视化数据 例
  • 【目标检测-YOLO】YOLOv5-5.0v-数据处理(第三篇)

    前文链接 YOLOv5 v5 0 yolov5s网络架构详解 第一篇 星魂非梦的博客 CSDN博客 YOLOv5 5 0v yaml 解析 第二篇 星魂非梦的博客 CSDN博客 1 性能分析 YOLOv5 P6 models 4 outpu
  • 数据隐私与安全在大数据时代的挑战与应对

    文章目录 数据隐私的挑战 数据安全的挑战 应对策略和方法 1 合规和监管 2 加密技术 3 匿名化和脱敏 4 安全意识培训 5 隐私保护技术 结论 个人主页 程序员 小侯 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 大数据系列 文章
  • 国内“风口”转变,中国游戏公司纷纷“外逃”,东南亚是个好去处

    中国游戏开发商正在加强对国际市场 特别是东南亚市场的承诺 因为他们的国内公司正在努力应对更困难的中国市场 以便实施在下一阶段发展布局 根据移动应用市场情报公司Sensor Tower的一份报告 按收入排名的前100名全球移动游戏中 有39款
  • String类型的时间转换成BigDecimal类型

    private BigDecimal timeformat String time throws ParseException SimpleDateFormat formatter new SimpleDateFormat yyyy MM
  • Eureka中的服务状态显示UNKOWN(1)

    Spring cloud在加入Config配置中心后 Eureka中的服务状态显示为UNKOUNW 1 Eureka的client端显示如下注册状态为204 重新注册 Eureka服务端 Eureka client端 2018 11 02
  • pom文件解读

    一 pom文件解读
  • Visio+Latex 插入EPS等矢量图

    Latex插入单栏 或者跨栏 的图片 在figure后面加个 即可 即figure begin figure h centering includegraphics width linewidth Figure1 caption Whate
  • CentOS 7通过samba实现与Windows共享文件夹

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件 由服务器及客户端程序构成 SMB Server Messages Block 信息服务块 是一种在局域网上共享文件和打印机的一种通信协议 它为局域网内的不同计算机之间提供
  • 【数据结构与算法——TypeScript】树结构Tree

    数据结构与算法 TypeScript 树结构 Tree 认识树结构以及特性 什么是树 真实的树 相信每个人对现实生活中的树都会非常熟悉 我们来看一下树有什么特点 树通常有一个根 连接着根的是树干 树干到上面之后会进行分叉成树枝 树枝还会分叉
  • OpenCV实现人脸识别

    该程序对头像很小的图片效果不是很好 VS2017 OpenCV3 5 主要步骤 1 读取图像 2 转为灰度图 3 直方图均衡化 增加对比度 4 载入分类器 5 检测关于脸部位置 include
  • 地形平滑算法

    地形平滑算法 2013 06 20 18 33 2486人阅读 评论 0 收藏 举报 分类 OGRE 41 C C 10 版权声明 本文为博主原创文章 未经博主允许不得转载 拉出来的地下不平滑怎么办 笨办法就是美工一个顶点一个顶点的调整 而
  • AWB实现流程

    简介 本篇谈论下对AWB算法的调查和预研工作 内容概述 所谓AWB也就是自动白平衡的意思 白平衡在相机中很常见 主要是和色温 色彩还原 色调调整相关 当白平衡设置不佳的时候 常会出现如下这些情况 在日光灯的房间里拍摄的影像会显得发绿 在室内