Javascript opencv(opencv.js)抢夺GC_INIT_WITH_MASK问题示例?

时间:2019-09-16 13:41:59

标签: javascript opencv image-processing

我正在尝试将opencv.js的抓取模式设置为GC_INIT_WITH_MASK。但是没有得到我需要的结果。我得到的结果与使用GC_INIT_WITH_RECT的抓取模式得到的结果相同。

没有使用GC_INIT_WITH_MASK作为模式调用opencv.js cv.grabcut的在线示例。

因此,我查看了提供了python示例的opencv官方文档。

在那

cv.grabCut(img,mask,None,bgdModel,fgdModel,5,cv.GC_INIT_WITH_MASK)

None(相当于javascript中的null)作为需要矩形对象的第三个参数,并且当模式为INIT_WITH_MASK时,不要在此处传递矩形是有意义的。

但是当我在该位置使用null的javascript中调用cv.grabcut函数时。它给出了一个错误,

  

TypeError:无法使用'in'运算符在null中搜索'x'

它在我传递矩形对象时运行。但其结果与使用GC_INIT_WITH_RECT模式相同。

如何使用INIT_WITH_MASK模式正确运行它?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,尝试不使用任何参数初始化矩形并将其提供给GrabCut

 let rect = new cv.Rect();
 cv.grabCut(src, mask, rect, bgdModel, fgdModel, 1, cv.GC_INIT_WITH_MASK);

它有效(我可以看到自己的口罩与众不同)。起初,我也没有看到任何区别,但是它表明我使用与GC_INIT_WITH_RECT选项相同的掩码。

祝你有美好的一天