【问题标题】:Some Background remain after Background Subtraction EMGU CV背景减除 EMGU CV 后仍有一些背景
【发布时间】:2016-03-11 15:22:22
【问题描述】:

我是 EmguCV 图像处理的新手,正在尝试不同的背景减法方法。遇到了absdiff方法,试了一下,经过一堆处理,对象的某些部分似乎是透明的,可以看到背后的背景,Background subtraction sample

这是我处理图像的代码部分

            img = _capture.QueryFrame().ToImage<Bgr, Byte>();
            Mat smoothedFrame = new Mat();
            CvInvoke.GaussianBlur(img, smoothedFrame, new Size(3, 3), 1);
            img3 = img2gray.AbsDiff(smoothedFrame.ToImage<Gray, Byte>());//.Convert<Gray, Byte>());
            img3 = img3.ThresholdBinary(new Gray(60), new Gray(255));
            IbOriginal.Image = img;
            IbProcessed.Image = img3;

如何删除上图中的那些“空白或空心”空间。任何帮助将不胜感激

【问题讨论】:

    标签: c# opencv background emgucv subtraction


    【解决方案1】:

    我猜你只想用卡车的像素创建一个蒙版。您可能已经用

    删除了空心空间中的像素
    ThresholdBinary(new Gray(60), new Gray(255));
    

    降低阈值下限可能是您需要的,但也可能包含一些背景噪音。您始终可以首先使用更高的阈值(您在此处所做的)识别卡车的位置,然后在识别的 ROI 中的前一张图像上使用 ThresholdBinary。

    ThresholdBinary(new Gray(10), new Gray(255));
    

    或者你可以试试CvInvoke.FloodFill

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多