幾種色彩空間:html
Red 紅色,0-255
Green 綠色,0-255
Blue 藍色,0-255
算法
HSI色彩空間能夠用一個圓錐空間模型來描述。用這種 描述HIS色彩空間的圓錐模型至關複雜,但確能把色調、亮度和色飽和度的變化情形表現得很清楚。
一般把色調和飽和度通稱爲色度,用來表示顏色的類別與深淺程度。因爲人的視覺對亮度的敏感 程度遠強於對顏色濃淡的敏感程度,爲了便於色彩處理和識別,人的視覺系統常常採用HSI色彩空間, 它比RGB色彩空間更符合人的視覺特性。
色相 (Hue):指物體傳導或反射的波長。更常見的是以顏色如紅色,橘色或綠色來辨識,取 0 到 360 度的數值來衡量。
飽和度 (Saturation):又稱色度,是指色彩的強度或純度。飽和度表明灰色與色調的比例,並以 0% (灰色) 到 100% (徹底飽和) 來衡量。
亮度 (Intensity):是指顏色的相對明暗度,一般以 0% (黑色) 到 100% (白色) 的百分比來衡量。瀏覽器
HSL 表示 hue(色相)、saturation(飽和度)、lightness(亮度)
HSL 在概念上表示了一個雙圓錐體和圓球體(白色在上頂點,黑色在下頂點,最大橫切面的圓心是半程灰色)
色相決定顏色的本質,像我們說紅、澄、黃就是指一種色相,
飽和度是指顏色的深淺比例,顏色越深飽和度越高,白色所佔比例越高,飽和度越低,
亮度表示顏色的明暗程度,數值越大越亮網絡
HSV 表示 hue、saturation、value(色調)
HSV(色相,飽和度,明度)在概念上能夠被認爲是顏色的倒圓錐體(黑點在下頂點,白色在上底面圓心)機器學習
HSB 表示 hue、saturation、brightness(明度)。函數
Y 是亮度(Luminance),Cb、Cr 是色差(chrominance),Cb是藍色色差 ,Cr是紅色色差,雖然RGB與YCbCr都為三個通道無法節省儲存空間,但實際上可利用人類視覺對亮度比較敏感,而對彩度比較不敏感的特質來減少內存,也就是減少Cb、Cr的取樣個數。取樣格式有4:2:0、4:2:二、4:4:4三種,4:2:0格式表明每2×2的4個像素中,Y 會對每個像素取樣,而色差 CbCr 僅會在第一行兩個像素的中間取樣,所以8位元情況下,本來每個像素須要3byte儲存空間,4個像素須要12個byte,現在只要6個byte,減少了一半的內存,現今像Jpeg、Mpeg4等影像格式,都是利用YCbCr去壓縮的。學習
在CIE XYZ色彩空間中,有一組X、Y和Z的值,對應於紅色、綠色和藍色,並不是真的紅藍綠,而是使用匹配函數來計算出來。
spa
Lab色彩空間是顏色-對立空間,帶有維度L表示亮度,a和b表示顏色對立維度,基於非線性壓縮的CIE XYZ色彩空間坐標,Lab顏色被設計來接近人類視覺,致力於感知均勻性,L份量密切匹配人類亮度感知,所以能夠被用來通過修改a和b份量的輸出色階來作精確的顏色平衡,或使用L份量來調整亮度對比。當我們計算8位元或16位元圖時,R、G、B都轉成0到1之間的浮點數,好比R=R/(R+G+B),接著用下列公式進行轉換,分別獲得L、a、b的值。.net
HSL 和 HSV 兩者都把顏色描述在圓柱體內的點,這個圓柱的中心軸取值爲自底部的黑色到頂部的白色而在它們中間是的灰色,繞這個軸的角度對應於「色相」,到這個軸的距離對應於「飽和度」,而沿着這個軸的距離對應於「亮度」,「色調」或「明度」。
HSL 和 HSV 是設備依賴的 RGB 的簡單變換,(h, s, l) 或 (h, s, v) 三元組定義的顏色依賴於所使用的特定紅色、綠色和藍色「加法原色」
設計
.
cv2.cvtColor(image, cv2.COLOR_BGR2HLS) cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
用這個函數把圖像從RGB轉到HSV顏色空間,注意是BGR2HSV不是RGB2HSV
由於OpenCV 默認的顏色空間是 BGR,相似於RGB,但不是RGB。
HSV效果圖
cvtColor還包含了官方網址:
RGB \leftrightarrow GRAY ( CV_BGR2GRAY, CV_RGB2GRAY, CV_GRAY2BGR, CV_GRAY2RGB )
RGB \leftrightarrow CIE XYZ.Rec 709 with D65 white point ( CV_BGR2XYZ, CV_RGB2XYZ, CV_XYZ2BGR, CV_XYZ2RGB )
RGB \leftrightarrow YCrCb JPEG (or YCC) ( CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR, CV_YCrCb2RGB )
RGB \leftrightarrow HSV ( CV_BGR2HSV, CV_RGB2HSV, CV_HSV2BGR, CV_HSV2RGB )
RGB \leftrightarrow HLS ( CV_BGR2HLS, CV_RGB2HLS, CV_HLS2BGR, CV_HLS2RGB ).
RGB \leftrightarrow CIE L*a*b* ( CV_BGR2Lab, CV_RGB2Lab, CV_Lab2BGR, CV_Lab2RGB ).
RGB \leftrightarrow CIE L*u*v* ( CV_BGR2Luv, CV_RGB2Luv, CV_Luv2BGR, CV_Luv2RGB ).
.
【OpenCV】HSV顏色識別-HSV基本顏色份量範圍
色彩空間轉換(cvtColor)
【OpenCV】顏色空間RGB與HSV(HSL)的轉換
.
來源: 設計Mix科技實驗室O自在園
deeplearnJS簡介:deeplearn.js是用於機器學習的開源WebGL加速JavaScript庫。
deeplearn.js讓您能夠在瀏覽器中訓練神經網絡,或運行預先訓練好的模型。它提供了與TensorFlow一致的數據流圖(data flow graphs)的API,及用於數值計算的函數庫。
預測效果:
第一個顏色爲隨機輸入的顏色originColor;
第二個爲神經網絡預測的互補顏色predictedColor;
第三個爲使用算法計算的互補顏色computeComplementaryColor,做爲標準答案;
咱們能夠對比下,第二個跟第三個之間的差別。