zoukankan      html  css  js  c++  java
  • 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台科大資管所碩士論文—秀拉點描派之電腦模擬。

  • 相关阅读:
    LoadRunner最新版本11.5
    NeoLoad 4.1 号称第一款全面支持移动性能测试的工具
    【广州】QTP自动化测试实战训练
    Oracle动态性能视图V$SESSION_LONGOPS
    Oracle体系(转)
    DBMS学习(一)
    C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
    .NET下读取PDF文本总结[转]
    处女篇
    网站开发周期
  • 原文地址:https://www.cnblogs.com/lanye/p/3736335.html
Copyright © 2011-2022 走看看