灰度世界算法(Gray World Algorithm)

2023-10-26

转自:http://blog.csdn.net/u010839382/article/details/41789261?utm_source=tuicool

人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能,

不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡(校正)算法,消除光照环境对颜

色显现的影响。灰度世界算法是最常用平衡算法。

一、灰度世界算法

灰度世界算法以灰度世界假设为基础,该假设认为:对于一幅有着大量色彩变化的图像,三个分量的平均值趋于同一灰

度值从物理意义上讲,灰色世界法假设自然界景物对于光线的平均反射的均值在总体上是个定值,这个定值近似地为“灰

色”。颜色平衡算法将这一假设强制应用于待处理图像,可以从图像中消除环境光的影响,获得原始场景图像。

算法执行步骤:

(1)一般有两种方法确定:

要么取固定值(如最亮灰度值的一半,八位显示的话即为128);

要么通过计算图像 三通道平均值 ,取

(2)计算三个通道的增益系数:;;

(3)根据Von Kries对角模型,对于图像中的每个像素,调整其分量分量:

这种算法简单快速,但是当图像场景颜色并不丰富时,尤其出现大块单色物体时,该算法常会失效。

:Von Kries提出,可用一个对角矩阵变换描述两种光照条件下同一物体表面颜色间的关系。假定在光照下感知

到的物体值分别为根据Von Kries对角理论有:


该理论实现不同光源间的转换。

二、Matlab实现

function Test()
I=imread('test.jpg');
y=GrayWorld(I);
y=uint8(y);
figure(1);imshow(I);
figure(2);imshow(y);




function y=GrayWorld(Image)
r=Image(:,:,1);
g=Image(:,:,2);
b=Image(:,:,3);


avgR = mean(mean(r));
avgG = mean(mean(g));
avgB = mean(mean(b));
avgRGB = [avgR avgG avgB];
grayValue = (avgR + avgG + avgB)/3
scaleValue = grayValue./avgRGB;


newI(:,:,1) = scaleValue(1) * r;
newI(:,:,2) = scaleValue(2) * g;
newI(:,:,3) = scaleValue(3) * b;


y=newI;


测试结果:



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

