脱毛算法的发展
作为我的项目的前提条件,我必须从图像中去除皮肤毛发。 为此我找到了一个已经存在的程序。 该实现在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