Как получить значение HSV из изображения и показать значение в представлении сетки данных с помощью C #? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть два графических блока для ввода и вывода, и я хочу преобразовать их из RGB в HSV (изображение слева - rgb, изображение справа - hsv):

image on left is rgb, image on right is hsv

, но в этом случае я использую библиотеку Emgu.cv

Я хочу сделать конвертацию приложения, используя код вычисления C # вручную, например

private double[] getHSV(double nilaiR, double nilaiG, double nilaiB)
{
    double[] hsv = new double[3];
    double rAksen = 0, gAksen = 0, bAksen = 0, delta = 0, cMax = 0, cMin = 0, nilaiH = 0, nilaiS = 0, nilaiV = 0;
    rAksen = nilaiR / 255;
    gAksen = nilaiG / 255;
    bAksen = nilaiB / 255;
    cMax = Math.Max(rAksen, Math.Max(gAksen, bAksen));
    cMin = Math.Min(rAksen, Math.Min(gAksen, bAksen));
    delta = cMax - cMin;
    //getH
    if (delta == 0)
    {
        nilaiH = 0;
    }
    else if (cMax == rAksen)
    {
        nilaiH = 60 * (((gAksen - bAksen) / delta) % 6);
    }
    else if (cMax == gAksen)
    {
        nilaiH = 60 * (((bAksen - rAksen) / delta) + 2);
    }
    else if (cMax == bAksen)
    {
        nilaiH = 60 * (((rAksen - gAksen) / delta) + 4);
    }
    //getS
    if (cMax == 0)
    {
        nilaiS = 0;
    }
    else
    {
        nilaiS = delta / cMax;
    }
    //getV
    nilaiV = cMax;
    hsv[0] = nilaiH < 0 ? Math.Round((360 + nilaiH), 2) : Math.Round(nilaiH, 2);
    hsv[1] = Math.Round((nilaiS * 100), 2);
    hsv[2] = Math.Round((nilaiV * 100), 2);
    return hsv;
}

, но как этот код можно выполнить одним щелчком мышикнопку и показать значение HSV в представлении таблицы данных?

Буду признателен, если вы мне поможете.

...