如何轉換指定 波長 到 RGB 顏色?

2022-06-14 06:18:13 字數 1060 閱讀 1818

//指定波長轉換成rgba顏色

std::vectorlambdatocolor(double lambda,double gamma = 0.8,double intensitymax = 255.0)

else if (lambda >= 440.0 && lambda < 490.0) else if (lambda >= 490.0 && lambda < 510.0) else if (lambda >= 510.0 && lambda < 580.0) else if (lambda >= 580.0 && lambda < 645.0) else if (lambda >= 645.0 && lambda <= 780.0) else

//在可見光譜的邊緣處強度較低。

if (lambda >= 380.0 && lambda < 420.0) else if (lambda >= 420.0 && lambda < 701.0) else if (lambda >= 701.0 && lambda < 780.0) else

//2023年在引入ntsc電視時,計算具有螢光體的監視器的亮度公式如下

int y = static_cast(0.212671*r + 0.715160*g + 0.072169*b);

//伽馬射線 gamma

//照明強度 intensitymax

int r = r == 0.0 ? 0 : static_cast(std::round(intensitymax * std::pow(r * alpha, gamma)));

int g = g == 0.0 ? 0 : static_cast(std::round(intensitymax * std::pow(g * alpha, gamma)));

int b = b == 0.0 ? 0 : static_cast(std::round(intensitymax * std::pow(b * alpha, gamma)));

int a = static_cast(alpha);

return std::vector;

}

RGB和HSV顏色轉換

分類 影象處理 2008 07 21 21 50 2979人閱讀收藏 舉報integer 演算法工具 c360 h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅 綠 藍分別相隔120度。互補色分別相差180度。純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的...

RGB和HSV顏色轉換

h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅 綠 藍分別相隔120度。互補色分別相差180度。純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。s 0時,只有灰度。v表示色彩的明亮程度,範圍從0到1。有一點要注意 它和光強度之間並沒有直接的...

如何將24位RGB顏色轉換16位RGB顏色

有許多朋友第一次使用16位彩色顯示屏會遇到如何將24位rgb顏色轉換為對應的16位rgb顏色的問題,我們知道24位rgb是分別由8位紅色,8位綠色以及8位藍色組成 rrrrrrrr gggggggg bbbbbbbb 例如 24位rgb紅色表示方法為 11111111 00000000 000000...