【发布时间】:2015-10-04 10:20:52
【问题描述】:
谁能解释一下gpu::meanshiftFiltering 和gpu::meanShiftSegmentation 之间的区别?
文档并没有真正的帮助。
也许这是一个不同的问题,但我的目标是提取对象的边界,如果有人可以帮助我,那就太好了。
【问题讨论】:
标签: c++ opencv image-processing image-segmentation mean-shift
谁能解释一下gpu::meanshiftFiltering 和gpu::meanShiftSegmentation 之间的区别?
文档并没有真正的帮助。
也许这是一个不同的问题,但我的目标是提取对象的边界,如果有人可以帮助我,那就太好了。
【问题讨论】:
标签: c++ opencv image-processing image-segmentation mean-shift
均值偏移过滤旨在减少噪声并提高图像质量,它会返回“更干净”的图像。
另一方面,mean shift segmentation 将图像分割成具有大致相同颜色的区域。它将每个像素的映射返回到其对应的段。
如果你想要对象边界,你应该使用均值偏移segmentation。
请参阅 Comaniciu 和 Meer Mean shift: A robust approach toward feature space analysis (PAMI 2002) 的开创性工作,描述了“均值偏移”过程。
“均值偏移”是一种数值程序,旨在搜索通过样本定义的分布的模式(“集中点”)。在图像处理的上下文中用更简单的话来说:您可以将图像的所有像素视为 RGB-XY 空间中的样本。图像中的“红色”区域可以被视为在该区域的 XY 坐标中具有红色的像素的“高概率”。
因此,您可以将图像视为定义该空间分布的 RGB-XY 样本的集合。
“均值偏移”过程旨在以高概率("mode" = 分布的局部最大点)在 RGB-XY 空间中找到区域。
为什么这个观点有用?你可能会问自己。好吧,考虑一个嘈杂的图像,噪声驱使像素远离 RGB-XY 空间中的原始分布模式。如果您可以将每个像素从其当前(嘈杂)颜色“转移”到一种分布模式,您可能会减少噪声。
因此,均值偏移过滤会改变像素的颜色,使其与附近最主要的颜色相似。
向前迈出一步,你可以问自己“每个像素属于哪一种模式?”。因此,如果您有m 模式(在 RGB-XY 空间中),您可以将每个像素分配给这些m 模式之一,从而有效地将图像分割成m 段。此过程称为均值偏移分割。
【讨论】: