【问题标题】:Methodology to convert RGB to Wavelength将 RGB 转换为波长的方法
【发布时间】:2016-08-05 18:11:46
【问题描述】:

我想将 RGB 图像矩阵转换为对应的 Wavelenth 矩阵。如果有任何方法或算法,请在此处提及。

【问题讨论】:

  • 我的回答对您有帮助吗?
  • 波长以纳米为单位的光波大小?你不能这样做,只有非常小的一组值对应于一个波长。例如,您没有棕色或粉红色的波长。

标签: javascript scilab


【解决方案1】:

查看其他答案,您可以分两步进行:

从 RGB 转换为 HSV

function [h,s,v] = rgb2hsv(r, g, b)

    MAX_PIXEL_VALUE = 255.0;

    assert_checktrue ( r <= MAX_PIXEL_VALUE )
    assert_checktrue ( g <= MAX_PIXEL_VALUE )
    assert_checktrue ( b <= MAX_PIXEL_VALUE )

    r = r / MAX_PIXEL_VALUE;
    g = g / MAX_PIXEL_VALUE;
    b = b / MAX_PIXEL_VALUE;

    max_val = max(r, g, b);
    min_val = min(r, g, b);

    v = max_val;

    if max_val == 0.0 then
        s = 0;
        h = 0;
    elseif (max_val - min_val) == 0.0 then
        s = 0;
        h = 0;
    else
        s = (max_val - min_val) / max_val;

        if max_val == r then
            h = 60 * ((g - b) / (max_val - min_val)) + 0;
        elseif max_val == g then
            h = 60 * ((b - r) / (max_val - min_val)) + 120;
        else
            h = 60 * ((r - g) / (max_val - min_val)) + 240;
        end
    end

    if h < 0 then
        h = h + 360.0;
    end

    h = h / 2;
    s = s * MAX_PIXEL_VALUE;
    v = v * MAX_PIXEL_VALUE;

    return [h, s, v]
endfunction

从色调转换为波长

function wavelength = hue2wavelength(hue)

    // There is nothing corresponding to magenta in the light spectrum, 
    // So let's assume that we only use hue values between 0 and 270.
    assert_checktrue(hue >= 0);
    assert_checktrue(hue <= 270);

    // Estimating that the usable part of the visible spectrum is 450-620nm, 
    // with wavelength (in nm) and hue value (in degrees), you can improvise this:
    wavelength = 620 - 170 / 270 * hue;

endfunction

放在一起

function wavelength = rgb2wavelength(r,g,b)
    [h,s,v] = rgb2hsv(r,g,b);
    wavelength = hue2wavelength(h);
endfunction

【讨论】:

    猜你喜欢
    • 2016-05-30
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多