//指定波長轉換成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...