HSI颜色空间及其应用
生活随笔
收集整理的這篇文章主要介紹了
HSI颜色空间及其应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from:http://nkwavelet.blog.163.com/blog/static/22775603820147197503722/
【摘要】
本文首先闡述HSI顏色模式的基本特性,然后介紹RGB和HSI顏色空間互相轉換的算法,并給出算法核心代碼和效果圖,最后將HSI顏色空間應用到圖像增強,得到幾個增強之后的效果圖。
【參考資料】? RGB與HSI顏色模型的轉換方法對比研究 博客:顏色空間之HSI 博客:顏色空間轉換(一)
1. ?HSI顏色空間簡介
? ? ?HSI顏色空間是從人的視覺系統出發,用色調(Hue)、色飽和度(Saturation或Chroma)和亮度(Intensity或Brightness)來描述色彩。HSI顏色空間可以用一個圓錐空間模型來描述。用這種描述HIS色彩空間的圓錐模型相當復雜,但確能把色調、亮度和色飽和度的變化情形表現得很清楚。 ? ? ?RGB 向HSI 模型的轉換是由一個基于笛卡爾直角坐標系的單位立方體向基于圓柱極坐標的雙錐體的轉換。基本要求是將RGB 中的亮度因素分離,將色度分解為色調和飽和度,并用角向量表示色調,如下圖所示。 ?2. ?RGB轉換至HSI的幾種常見方法 ? ? ??下圖列出幾種常用的RGB-HSI轉換公式: ? ? ? ?幾何推導法最為經典,可追溯到30多年前(Tenenbaum,1974)。基本思路是先分離出亮度信息,將三維空間降為二維。在二維平面內利用解析幾何的向量點積公式求出HSI 模型的色調分量值。 ? ? ? ? 坐標變換法的轉換思路是基于RGB立方體沿對角線垂直豎立后與Munsell雙錐體相似(圖4)。通過直角坐標系的旋轉,求出轉換矩陣,并與極坐標系轉換,得出轉換公式(Kenneth,1996)。 分段定義法是直接根據色度學定義得出轉換公式。根據色度學的基本概念,將三基色RGB的色調分別定為0°,120°, 240°。RGB三分量中某分量最大時,該分量即為主分量,色調值位于該分量附近(正負60°范圍)。偏差幅度由另外二個分量的相對差異歸一化后決定(Foley,1990)。此方法所得模型常稱作HSL模型。 ? ? ? ?其中,算法1和算法2的色調H公式只是形式不同,實則等價。? ? ? ? ?幾套公式轉換后的H值域為[0, 2π],飽和度和亮度均為[0,1]。算法2的取值范圍比較特別,S為[0, 26],I為[0,3] 。? ? ? ? ?最后,算法5所得轉換模型的空間分布平均性最好,值域標準,適應性強。 HSI各分量間相對獨立,在應用轉換時,可以將上述幾套公式中的HSI公式交叉使用,但也因此容易產生混淆。 ? 3. RGB與HSI互相轉換公式
? ? ? ?此處的RGB轉HSI的公式采用算法1(幾何推導法),HSI轉RGB是算法1的逆運算。 ? ? ? ?首先是RGB轉HSI: ? ? ? ???然后是HSI轉RGB: ? ? 4. ?RGB與HSI互相轉換的C代碼? ? ? ? ? 首先給出RGB轉HSI的代碼,算法1: ? ? ? ?? ? ? ? ?然后是RGB轉HSI的代碼,算法4: ??? ? ?最后是與算法1匹配的HSI轉RGB代碼: ?5. ?算法1和算法4速度測試 ? ? ? 此處測試的代碼就是上面給出的代碼,沒有做任何優化。測試代碼如下: ? ?結果是:算法4的時間是算法1的一半 ? ??? ?6. ?算法4相對算法1的誤差分析? ? ? ? 算法1是最經典的RGB轉HSI算法,也是最常用的算法,在某些對速度要求很高的情況下,我們可以用算法4替代算法1以提高圖像處理速度。因此有必要分析一下這種快速算法的誤差。以下是測試誤差的代碼:
???結果是:平均誤差是0.12弧度(6.8756度),最大誤差是0.191弧度(10.9483度)。 色調H將[0, 2*PI)等分為3個扇形,這個測試表明,算法4的誤差不會擴散到另外一個扇區,因此不會影響到HSI轉RGB的公式表達式。 ?? 7. HSI顏色空間小應用 ? ??將RGB轉換到HSI空間,通過S變量可以調整圖像的飽和度,以下是一個效果圖:
? ? ? ?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (原始圖像) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(飽和度增強后圖像)
【參考資料】? RGB與HSI顏色模型的轉換方法對比研究 博客:顏色空間之HSI 博客:顏色空間轉換(一)
1. ?HSI顏色空間簡介
? ? ?HSI顏色空間是從人的視覺系統出發,用色調(Hue)、色飽和度(Saturation或Chroma)和亮度(Intensity或Brightness)來描述色彩。HSI顏色空間可以用一個圓錐空間模型來描述。用這種描述HIS色彩空間的圓錐模型相當復雜,但確能把色調、亮度和色飽和度的變化情形表現得很清楚。 ? ? ?RGB 向HSI 模型的轉換是由一個基于笛卡爾直角坐標系的單位立方體向基于圓柱極坐標的雙錐體的轉換。基本要求是將RGB 中的亮度因素分離,將色度分解為色調和飽和度,并用角向量表示色調,如下圖所示。 ?2. ?RGB轉換至HSI的幾種常見方法 ? ? ??下圖列出幾種常用的RGB-HSI轉換公式: ? ? ? ?幾何推導法最為經典,可追溯到30多年前(Tenenbaum,1974)。基本思路是先分離出亮度信息,將三維空間降為二維。在二維平面內利用解析幾何的向量點積公式求出HSI 模型的色調分量值。 ? ? ? ? 坐標變換法的轉換思路是基于RGB立方體沿對角線垂直豎立后與Munsell雙錐體相似(圖4)。通過直角坐標系的旋轉,求出轉換矩陣,并與極坐標系轉換,得出轉換公式(Kenneth,1996)。 分段定義法是直接根據色度學定義得出轉換公式。根據色度學的基本概念,將三基色RGB的色調分別定為0°,120°, 240°。RGB三分量中某分量最大時,該分量即為主分量,色調值位于該分量附近(正負60°范圍)。偏差幅度由另外二個分量的相對差異歸一化后決定(Foley,1990)。此方法所得模型常稱作HSL模型。 ? ? ? ?其中,算法1和算法2的色調H公式只是形式不同,實則等價。? ? ? ? ?幾套公式轉換后的H值域為[0, 2π],飽和度和亮度均為[0,1]。算法2的取值范圍比較特別,S為[0, 26],I為[0,3] 。? ? ? ? ?最后,算法5所得轉換模型的空間分布平均性最好,值域標準,適應性強。 HSI各分量間相對獨立,在應用轉換時,可以將上述幾套公式中的HSI公式交叉使用,但也因此容易產生混淆。 ? 3. RGB與HSI互相轉換公式
? ? ? ?此處的RGB轉HSI的公式采用算法1(幾何推導法),HSI轉RGB是算法1的逆運算。 ? ? ? ?首先是RGB轉HSI: ? ? ? ???然后是HSI轉RGB: ? ? 4. ?RGB與HSI互相轉換的C代碼? ? ? ? ? 首先給出RGB轉HSI的代碼,算法1: ? ? ? ?? ? ? ? ?然后是RGB轉HSI的代碼,算法4: ??? ? ?最后是與算法1匹配的HSI轉RGB代碼: ?5. ?算法1和算法4速度測試 ? ? ? 此處測試的代碼就是上面給出的代碼,沒有做任何優化。測試代碼如下: ? ?結果是:算法4的時間是算法1的一半 ? ??? ?6. ?算法4相對算法1的誤差分析? ? ? ? 算法1是最經典的RGB轉HSI算法,也是最常用的算法,在某些對速度要求很高的情況下,我們可以用算法4替代算法1以提高圖像處理速度。因此有必要分析一下這種快速算法的誤差。以下是測試誤差的代碼:
???結果是:平均誤差是0.12弧度(6.8756度),最大誤差是0.191弧度(10.9483度)。 色調H將[0, 2*PI)等分為3個扇形,這個測試表明,算法4的誤差不會擴散到另外一個扇區,因此不會影響到HSI轉RGB的公式表達式。 ?? 7. HSI顏色空間小應用 ? ??將RGB轉換到HSI空間,通過S變量可以調整圖像的飽和度,以下是一個效果圖:
? ? ? ?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (原始圖像) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(飽和度增強后圖像)
總結
以上是生活随笔為你收集整理的HSI颜色空间及其应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google Protocol Buff
- 下一篇: HSV(HSL)颜色空间及其应用