日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

colorsys模块(RGB/HSV/HSL/YIQ)颜色模型简介

發布時間:2023/12/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 colorsys模块(RGB/HSV/HSL/YIQ)颜色模型简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

colorsys模塊

博主最近又進入了無聊模式,沒事就翻Python標準庫讀源碼讀著玩。但是里面有幾個模塊確實規模比較大,所以坑挖了一半就停了…現在電腦桌面上一堆沒填完的坑。總之慢慢填吧…

今天發現了這么一個模塊,非常簡單,也有些實用性(對于經常用Python處理圖片的同學來說),所以在此介紹一下。


colorsys模塊提供了用于RGB和YIQ/HLS/HSV顏色模式的雙向轉換的接口。它提供了六個函數,其中三個用于將RGB轉YIQ/HLS/HSV,另外三個用于將YIQ/HLS/HSV轉為RGB。

colorsys.rgb_to_yiq(r, g, b)
colorsys.rgb_to_hls(r, g, b)
colorsys.rgb_to_hsv(r, g, b)

colorsys.yiq_to_rgb(y, i, q)
colorsys.hls_to_rgb(h, l, s)
colorsys.hsv_to_rgb(h, s, v)

需要注意的是:除了I和Q之外的其他參數取值都是在[0, 1]范圍內的浮點數。所以傳入RGB參數的時候還需要額外做一個除以255的操作。

>>> import colorsys>>> colorsys.rgb_to_hsv(30/255, 50/255, 160/255)(0.6410256410256411, 0.8125, 0.6274509803921569)
  • 1
  • 2
  • 3

具體的轉換算法在這就不介紹了,源碼里都有,也就100多行,有興趣閱讀源碼的同學可以在Python根目錄/Lib目錄下找到colorsys.py這個源文件。在這主要介紹一下模塊中涉及到的四種顏色模型。

RGB

RGB是一種相加色,也就是根據紅綠藍三種光的相互疊加來顯示不同的顏色,RGB三個字母分別代表紅色Red、綠色Green和藍色Blue。那些分辨率比較小的的顯示器用手機拍出照片后放大看,就可以看到由紅綠藍三種顏色的發光管共同組成的一個像素,像素的顏色就是由這三個發光管的亮度決定的。

HSV和HSV

HLS也就是人們常說的HSL,分別代表色相Hue,亮度Lightness和飽和度Saturation。HSV也就是HSB,用過Photoshop的同學應該對HSB不陌生,它的三個字母分別代表色相Hue,飽和度Saturation和明度Value(Brightness)。

RGB在數學上可以用一個平面直角坐標系來表示,三個坐標軸分別代表紅綠藍三色的色值。但是用RGB來表示顏色時,顏色的變化對于人類來說并不是很直觀,于是就產生了HSL和HSV。HSL和HSV通過對顏色信息的進一步封裝,使其通過一種人類更加容易感知的形式來表示顏色變化。(色調的變化、亮度的變化、色彩純度的變化)

HSL和HSV通過對RGB顏色模型進行變換,將原本的平面直角坐標系轉換為一個圓柱坐標系。HSL顏色模型的頂端是白色,底端是黑色,可以用一個雙六角錐體來表現。而HSV顏色模型可以用一個倒六角錐體來表示,錐體的頂點是黑色。下圖來自英文維基百科,展現了RGB是怎么轉換為HSL和HSV的:

注意:這兩個顏色模型中對于色相的定義是相同的,但各自對于飽和度的定義是不同的。

下面兩張同樣來自維基百科的圖片展示了這兩個模型的差異:

YIQ

YIQ顏色模型使用亮度Luminance和色度Chrominance來表示顏色。用一組坐標來表示顏色的變化,Q表示了顏色色調由紫到綠的變化,I表示了顏色色調由橙到藍的變化。

關于YIQ的特點,百度百科-顏色空間作了以下總結:

YIQ顏色空間具有能將圖像中的亮度分量分離提取出來的優點,并且YIQ顏色空間與RGB顏色空間之間是線性變換的關系,計算量小,聚類特性也比較好,可以適應光照強度不斷變化的場合,因此能夠有效地用于彩色圖像處理。

下圖來自英文維基百科:


總結

其實模塊和源碼倒沒有什么難的,難的是幾個顏色模型的概念,在bing和百度上找到的中文資料都非常有限。如果有讀者對這方面感興趣的,推薦你們讀一下下面鏈接里的參考資料,有條件的最好買圖像處理方面的專業書籍來看。


參考資料:

https://docs.python.org/3.6/library/colorsys.html
https://en.wikipedia.org/wiki/HSL_and_HSV
https://en.wikipedia.org/wiki/YIQ

總結

以上是生活随笔為你收集整理的colorsys模块(RGB/HSV/HSL/YIQ)颜色模型简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。