1.色差的概念

色差是指两种颜色之间的差异, 常见的定义利用了设备独立颜色空间中的欧氏距离。

2.色差的计算方式

由于颜色差异的大多数定义是一个颜色空间内的距离,确定距离的标准方法是欧氏距离。如果目前有一个RGB(红、绿、蓝)元组并希望找到色差,计算上最简单的方法之一是考虑定义颜色空间的R、G、B线性维数。

为了更好地适应人类的感知,已经有很多尝试去加权RGB值,其中分量通常是加权的(红色30%,绿色59%,蓝色11%),但是这些在颜色的确定上明显较差,并且是对这些颜色亮度的贡献,而不是人类视觉的减弱程度对这些颜色的容忍度。更接近的近似值更合适(对于非线性sRGB):

一种较好的低成本近似(使用颜色范围为0-255)可以平稳地结合这两种情况

有许多颜色距离公式试图使用像HSV这样的颜色空间,将色调作为一个圆,将各种颜色放置在一个圆柱体或圆锥体的三维空间中,但大多数都只是对RGB的修改;如果不考虑人类颜色感知的差异,它们往往与a简单欧几里德度量。

3.颜色空间介绍

颜色空间是RGB像素值(例如:{255,0,0}和可感知颜色之间的映射,表示为xy(来自CIE 1931 xyY空间)或a *b*(来自CIELAB L* A *b*空间).没有颜色空间,RGB水平没有意义。•图像传感器没有标准的颜色响应。它们的输出必须转换为标准颜色空间(使用颜色校正矩阵)。•CIE 1931年的图表与设备无关,但在感知上并不一致。外面的“马蹄铁”代表了人类视觉的局限。•色彩空间的特征是色域(可以表示的颜色范围:CIE 1931年图表中的三角形)。sRGB(低色域)是Windows/Internet标准。

L * a * b * (CIELAB)表示:

4.色差在不同颜色空间的计算方法

CIELAB和CIELUV是相对感知上一致的空间,它们被用作欧几里得色差度量的空间。CIELAB版本被称为CIE76。然而,这些空间的不均匀性后来被发现,导致了更复杂的公式的产生。多年来,CIELAB颜色空间中的感知不一致性导致CIE对其定义进行了改进,从而产生了1994年和2000年的高级公式(如CIE所建议)。这些不均匀性很重要,因为人眼对某些颜色比其他颜色更敏感。一个好的度量标准应该考虑到这一点,这样“仅仅显著的差异”的概念才有意义。否则,在颜色空间的一部分中,某个ΔE在两种颜色之间可能是不重要的,而在另一部分中是显著的。

  • CIE76

给定CIELAB颜色空间中的两种颜色,CIE76色差公式定义为:

  • CIE94

1976年的定义被扩展到处理感知的不均匀性,同时保留CIELAB颜色空间,通过引入应用程序特定的权重从汽车油漆测试的容忍数据。ΔE(1994)在L*C*h*颜色空间中被定义,其亮度、色度和色调的计算与L*a*b*坐标不同。给定参考颜色和另一个颜色,则色差为:

  • CIEDE2000

由于1994年的定义没有充分解决感知一致性的问题,CIE改进了他们的定义,增加了五处修正:

  • 一个色调旋转项(RT),用来处理有问题的蓝色区域(色相角度在275度附近);
  • 中性色补偿(L*C*h差异中的素色值);
  • 亮度补偿(SL);
  • 色度补偿(SC);
  • 色调补偿(SH);

色差(color diffference)在不同颜色空间下的计算方式相关推荐

  1. SwiftUI 色彩教程之 01什么是色差Color difference

    SwiftUI 色彩教程之什么是色差Color difference 什么是色差Color difference 两种颜色之间的差异或距离是颜色科学中关注的指标.它允许对以前只能用形容词描述的概念进行 ...

  2. 在CIELab颜色空间下使用八方向Sobel算子实现边缘检测

    参考河北师范大学硕士学位论文--基于八方向Sobel算子的边缘检测算法研究. 由于自己实现滤波器运算,计算速度很慢,以后有能力再进行改进. 算子定义如下: 算法思路: 1.将RGB图像转化为CIELa ...

  3. 怎么在 PhotoShop 里把在 Gamma 颜色空间画的图,转换到 Linear 颜色空间下

    每个项目总会有一些因为历史问题遗留下来的坑,就比如有一大批的 ui 贴图都是在 ps 的 gamma 颜色空间下画的,很多很多...... 现在需要把工程转到 Linear 颜色空间下,你不能让人家重 ...

  4. Mac OS X 下 TAR.GZ 方式安装 MySQL

    Mac OS X 下 TAR.GZ 方式安装 MySQL 注意: 本篇文章适用与 MySQL 5.6 版本的安装, 但已不再适用 5.7 的安装, 5.7 的安装方式请参见:<Mac OS X ...

  5. 黑色背景下,计算照片白色的区域面积和周长

    黑色背景下,计算照片白色的区域面积和周长 import cv2 img = cv2.imread('E:\Python-workspace\OpenCV\OpenCV/beyond.png',1)#第 ...

  6. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

  7. EJB3.0学习笔记---Bean实现多个接口的情况下定义,访问方式:

    2.EJB实现类型的定义,用注解的方式,当一个EJBbean,实现了多个接口的时候, 需要用注解的方式指明哪一个接口是用Remote方式访问,哪一个接口使用 local方式访问 3.实现多个接口的情况 ...

  8. linux实现单机qq_Linux后台服务器开发——Linux下进程间通信的方式有哪些?

    Linux下进程间通信的方式有: 管道 消息队列 信号 信号量 共享存储 套接字 一.管道 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道 PIPE无名管道 详情参阅:ht ...

  9. Mac OS X 下 TAR.GZ 方式安装 MySQL5.6

    为什么80%的码农都做不了架构师?>>>    Mac OS X 下 TAR.GZ 方式安装 MySQL 注意: 本篇文章适用与 MySQL 5.6 版本的安装, 但已不再适用 5. ...

  10. 什么情况下单独计算机械台班,投标or签证,机械台班价如何确认?

    原标题:投标or签证,机械台班价如何确认? 经过调研,我们发现大家通常在投标报价,工程变更.签证,班组结算.机械台班用量大定额与实际不符的情况下都会要亲自对机械台班进行询价,其中有82%的用户询价频率 ...

最新文章

  1. 数学分析高等代数考研试题荟萃[更新至2017年10月1日]
  2. IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
  3. JavaScript判断字符串中包含另一个字符串(QML 中使用)
  4. knockout + easyui = koeasyui
  5. 后端技术:MyBatis动态SQL写法介绍
  6. Nginx:限流、缓存、黑白名单等功能详解!
  7. 演练 多班分数录入统计优秀人数
  8. 使用动态优先权的进程调度算法的模拟_我爱OS第12讲:系统调度
  9. java多维数组的反射类型_Java多维数组和Arrays类方法总结详解
  10. C++程序中可以没有using namespace std;这一句吗
  11. 在任意目录导入自定义库
  12. python scipy.stats 正态分布_Python Scipy stats.normaltest()用法及代码示例
  13. uniapp 自定义unicode 并使用
  14. 挑战性价比,刷新你对千元级投影仪的认知,这份详细评测送给你
  15. 天耀18期 - 12.数据结构-1-2.LinkedList【作业】-猜数字.doc
  16. spark graphx实现共同好友的聚合
  17. ZFS case : top CPU 100%sy, when no free memory trigger it.
  18. python一个月收入_我月薪5000,靠Python搞副业月入3万
  19. 直播系统代码,自行更改导航栏样式
  20. Chrome浏览器突然无法打开的解决方法

热门文章

  1. [MacOS 10.15.5 ] building for macOS-x86_64 but attempting to link with file built for macOS-x86
  2. matlab开关电源仿真软件,开关电源仿真设计软件选择
  3. 【使用教程】面向回家编程-12306智能刷票,订票
  4. HTML5期末大作业:动漫网站设计——千与千寻(10页) 含设计报告 HTML+CSS+JavaScript 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品
  5. Jave基本知识(一)
  6. C语言小程序——验证哥德巴赫猜想
  7. VMware Workstation 的 MacOS 解锁补丁 Unlocker 3.0.4
  8. 校准 Linux 服务器的时间
  9. 教务系统的服务器管理,勤哲Excel服务器在学校教务管理中的应用
  10. python编程从入门到实践