灰度世界算法(Gray World Algorithm) 的相关文章

  • MATLAB学习笔记(系统学习)

    教程来源 1 MATLAB教程 https www cainiaojc com matlab matlab tutorial html 不断学习补充中 文章目录 一 MATLAB基础 1 在MATLAB中使用分号 2 save命令用于将工作
  • 【Matlab学习笔记】【图像滤波去噪】中值滤波

    中值滤波程序 clc clear all J imread F 图像去噪 4 jpg I rgb2gray J subplot 1 2 1 imshow I title 原始图像 K medfilt2 I 4 4 进行中值滤波 subplo
  • Matlab将double类型转换为正整数类型

    这个求和运算 countsum round中数据类型为double 不能直接累加 也可能是可以的 但是不知道哪个地方设置的问题 解决方法 如下
  • 生成服从正态分布的随机数

    1 matlab中normrnd函数 功能 生成服从正态分布的随机数 语法 R normrnd MU SIGMA R normrnd MU SIGMA m R normrnd MU SIGMA m n 说 明 R normrnd MU SI
  • 【Matlab学习笔记】【编程实例】一(将两幅图像调整为相同的尺寸大小)

    一 问题的背景 很多时候我们想用处于不同时期或环境下的同一事物的图片做一个对比 用来形成对照 显示差别 由于不同的图片的尺寸可能不完全一致 要将两幅图片拼接到一起 首先要做的就是图片尺寸的统一 二 问题的解决方法和思路 1 读取作对比的两幅
  • MATLAB三维散点图的绘制(scatter3、plot3)

    1 函数scatter3 用法 scatter3 x y z c c 为颜色 需和x y z长度相同 例子 x 4229042 63 4230585 02 4231384 96 4231773 63 4233028 58 4233296 7
  • 【Matlab学习笔记】【数学形态学】数字图像处理(MATLAB版)冈萨雷斯第九章学习笔记

    1 形态学源于生物学 最初用于处理动植物的形状和结构 用于提取区域的形状 边界 骨骼或凸壳 形态学图像处理主要用于图像预处理和后处理 包括形态学滤波 细化和裁剪等 2 图像的形态学处理 由二值图像开始 逐步扩展到灰度图像 彩色图像 由简单到
  • 误差函数erf

    1 erf误差函数介绍 erf 是误差函数 它是高斯概率密度函数的积分 性质 2 erf误差函数在matlab中实现 erf函数在matlab里面可以直接作为内置函数使用 erf 0 与下面式子等价 syms s f f exp s 2 e
  • 利用Matlab绘制图像中的某一行或者某一列的灰度曲线

    filename C Users Administrator Desktop 透视变换 包含裂缝的整个图片 123 jpg imgData imread filename imshow imgData 该函数可以用来显示已经读入的数据 A
  • 【Matlab学习笔记】【函数学习】nargin 参数

    转自 http baike haosou com doc 6930505 7152746 html 在matlab中定义一个函数时 在函数体内部 nargin指出了输入参数的个数 特别是在利用了可变参数列表的函数中 用nargin获取输入参
  • matlab学习笔记1

    1 常见用法 1 创建匿名函数 返回该函数句柄 输入参数 表达式 fun x 100 x 2 x 1 2 2 1 x 1 2 定义了一个函数 2 给函数名取别名 函数名 还有其他用法 可参考 https blog csdn net kaev
  • 【Matlab学习笔记】matlab的编程规则

    1 Matlab的续行符 关于matab的换行 在matlab代码的编写过程中 有时会遇到代码在一行显示不开了 或者在txt文档 或其他代码编辑后 由于其本身格式的作用 代码可能会自动换行 将这样的代码直接粘贴到matlab的命令窗口运行
  • 高斯滤波的快速实现

    http www cnblogs com ImageVision archive 2012 06 11 2545555 html 二維高斯函數具有旋轉對稱性 處理後不會對哪一個方向上的邊緣進行了過多的濾波 因此相對其他濾波器 具有無法比擬的
  • matlab-lsqcurvefit函数

    lsqcurvefit函数 least squares curve fitting 用于最小二乘法求解非线性曲线拟合问题 即已知输入向量xdata和输出向量ydata 并且知道输入与输出的函数关系为ydata F x xdata 但不知道系
  • 【算法学习】【图像增强】【Retinex】White Patch Retinex

    转自 http blog 163 com yuyang tech blog static 21605008320130910480689
  • MATLAB 学习资料整理

    MATLAB学习资料集合 https www ilovematlab cn thread 265500 1 1 html MATLAB官网文档 https ww2 mathworks cn help matlab index html MA
  • 【沧海拾昧】MATLAB/Simulink仿真的基本操作

    C0402 沧海茫茫千钟粟 且拾吾昧一微尘 沧海拾昧集 CuPhoenix 阅前敬告 沧海拾昧集仅做个人学习笔记之用 所述内容不专业不严谨不成体系 如有问题必是本集记录有谬 切勿深究 目录 一 新建Simulink仿真 二 几种常用的模块和
  • 论文中图片加方框 matlab代码

    转自 http blog csdn net majinlei121 article details 52334171 加方框函数 cpp view plain copy function I rgb DrawRectangle I Left
  • Matlab连接字符串的方法

    Matlab连接字符串的方法 2011 04 20 13 22 42 转载 标签 杂谈 分类 matlab 在Matlab中 想要将两个字符串连接在一起 有以下的方法 假定有两个字符串 gt gt str1 Iloveyou str2 12
  • 分层聚类算法

    分层聚类算法 转载 看到很多地方都讲到分层聚类法 这到底是什么东东 今天来研究一下 分层聚类法是聚类算法的一种 聚类算法是数据挖掘的核心技术 把数据库中的对象分类是数据挖掘的基本操作 其准则是使属于同一类的个体间距离尽可能小 而不同类个体间

