脱毛算法的发展

作为我的项目的前提条件,我必须从图像中去除皮肤毛发。 为此我找到了一个已经存在的程序。 该实现在Matlab中完成。

以上链接引用以下内容

  • 它通过广义的灰度形态闭合操作识别黑发位置,
  • 它将头发像素的形状验证为细长结构,并用双线性插值替换已验证的像素
  • 它使用自适应中值滤波器平滑替换的头发像素。
  • 至于上述提到generalized grayscale morphological closing operation部分,我无法找到它的含义,也不能在Matlab中实现它

    目前我需要做的只是简单的

  • 识别头发像素
  • 验证头发像素
  • 用相邻的皮肤像素替换头发像素
  • 我想知道是否可以提出任何可用于执行此算法(边缘检测等)的方法,至今为止所有尝试都没有合理解决。 任何可以使用的matlab函数也会非常有用。 也想知道我可以用什么方法来验证像素为细长结构

    更新 :由于我是图像处理新手,我没有任何关于如何识别头发像素的方法的先验知识,验证它们并用相邻像素替换它们,从而请求引导


    我会假设你明白灰度图像是什么,并对其进行操作。 如果没有,编辑你的问题来澄清。

    Matlab图像处理工具箱包含了imclose函数。 形态学关闭在维基百科上解释。 互联网充斥着关于图像处理数学形态学的信息。

    编辑后评论

    本页面为图像处理的数学形态学提供了一般介绍。 你想要做的一个观点是从图像中去除噪声,在那里噪声表现为在浅色背景下表现为长而粗的黑色元素 - 如果毛发是黑色的,皮肤很轻。 这不是我看过的应用程序,所以我无法提供任何帮助。 玩的开心。


    操作顺序是1.识别头发像素2.验证头发像素3.用相邻的皮肤像素替换头发像素。 这主要是因为形态学开放过滤器是灰度或标量过滤器。 因此,彩色图像中的问题可以通过寻找一个好的色彩空间来解决(通常在你的背景变化时很难),或者在每个通道上执行闭合(如上面的回答说明:如果头发是黑暗的而背景是轻的)在其他方面,这是目前的解决方案。

    因此,我们可以看看matlab给出了什么在纸上提到的检测细长的头发结构:

    se1 = strel('line',10,90);
    se2 = strel('line',10,180);
    figure, imshow(imclose(imclose(I,se1),se2),[]) % this closing is done channel wise independently. 
    

    对于复杂背景来说,色彩空间的好处是必要的。 因为彩色图像是有序的(红色>绿色>蓝色,或者某种这样的顺序 - 您可以验证这一点) 从网站输入图像行过滤图像

    现在的问题是插入丢失的值,因为关闭会留下一些工件。 可以使用Lee T,Ng V,Gallagher R,Coldman A,McLean D.DullRazor中提出的内插中值滤波:从图像中去除毛发的软件方法。 Computers in Biology and Medicine 1997; 27:533-543。

    另一个简单的想法是执行rgb2gray(I) - >使用线性结构的Morhological关闭 - >将灰度映射回RGB音调。 如果背景颜色空间变化不大并且很健壮,则反映很简单!

    链接地址: http://www.djcxy.com/p/10501.html

    上一篇: Hair removal algorithm development

    下一篇: Browser Authentication via HttpURLConnection