我在 C++ 中找不到这样的例子,所以如果有人能告诉我那太好了!谢谢。
最佳答案
当您使用 GC_INIT_WTH_RECT
模式时,grabCut()
函数所做的是将矩形之外的所有内容设置为 GC_BGD
,并且所有内容在矩形中作为 GC_PR_FGD
。因此,使用此模式会为您初始化掩码。
如果你想用一个矩形和标记你自己确定的前景/背景,然后使用模式GC_INIT_WITH_MASK
。
创建您自己的掩码,一个零数组,大小与 grabCut()
中的 img
输入相同。将矩形内的所有内容设置为 GC_PR_FGD
。外面的一切都应该是 GC_BGD
。然后,如果您知道某个像素肯定是前景,则将其设置为 GC_FGD
,如果您知道某个像素可能是背景,则将其设置为 GC_PR_BGD
。
GC_
值对应于:
GC_BGD 0
GC_FGD 1
GC_PR_BGD 2
GC_PR_FGD 3
这就是我在想使用矩形和普通用户输入时所做的。
关于c++ - OpenCV 抓图 : how to combine GC_INIT_WITH_RECT and GC_INIT_WITH_MASK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24629794/