图像分析中的分割与直方图技术解析
1. GrabCut 算法
GrabCut 算法是图像分割的重要工具。在实现上,使用 cv::grabCut() 时,实际上不需要显式提供 cv::GC_INIT_WITH_MASK 标志,因为掩码初始化是默认行为。只要不提供 cv::GC_INIT_WITH_RECT 标志,就会进行掩码初始化。不过,这并非作为默认参数实现,而是函数程序逻辑中的默认操作,未来库更新时可能改变。所以,最好显式使用 cv::GC_INIT_WITH_MASK 或 cv::GC_INIT_WITH_RECT 标志,这样既保证未来兼容性,又提高代码清晰度。
当使用 cv::GC_INIT_WITH_MASK 时,调用时 mask 中的当前值将用于初始化图像的标记。 mask 应为单通道的 cv::U8 类型图像,每个值是以下枚举之一:
| 枚举值 | 数值 | 含义 |
| ---- | ---- | ---- |
| cv::GC_BGD | 0 | 确定为背景 |
| cv::GC_FGD | 1 | 确定为前景 |
| cv::PR_GC_BGD | 2 | 可能为背景 |
| cv::PR_GC_FGD | 3 | 可能为前景 |
超级会员免费看
订阅专栏 解锁全文
1029

被折叠的 条评论
为什么被折叠?



