c++ - OpenCV 抓图 : how to combine GC_INIT_WITH_RECT and GC_INIT_WITH_MASK

标签 c++ opencv

我在 C++ 中找不到这样的例子,所以如果有人能告诉我那太好了!谢谢。

最佳答案

除了@Aurelius answer


当您使用 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/

相关文章:

c++ - 目标文件是什么样的

c++ - 将文本十六进制转换为真正的十六进制表示 C++

android - 如何在android中检测人体

c++ - 带有 VideoCapture 的 OpenCV "stuck"帧

c++ - 在 OpenCV 中将灰度图像转换为单色

python - 使用 cv2.imshow 时出错(未指定错误)

c++ - 无法链接到 quantlib

c++ - 使用 SFINAE 选择要实现的接口(interface)

c++ - 在 C++ 中轮询原子变量(bool)?

python - 在图像上绘制曲线?