c# - 如何在 EmguCV 中将 Bgr 像素转换为 Hsv 像素?

标签 c# opencv emgucv

我想将 Bgr 值(一个像素)转换为 Hsv 值。我如何在 EmguCV 中做到这一点(无需从头开始编写转换代码)?

请注意,我对转换整个图像的色彩空间不感兴趣,只对一个像素感兴趣,因此 CvInvoke.cvCvtColor() 对我不起作用。

最佳答案

如果您想在 EmguCV 中执行此操作,只需将图像读入图像,获取像素值并将其粘贴到 Hsv 结构中。

例如:

static void Main(string[] args)
{
    bool haveOpenCL = CvInvoke.HaveOpenCL;

    bool haveOpenClGpu = CvInvoke.HaveOpenCLCompatibleGpuDevice;

    CvInvoke.UseOpenCL = true;

    Emgu.CV.Image<Bgr, Byte> lenaBgr = new Image<Bgr, Byte>(@"D:\OpenCV\opencv-3.2.0\samples\data\Lena.jpg");

    CvInvoke.Imshow("Lena BSG", lenaBgr);

    Bgr color = lenaBgr[100, 100];

    Console.WriteLine("Bgr: {0}", color.ToString());

    Emgu.CV.Image<Hsv, Byte> lenaHsv = new Image<Hsv, Byte>(@"D:\OpenCV\opencv-3.2.0\samples\data\Lena.jpg");

    CvInvoke.Imshow("Lena HSV", lenaHsv);

    Hsv colorHsv = lenaHsv[100, 100];

    Console.WriteLine("HSV: {0}", colorHsv.ToString());

    CvInvoke.WaitKey(0);
}

结果: Bgr:[87,74,182] 单纯疱疹病毒:[176,151,182]

 Lena BGR                    Lena HSV

LenaBGR LenaHSV

关于c# - 如何在 EmguCV 中将 Bgr 像素转换为 Hsv 像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13470239/

相关文章:

c# - List<T> 定义为类的成员

c# - opencv(emgu)中的模板匹配usink掩码

c++ - 我怎样才能得到内插的极坐标?

c# - 从IP摄像机检索帧时出现各种问题

c# - Emgu CV 不检测 CUDA

c# - SQL 查询中的 {0},{1},{2},{3} 是什么

c# - 在 ASP.NET MVC 包中使用 CDN

android - 找不到 OpenCV 库包

c# - 视频文件上的人脸检测

C# - 将私有(private)属性序列化为属性(数据协定)