【问题标题】:Improving Grabcut in OpenCV改进 OpenCV 中的 Grabcut
【发布时间】:2014-01-13 14:50:13
【问题描述】:

我刚刚实现了 GrapCV 算法(OpenCV、C++、Visual Studio 12):

grabCut( *image, mask, rect, bgdModel, fgdModel, 1, GC_INIT_WITH_MASK );

我用它来分割成下面的图片:

我的结果是这样的:

我的问题是:我现在如何改进算法,以便只能看到两个玩家?我的第一个想法是改变颜色深度,但我不知道如何将它发送到“grabCut”。还是有其他方法?

【问题讨论】:

  • 阅读this。用自己的矩形分割每个人,并将边框像素设置为背景。
  • 好主意,谢谢!问题是,我的结果应该非常人性化:用户应该只标记一个矩形以获得他/她的结果。
  • 在该用户定义的区域内使用对象检测器,然后按照说明进行分割。
  • 不幸的是,这种方法产生的结果更糟。
  • 根据像素的模糊程度对像素进行分类,以指导蒙版分割。使用熵或 filter2D。如果您发现任何好东西,请分享。

标签: c++ visual-studio opencv image-segmentation


【解决方案1】:

在文件夹opencv2.4.6/samples/cpp中,有很多文件演示了一些经典算法的使用。有一个名为 grabcut.cpp 的文件,它详细地告诉您如何将此算法应用于您的应用程序。所以你需要做的就是把这个文件嵌入到你的程序中。

如果您有任何其他问题,只需使用 grabcut.cpp 进行调试,您就会看到它的详细工作原理。如果你想自己实现它。您需要使用新参数GC_EVALGC_INIT_WITH_MASK 更改功能。

grabCut(image,    // input image
    mask,   // segmentation mask
    rect,// rectangle containing foreground
    bgModel,fgModel, // models
    2,        // number of iterations
    GC_INIT_WITH_RECT); // use rectangle

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 2015-09-01
    • 2017-12-25
    • 1970-01-01
    • 2012-03-17
    • 2014-08-31
    • 2016-10-29
    • 1970-01-01
    相关资源
    最近更新 更多