原地址: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色彩空間轉換的更多相关文章

  1. ASP.NET MVC 4 部署到 Windows Azure 如何轉換時區設定

    由於公司慢慢地開始將新的專案都移往 Windows Azure 雲端平台做網站代管,漸漸地也開始遇到一些小問題,這些問題在還沒上雲端之前通常不會發生,像我們這次遇到的問題就跟顯示時間有關.由於 Win ...

  2. mysql 將時間戳直接轉換成日期時間

    from_unixtime()是MySQL裏的時間函數 Sql代碼 select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') ...

  3. [ElasticSearch] 如何使用中文分詞ik與繁簡轉換stconvert插件

    一. 環境安裝 ElasticSearch(以下簡稱ES)安裝已經算相對簡單了, 但要使用需要配置的插件, 對剛入門的新手還是有點麻煩, 所幸medcl大神提供一個配置好的ES-rtf版本, 新手們在 ...

  4. javascript中的function命名空間與模擬getter、setter

    function的命名空間 在javascript中,function也可以擁有自己的命名空間例如以下這段程式碼: 12345678 function () { return 'I am A';} A ...

  5. 高效率dc升壓轉換器 應用技巧談 功率設計

    為便攜式電子設備開發電源電路要求設計工程師通過最大程度地提高功率和降低整個系統的功耗來延長電池使用壽命,這推動器件本身的尺寸變得更小,從而有益于在設計終端產品時獲得更高靈活性.這種設計的最重要元器件之 ...

  6. Marlin 溫度感應器 數值轉換對應表

    Marlin 溫度感應器 數值轉換對應表   (2014/03/27)Update: 自己實測了這個自動產生的對應表,結果測得的溫度與實際值仍有相當大的誤差.看來還是要回頭用測量的方式來校正溫度... ...

  7. 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具

    花了週末兩天時間,將opencc移植成WIN10-UWP可用的庫,並完成自己的繁簡轉換工具. 我的繁簡轉換工具下載地址為:https://www.microsoft.com/store/apps/9n ...

  8. 用EXCEL做快速傅立葉轉換_FFT in Excel

    转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...

  9. (C/C++) string / *char / int 基本轉換

    網路上有許 string / *char / integer 基本轉換方式 string 與 *char 互相轉換的方法 /* string to *char */ string ssbuf1 = & ...

随机推荐

  1. 基于visual Studio2013解决面试题之1207堆排序

     题目

  2. CEGUI 输入法窗口实现

    游戏中经常要输入汉字,但当我们游戏没有自己实现输入法窗口时,windows会使用用户安装的输入法,但这个输入法窗口只会显示在游戏窗口外头,而且当我们游戏全屏时(真全屏,不是那种窗口式的假全屏),屏幕上 ...

  3. HDU1686——Oulipo

    Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...

  4. Delphi - SEH研究

    技术交流,DH讲解. 前几天一个朋友在弄游戏外挂想带NP调试,就像自己来捕获游戏的异常.好像就要用到SEH这方面的知识.一起研究了一下,这里看下研究 和 在网上找的资料吧.SEH就是Structure ...

  5. python中文注释及输出出错

    今天开始接触python,中文报错,你懂的,不细说. 网上很多类似的解决方案,有不是很明确,例如:http://blog.csdn.net/chen861201/article/details/770 ...

  6. css3 animation 参数详解

    animation: name 2s ease 0s 1 both有人知道这后面的参数都代表什么意思吗 name 就是你创建动画的名称 2S表示的时长 ease表示运动效果 0S表示延迟时间 1表示的 ...

  7. dos批量替换当前目录后缀名

    有时候有些后缀名不满足条件,就需要进行批量的替换,如果人为的去替换,那么如果量少的话还好说,量多的话一个个去替换就太傻了,今天从网络上面查找了一些批量替换的dos命令,用起来还挺好用的,就直接把代码贴 ...

  8. hibernate简单介绍

    1.   Hibernate是什么? hibernate是 轻量级的 ORM 框架. ORM全称object/relationmapping [对象/关系映射]. Hibernate主要用来实现Jav ...

  9. struts2 一个简洁的struts.xml

    struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUB ...

  10. GoldentGate Oracle to Oracle 初始化具体解释

    一.安装GoldenGate[源端,目标端] 1.创建ogg文件夹 [root@source ~]# mkdir /DBSoft/ogg [root@source ~]# cd /DBSoft/ogg ...