2012-09-12 67 views
0

我在使用EmguCV在c#中执行皮肤检测方法。对于皮肤检测,我指的是article。我是EmguCV的新手。我只想知道如何获取或设置通过网络摄像头捕捉的图像的每个像素值。如果皮肤像素匹配,它变成白色或其他黑色。我只想要像素的RGB值而不会降低应用程序的性能。EmguCV皮肤检测

回答

1

获得或容易地设置图像的每个像素值,你这样做如下

Image<Bgr, Byte> img = .... 

for (i = 0; i < img.Height; i++) 
{ 
    for (k = 0; k < img.Width; k++) 
    { 
     // Get 
     // Color (R, G, B, alpha) 
     Color c = img[i, k]; 

     // Set 
     img[i,k] = new Bgr(); 
     } 
} 

将写就地

+0

我试过这个代码。它在图像上工作正常,但对于实时视频馈送而言,它会减慢速度。在emgucv中是否有任何背景删除技术。我也尝试过_foreground探测器技术。但它也会减慢程序。 –

+0

你可以尝试某种掩模来减少全图像处理 –

+0

每个循环都不访问img.height和width - 这是问题的一部分。还有一种更快的方式来使用指针访问图像中的数据。 –