RGB與CIELAB色彩空間轉換
原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/
之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色彩空間轉換至CIE L*a*b*色彩空間。
- 這時候我們想知道,為何需要將RGB色彩空間轉換至CIE L*a*b*色彩空間?
一般影像在儲存像素的色彩時,使用RGB色彩空間來表示一個像素的顏色,這種表示方法可用來傳達一個像素的色彩在紅、綠、藍三個頻道(channel)中的相關性;但是,從RGB表示法無法得知像素的明亮度(luminance)、飽和度(saturation)及色相(hue)為何,因此,我們將像素的色彩由RGB色彩空間轉換至CIELAB(或CIE L*a*b*)。
接下來介紹RGB和CIELAB如何互轉。
#RGB與CIELAB色彩空間轉換
CIELAB色彩空間具有視覺上的均勻性(perceptually uniform),也就是說值的變化量和視覺上感知到的變化量是相同的,例如:值從100變為110與值從0變為10的感覺是相同的,這種表示方法較接近人類的視覺系統,而其它的色彩空間則較不具有這種特性。
CIELAB色彩空間的表示法為(L*, a*, b*),L*代表黑色到白色間的位置,也就是明亮度(luminance),範圍是0~100;a*為綠色(green)到紫紅色(magenta)間的位置,範圍是-500~500;b*為藍色(blue)到黃色(yellow)間的位置,範圍是-200~200;距離圓心愈近飽和度愈底。

為CIELAB色彩空間。

為當L*為25、50、75 時的橫切面。
#RGB 轉CIELAB 色彩空間
先將RGB的值調整為介於0~1之間,再將色彩空間轉換至CIE XYZ色彩空間,以下為其轉換矩陣:

再由CIE XYZ色彩空間轉換至CIELAB色彩空間,方法如下:


#CIELAB轉RGB色彩空間
先將CIELAB色彩空間轉換至CIE XYZ色彩空間,方法如下:


再由CIE XYZ色彩空間轉換回RGB色彩空間,轉換矩陣如下:

最後,將RGB的範圍由0~1調整為0~255。
參考:WiKi - Lab color space、台科大資管所碩士論文—秀拉點描派之電腦模擬。
RGB與CIELAB色彩空間轉換的更多相关文章
- ASP.NET MVC 4 部署到 Windows Azure 如何轉換時區設定
由於公司慢慢地開始將新的專案都移往 Windows Azure 雲端平台做網站代管,漸漸地也開始遇到一些小問題,這些問題在還沒上雲端之前通常不會發生,像我們這次遇到的問題就跟顯示時間有關.由於 Win ...
- mysql 將時間戳直接轉換成日期時間
from_unixtime()是MySQL裏的時間函數 Sql代碼 select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') ...
- [ElasticSearch] 如何使用中文分詞ik與繁簡轉換stconvert插件
一. 環境安裝 ElasticSearch(以下簡稱ES)安裝已經算相對簡單了, 但要使用需要配置的插件, 對剛入門的新手還是有點麻煩, 所幸medcl大神提供一個配置好的ES-rtf版本, 新手們在 ...
- javascript中的function命名空間與模擬getter、setter
function的命名空間 在javascript中,function也可以擁有自己的命名空間例如以下這段程式碼: 12345678 function () { return 'I am A';} A ...
- 高效率dc升壓轉換器 應用技巧談 功率設計
為便攜式電子設備開發電源電路要求設計工程師通過最大程度地提高功率和降低整個系統的功耗來延長電池使用壽命,這推動器件本身的尺寸變得更小,從而有益于在設計終端產品時獲得更高靈活性.這種設計的最重要元器件之 ...
- Marlin 溫度感應器 數值轉換對應表
Marlin 溫度感應器 數值轉換對應表 (2014/03/27)Update: 自己實測了這個自動產生的對應表,結果測得的溫度與實際值仍有相當大的誤差.看來還是要回頭用測量的方式來校正溫度... ...
- 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具
花了週末兩天時間,將opencc移植成WIN10-UWP可用的庫,並完成自己的繁簡轉換工具. 我的繁簡轉換工具下載地址為:https://www.microsoft.com/store/apps/9n ...
- 用EXCEL做快速傅立葉轉換_FFT in Excel
转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...
- (C/C++) string / *char / int 基本轉換
網路上有許 string / *char / integer 基本轉換方式 string 與 *char 互相轉換的方法 /* string to *char */ string ssbuf1 = & ...
随机推荐
- Embedded Linux Primer----嵌入式Linux基础教程--章节介绍
章节介绍 第一章,“导引”,简要介绍了Linux被迅速应用在嵌入式环境的驱动因素,介绍了与嵌入式Linux相关的几个重要的标准和组织. 第二章,“第一个嵌入式经历”,介绍了与后几章所构建的嵌入式Lin ...
- fzu 1913 Easy Comparison(字符串)
题目链接:fzu 1913 Easy Comparison 题目大意:给出一个字符串,计算与它按照字典序排序排列后的字符串有多少个位置不同. 解题思路:水体,sort一下,然后遍历一遍就好. #inc ...
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)
由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教. 一 ...
- uvc摄像头代码解析5
8.初始化uvc控制 8.1 重要结构体 struct uvc_control { //uvc控制 struct uvc_entity *entity; //uvc实体 struct uvc_cont ...
- java.io.EOFException解决
主要错误提演示样例如以下: 严重: IOException while loading persisted sessions: java.io.EOFException 严重: Exception l ...
- DM8168硬件平台
DM8168硬件平台 作者:Marvin_wu TMS320DM8168是一款多核SoC,它集成了包含ARM Cortex A8.DSP C674X+.M3 VIDEO.M3 VPSS等处理器.DS ...
- 大话spring.net之IOC
在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC). 控制反转(Inversion of Control,英文缩写为IoC).也 ...
- ASP.NET - GridView实现点击编辑列
加载: 点击编辑: 数据库设计: 前端代码: DataKeyNames="ID" 设置点击“编辑”选项的时候,要获取的值,一般获取ID主键,便于修改数据. AutoGenerat ...
- ubuntu安装iscsi
ubuntu安装iscsi target端:apt-get install iscsitarget ubuntu安装iscsi initiator端:apt-get install open-iscs ...
- Jquery发送ajax请求以及datatype参数为text/JSON方式
Jquery发送ajax请求以及datatype参数为text/JSON方式 1.方式一:datatype:'text' 2.方式二:datatype:'JSON' 3.使用gson-1.5.jar包 ...