Algorithm 脱毛算法的开发

Algorithm 脱毛算法的开发,algorithm,matlab,image-processing,methods,Algorithm,Matlab,Image Processing,Methods,作为我的项目的一个重要要求,我必须从图像中去除皮肤毛发。为此,我找到了一份工作。在Matlab中实现 上面的链接引用了以下内容 它通过广义灰度形态闭合操作识别黑发位置 它将头发像素的形状验证为细长结构,并用双线性插值替换验证的像素,以及 它使用自适应中值滤波器平滑替换的头发像素 对于上面提到的广义灰度形态闭合运算部分,我无法理解它的含义,也无法在Matlab中实现它 目前我需要做的只是 识别头发像素 验证头发像素 用相邻的皮肤像素替换头发像素 我想知道你是否可以建议任何方法,可以用来实现这一算法

作为我的项目的一个重要要求,我必须从图像中去除皮肤毛发。为此,我找到了一份工作。在Matlab中实现

上面的链接引用了以下内容

  • 它通过广义灰度形态闭合操作识别黑发位置
  • 它将头发像素的形状验证为细长结构,并用双线性插值替换验证的像素,以及
  • 它使用自适应中值滤波器平滑替换的头发像素
  • 对于上面提到的
    广义灰度形态闭合运算
    部分,我无法理解它的含义,也无法在Matlab中实现它

    目前我需要做的只是

  • 识别头发像素
  • 验证头发像素
  • 用相邻的皮肤像素替换头发像素
  • 我想知道你是否可以建议任何方法,可以用来实现这一算法(边缘检测等),因为目前为止,所有的尝试都没有成功。任何可以使用的matlab函数都会非常有用。我还想知道我可以用什么方法来验证像素是细长结构


    更新:由于我是图像处理新手,我事先不知道如何识别头发像素、验证它们并用相邻像素替换它们,因此请求指导

    我假设您了解什么是灰度图像及其操作。如果没有,请编辑您的问题以澄清

    Matlab图像处理工具箱包含该函数。在维基百科上有解释。互联网上充斥着关于这个问题的信息 图像处理的数学形态学

    评论后编辑


    对用于图像处理的数学形态学进行了概述。你试图做的一个观点是从你的图像中去除噪声,在这种情况下,噪声被表示为在浅色背景下的长(-ish)细(-ish)暗元素——如果,也就是说,头发是暗的,皮肤是亮的。这不是我看过的应用程序,因此我无法提供更多帮助。玩得开心。

    操作顺序为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所述,可以使用插值中值滤波:一种从图像中去除毛发的软件方法。1997年生物和医学计算机;27:533-543


    另一个简单的想法是执行rgb2gray(I)->使用线性结构进行形态学闭合->将灰度映射回RGB色调。如果背景颜色空间没有太大变化,并且很稳定,则映射回很简单

    尝试更新这个问题,是的,虽然我确实知道什么是灰度图像,但我不知道可以对其使用什么操作。看看matlab中的形态学闭合图像操作符,它所做的是用磁盘或任何其他所需形状替换像素?你能解释一下它是如何帮助我识别头发像素并用相邻像素替换它们的吗