【问题标题】:Is it possible to remove small patches of an image using Blob analysis?是否可以使用 Blob 分析删除图像的小块?
【发布时间】:2012-07-22 20:31:42
【问题描述】:

我想知道 blob 到底是什么?是否可以减少图像中的背景噪音?或者是否有可能在图像中找到最大的区域,更具体地说,如果图像只包含手部和头部段,那么是否可以只分离手部或头部区域? 如果可能,那么也可以选择具有较大轮廓的边界,同时消除图像中的小块 ??

建议我,我有一张只包含手势的图片。我用皮肤 检测技术来做到这一点。但问题是我还有小其他 图像中与手(皮肤)颜色相同的噪声。我要典型 仅手势,已消除噪音。帮帮我??

【问题讨论】:

  • 有点不清楚你在问什么,你有没有可以提供的示例图像来解释你的问题。也许是示例输入图像和示例输出?
  • @Chris :我只想删除在检测肤色手势时错误检测到的像素。假设我有一张图像,其中包含检测到带有噪声像素的手。

标签: c# image-processing computer-vision aforge


【解决方案1】:

使用example from aforge,您有什么理由不能只清除图像中的小块?

// create an instance of blob counter algorithm
BlobCounterBase bc = new ...
// set filtering options
bc.FilterBlobs = true;
bc.MinWidth  = 5;
bc.MinHeight = 5;
// process binary image
bc.ProcessImage( image );
Blob[] blobs = bc.GetObjects( image, false );
// process blobs
var rectanglesToClear = from blob in blobs select blob.Rectangle;

 using (var gfx = Graphics.FromImage(image))
 {
    foreach(var rect in rectanglesToClear) 
    {
        if (rect.Height < someMaxHeight && rect.Width < someMaxWidth)
            gfx.FillRectangle(Brushes.Black, rect);
    }
  gfx.Flush();
 }

【讨论】:

  • @hometoast :谢谢,你看到了我在找什么,但是,BlobCounterBase 类的引用类型是什么??
  • 示例的链接 BlobCounterBase 的 aforge 文档。 Aforge.Imaging.BlobCounterBase
【解决方案2】:

看看形态开放:这会执行腐蚀,然后是膨胀,基本上会删除小于“结构元素”的前景/背景区域,“结构元素”的大小(和形状)是您可以指定的。

我不知道 aforge,但在 Matlab 中参考是 here,在 OpenCV 中参考 here

【讨论】:

  • 我已经按照你的建议做了形态学操作。紧接着是腐蚀,然后是膨胀。输出图像如图所示。
猜你喜欢
  • 2020-06-11
  • 2017-07-06
  • 2011-12-30
  • 2013-04-13
  • 2017-05-21
  • 2013-03-23
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多