随机推荐

  • 多线程、异步爬取数据(优化篇)

    爬虫优化 一般方法 多线程 异步 scrapy框架 理解要点 scrapy文件目录 middleware py jd refer py item py pipeline py debug py 一般方法 京东商品数据爬取 91 403s p
  • DOS操作命令

    DOS操作命令 1 cleanmgr 打开磁盘清理工具 2 compmgmt msc 计算机管理 3 conf 启动系统配置实用程序 4 charmap 启动字符映射表 5 calc 启动计算器 6 chkdsk exe Chkdsk磁盘检
  • 如何检测手机当前为“桌面”(desktop)状态

    介绍 一些桌面软件会在用户把手机切换到桌面 desktop 时显示一些特定的信息 如图片 滚动文字等 达到一种个性桌面的效果 这里就介绍一种检测 桌面 的方法 S60 2nd的 桌面 是电话应用 S60 3rd的 桌面 是Idle exe
  • 声明式事务源码解析--- Spring源码从入门到精通(二十六)

    上篇文章介绍了事务代码的实例 声明式事务 Spring源码从入门 到精通 二十五 这篇文章主要介绍事务源码解析 一 EnableTransactionManagerment 里面import一个TransactionManagementCo
  • 【RDMA】技术详解(一):RDMA概述

    目录 0 前言 一 技术背景 1 传统的 TCP IP 网络通信的弊端 2 新的网络通信技术 TOE and RDMA 2 1 TOE TCP IP协议处理工作从CPU转移到网卡 2 2 RDMA 绕过CPU 数据直接 传 到对端内存 二
  • linux命令 uname -r 和 uname -a 的详解

    1 uname r 显示操作系统的发行版号2 uname a 显示系统名 节点名称 操作系统的发行版号 内核版本等等 系统名 Linux 节点名称 qyw 操作系统的发行版号 3 10 0 957 21 3 el7 x86 64 命名规则
  • Nginx负载均衡session会话保持方法

    负载均衡时 为了保证同一用户session会被分配到同一台服务器上 可以使用以下方法 1 使用cookie 将用户的session存入cookie里 当用户分配到不同的服务器时 先判断服务器是否存在该用户的session 如果没有就先把co
  • Java 秒杀方案(下)

    技术点 前端 Thymeleaf Bootstrap Jquery 后端 SpringBoot MyBatisPlus Lombok 中间件 Redis RabbitMQ 秒杀方案简介 本短文完成项目搭建 分布式 Session 和秒杀功能
  • Linux DDR3寻址地址映射

    1 相关原理 DDR3内部相当于存储表格 和表格的检索相似 需要先指定 行地址 row 再指定列地址 column 这样就可以准确的找到需要的单元格 对于DDR3内存 单元格称为基本存储单元 也就是每次能从该DDR3芯片读取的最小数据 存储
  • C语言编译过程详解

    前言 C语言程序从源代码到二进制行程序都经历了那些过程 本文以Linux下C语言的编译过程为例 讲解C语言程序的编译过程 编写hello world C程序 hello c include
  • 【mmYOLO】促进视觉项目落地,主打工程经验和实用。从原理配置到属性设置,从模型训练到模型评测

    MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具箱 它是 OpenMMLab 项目的一部分 目前支持的任务有目标检测 旋转框目标检测 具有如下三个特性 统一便捷的算法评测 MMYOLO 统
  • MYSQL 根据不同字段的汇总相同字段的总数

    需求 汇总一个用户不同支付方式的购买的总杯数 buy num 杯数 pay code 支付方式 pay name 支付名称 pay status 支付状态 ms order 订单表 ms user 用户表 SELECT u id pay n
  • 微信小程序开发之视频video组件报错:渲染层网络层错误

    微信小程序开发之视频video组件报错 渲染层网络层错误 视频正常播放 暂停 使用正常 但报错 From server 61 147 235 115 console error VM1074 1 anonymous VM1101 2 VM1
  • LCP概念

    http blog csdn net zzfcnc article details 6660456 对于PPP协议 可以讲解的内容非常多 这个协议的应用也非常的广泛 那么这里我们就重点讲解一下LCP的内容 首先我们需要来哦接一下ppp协议的
  • python实现跨excel的工作表sheet之间的复制

    python 将test1的Sheet1通过 跨文件 复制到test2的Sheet2里面 包括谷歌没有能搜出这种问题答案 我们贴出代码 我们加载openpyxl这个包来解决 from openpyxl import load workboo
  • 【数据库 Mysql查询系列】--检索出stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。

    涉及到的两个表 代码如下 select sno as 学号 sname as 姓名 sex as 性别 mname as 专业 from stu major where stu mno major mno and mname in 计算机工
  • nodejs快速上手编写程序

    module export 和 exports 的区别 根本上的区别 exports 返回的是模块函数 module exports 返回的是模块对象本身 返回的是一个类 使用上的区别是 exports 的方法可以直接调用 module e
  • 普通树转二叉树

    实现方法 对于普通树转二叉树 要记住6个字口诀 左儿子 右兄弟 实现的步骤是这样的 将树的根节点直接作为二叉树的根节点 将树的根节点的第一个子节点作为根节点的左儿子 若该子节点存在兄弟节点 则将该子节点的第一个兄弟节点 方向从左往右 作为该
  • H无穷控制

    H无穷优化控制问题可归纳为 求出一个使系统内部稳定的控制器K s 使闭环传函Tzw的无穷范数极小 LQG的弱点 对控制的一个主要挑战使多变量控制系统设计 因为MIMO系统的传函是一个矩阵 LQG是一种在状态空间的框架内 对MIMO系统进行设
  • 灰度世界算法(Gray World Algorithm)

    转自 http blog csdn net u010839382 article details 41789261 utm source tuicool 人的视觉系统具有颜色恒常性 能从变化的光照环境和成像条件下获取物体表面颜色的不变特性