javascript - Javascript opencv (opencv.js) 抓取 GC_INIT_WITH_MASK 问题示例?
问题描述
我正在尝试在 opencv.js 上运行抓取模式,并将抓取模式设置为GC_INIT_WITH_MASK
. 但没有得到我需要的结果。我得到的结果与使用抓取模式 as 得到的结果相同GC_INIT_WITH_RECT
。
没有任何在线示例调用 opencv.js cv.grabcutGC_INIT_WITH_MASK
作为模式。
所以,我检查了提供 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
模式正确运行它?
解决方案
我遇到了类似的问题,并尝试在没有任何参数的情况下初始化矩形并将其提供给GrabCut
:
let rect = new cv.Rect();
cv.grabCut(src, mask, rect, bgdModel, fgdModel, 1, cv.GC_INIT_WITH_MASK);
它有效(我可以看到我自己的面具的不同之处)。起初,我也没有看到任何区别,但它表明我使用了与以前相同的掩码GC_INIT_WITH_RECT
选项。
祝你有美好的一天
推荐阅读
- python - 如何删除作为 Python 列表元素的字符串的一些前导字符?
- python-3.8 - psutil.STATUS_DEAD 状态是否与 psutil.STATUS_ZOMBIE 相同?
- php - 删除wordpress中的第一行html源代码
- stripe-payments - 没有这样的令牌:'btok_1JGm2oKFR93cFUSYN2bui4Yb' 当我尝试为 Stripe 客户创建银行账户时
- javascript - 无法使用官方示例在 Slate.js 编辑器中清楚地删除链接
- sql - Laravel query where field is less than sum of another field in related table (polymorphic relationship)
- algorithm - 找到强连通图,使得最大和最小边之间的差异最小
- javascript - 画布上方的三个 js 和 react 按钮
- c# - 无法获取多对多表属性的数据
- python - 当内核停止运行时触发类似“重新启动并运行所有”的行为