【发布时间】:2014-09-25 15:03:43
【问题描述】:
他, 如何使用掩码初始化第一个 Grabcut?就我而言,每次我遇到此错误时:(-215) !bgdSamples.empty() && !fgdSamples.empty() 在函数 initGMMs 中。 是否可以使用掩码运行第一次 Grabcut 迭代?当我将第一个 Grabcut Iteration 与 Rect 一起使用时,它已经可以工作了。这是我的带掩码初始化代码(第二次迭代):
mask = Mat::ones(image_.size(), CV_8UC1) * GC_PR_BGD; //GC_PR_BGD
// GrabCut segmentation
grabCut(GrabCut::image, // input image
GrabCut::mask, // segmentation result
Rect(),// rectangle containing foreground
GrabCut::bgModel,GrabCut::fgModel, // models
iteration, // number of iterations
GC_INIT_WITH_MASK ); // use mask
仅供参考 当模式设置为 GC_INIT_WITH_RECT 时,该函数会初始化掩码。 面具有 4 个“层”:
GC_BGD defines an obvious background pixels.
GC_FGD defines an obvious foreground (object) pixel.
GC_PR_BGD defines a possible background pixel.
GC_PR_FGD defines a possible foreground pixel.
谢谢
【问题讨论】:
标签: c++ opencv image-segmentation