Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从hsv到bgr的Emgu cv covent颜色_C#_.net_Image Processing_Emgucv - Fatal编程技术网

C# 从hsv到bgr的Emgu cv covent颜色

C# 从hsv到bgr的Emgu cv covent颜色,c#,.net,image-processing,emgucv,C#,.net,Image Processing,Emgucv,我有HSV类型的颜色,我想把它转换成BGR。它不是一个图像,只是一个HSV对象 Hsv s = new Hsv((double)Hue, (double)Sat, (double)val); //this is my HSV color object I need to convert it to BGR color object 从HSV到BGR的转换并没有直接的功能,但谢天谢地,写下来并不是那么难。函数将是这样的 public static Color ColorFromHSV(dou

我有HSV类型的颜色,我想把它转换成BGR。它不是一个图像,只是一个HSV对象

Hsv s = new Hsv((double)Hue, (double)Sat, (double)val);

//this is my HSV color object I need to convert it to BGR color object 

从HSV到BGR的转换并没有直接的功能,但谢天谢地,写下来并不是那么难。函数将是这样的

public static Color ColorFromHSV(double hue, double saturation, double value)
{
    int hi = Convert.ToInt32(Math.Floor(hue / 60)) % 6;
    double f = hue / 60 - Math.Floor(hue / 60);

    value = value * 255;
    int v = Convert.ToInt32(value);
    int p = Convert.ToInt32(value * (1 - saturation));
    int q = Convert.ToInt32(value * (1 - f * saturation));
    int t = Convert.ToInt32(value * (1 - (1 - f) * saturation));

    if (hi == 0)
        return Color.FromArgb(255, v, t, p);
    else if (hi == 1)
        return Color.FromArgb(255, q, v, p);
    else if (hi == 2)
        return Color.FromArgb(255, p, v, t);
    else if (hi == 3)
        return Color.FromArgb(255, p, q, v);
    else if (hi == 4)
        return Color.FromArgb(255, t, p, v);
    else
        return Color.FromArgb(255, v, p, q);
}
它使用上面提到的算法

另外,这里还有另一个很好的代码示例来完成同样的工作