Emgu Cv Covent颜色从HSV到BGR [英] Emgu cv covent color from hsv to bgr

查看:87
本文介绍了Emgu Cv Covent颜色从HSV到BGR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有HSV类型的颜色,我想将其转换为BGR.这不仅仅是HSV对象的图像吗?

I have HSV type color and I want to convert it to BGR .It's not an image just an HSV object ?

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的直接函数,但值得庆幸的是,编写它并不是那么困难.该功能将是这样的.

These is no direct function to convert from HSV to BGR but thankfully writing on is not that terribly hard. The function will be something like this.

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);
}

使用维基百科中提到的算法.

或者,这里还有另一个很好的代码示例可以完成相同的工作.

Alternately there is also another good code sample here to do the same job.

这篇关于Emgu Cv Covent颜色从HSV到BGR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