Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /opt/bitnami/wordpress/wp-includes/functions.php on line 6114
February 28, 2024 - 八寶周

[Python] 圖像處理 – Display 001 – 色彩基礎

顏色是我們認識世界的主要管道,那麼在圖像辨識中,電腦又如何分辨這個差異呢?我們在學習過程中,又需要先理解那些色彩概念呢?

【前言】

顏色是我們認識世界的主要管道,那麼在圖像辨識中,電腦又如何分辨這個差異呢?我們在學習過程中,又需要先理解那些色彩概念呢?

【預計內容】

  1. 亮點與像素數值
  2. 色彩格式

【主要內容】

1. 亮點與像素數值

在圖像處理中,數字 0 到 255 代表了單頻道的亮度,其中 0 最暗而 255 最亮。以我們最常見的 RGB 色彩為例,若像素為(0, 0, 0)則會顯示為黑點。

但是,假設我們擁有一張 720 x 1080 的相片,是不是代表需要將 777,600 個陣列排列成 2D 陣列儲存像素色彩?答案是否定的,在前面我們提到了頻道一詞,多數的色彩格式都是透過 3 層 2D 陣列重新排列,也正是分層的性質,讓電腦能輕鬆轉換色彩格式,甚至能額外疊加透明度(alpha)頻道。

圖 1:R/G/B 分層與圖片結果

2. 色彩格式

那除了我們生活中常用的 RGB,其實還有許多的顏色格式,以下就簡單介紹給各位

圖 2:各種色彩格式與其頻道數量
2.1 色彩分類 — RGB 與 BGR

RGB 與 BGR 兩個格式不同點主要在於「紅」與「藍] 的顏色互換,其中 RGB 色系溫暖而 BGR 色系陰冷。但有趣的是,由於早期的相機 / 影片甚至 Windows 都採用 BGR 色調,在影像處理的重要套件 opencv 開發時期選用相同格式,造就後來圖像處理中 BGR 反而是主流喔~~

2.2 飽和度與亮度 — HLS 與 HSV

上面提到的 H 都代表色調(hue)而 S 為飽和度(Saturation),看似不同的 L 代表亮度(Lightness)而 V 代表明度(Value)。看似相同的樣貌,但由於色彩模型的設定而有完全不同的結果。

圖 3:RGB、HSL 與 HSV 的色彩模型比較 (來源:參考 [1])
2.3 色彩空間 — LAB

全名為 CIE L*a*b*,是由國際照明委員會提出,針對描述所有人眼可見顏色之最完整模型。其中 L* 也代表亮度,而 a* 則是綠與紅,b* 為黃與藍。但特殊的點是,該模型只能在 3D 的情況下才能完全表現。

2.4 灰階圖像 — Grayscale

講了那麼多種色彩格式,但歷史最早出現的灰階圖像怎麼能錯過呢!首先,灰階是我們這期中唯一單頻道的格式,提出過的算法有許多種,但最具信任的當然也不是最簡單的各 1/3 占比啦~基本上算法變化就是針對人眼所做的調整,比如後續會使用的 opencv 其算法 [2] 為 Y = 0.299 x R + 0.587 x G + 0.114 x B。

【後話】

在這篇文章中,我們講述了色彩的呈現方式與不同之處,那在未來,針對不同情境都可能要依靠不同的色彩去做分析,因此對於分類需要有一定的印象。

那我們就下期再會啦~

【參考資料】

[1] N’guessan, Sylvia & Ling, Nam. (2018). Saturation-aware human attention region of interest algorithm for efficient video compression. Multimedia Tools and Applications. 77. 10.1007/s11042-018-6108-0.

[2] Color Conversion, OpenCV Documentation v4.9.0. https://docs.opencv.org/3.4/de/d25/imgproc_color_conversions.html

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.