2014-01-22 75 views
0

我新的图像处理。在我的应用程序中,我想检测并移除眼睛周围的皮肤。 enter image description here皮肤检测和清除在Emgucv

在上述图像我想提取眼睛区域(和眼眉)没有皮肤。

首先,我试图从图像去除皮肤之前执行皮肤检测。我以前在emgu简历AdaptiveSkinDetector方法,这里是我的代码

AdaptiveSkinDetector a = new AdaptiveSkinDetector(1, AdaptiveSkinDetector.MorphingMethod.ERODE); 
Image<Gray, Byte> skin = new Image<Gray, Byte>(ImageFramecolourrighteye.Width, ImageFramecolourrighteye.Height); 

a.Process(ImageFramecolourrighteye, skin); 

CvInvoke.cvShowImage("Skin detection", skin); 

但它没有检测皮肤。我的代码中是否有错误? 有没有更好的方法来进行皮肤检测? (使用颜色,也许?) 引用/代码示例会很有用。

您的帮助是高度赞赏

在此先感谢

+0

您是否尝试将图像设置为二进制形式? –

+0

是,使用该代码 图片 Binary_Image = eyebrow_img_crop.ThresholdBinary(新灰色(threshold_value),新的灰度(255)); 但没有表现出预期的结果 – gouthaman93

回答

1

不知道关于Emugcv但如果你datast与你一致。例如,我觉得局部二元模式可以用来检测眼睛的轮廓(没有皮肤)。 你可以找到在here详细解释here和实现。即使实现在matlab中,希望它有帮助。

0

皮肤是一个非常好的例子,通过色调,使用色调进行检测,并使用饱和度和价值进行检测,直到您达到最少数量,例如下面的例子中有很多。 色调检测将允许您获取皮肤,无论其颜色或亮度如何。

http://bytefish.de/blog/opencv/skin_color_thresholding/