After Focus App的智能对焦算法
After Focus App's smart focus algorithms
我正在尝试在iOS中制作图像分割应用程序。所以我在OpenCV中使用了GrabCut
。
然后我查看了类似的 iOS 应用并找到了 After Focus。他们根据用户的提示(前景,背景)快速分割图像。
我想知道如何分割图像。
GrabCut
算法基本来源于图论。关键方面是将图像分为两个部分:
- 前景
- 背景
现在用户在图像上绘制许多线(白色和黑色)来表示前景和背景。这些线上的每个像素都被认为是 graph 中的一个 node。还有 两个额外的 ** 节点称为 **sink(背景) 和 source(前景)
画线上的每个像素都连接到具有特定权重的source和sink。
这些权重是多少?:
- 如果一个像素(节点)被用户标记为background,它连接到sink节点,更高权重和源节点具有更低权重。
- 如果一个像素(节点)被用户标记为前景,它连接到源节点,higher 权重和 sink 节点具有 lower 权重。
因此每个像素(节点)都连接到 sink 和 source 节点。
用户绘制的线上的每个像素(节点)也以特定的权重相互连接:
- 前景中的每个像素(节点)通过具有更高权重的边缘相互连接。
- 同样,背景中的每个像素(节点)都通过具有更高权重的边缘相互连接。
- 但是前景中的每个像素(节点)都连接到背景中具有较低权重的另一个像素(节点),反之亦然。
最后,GrabCut
使用了一个名为 minimum_cut
的参数。此参数扫描整个图像(图形),其中像素(节点)通过不同权重的边缘相互连接。此 minimum_cut
变量沿所有边缘进行切割,使整个图像的总权重尽可能小。
因此你得到两个单独的图像前景和背景。
有关该主题的更多信息:
我正在尝试在iOS中制作图像分割应用程序。所以我在OpenCV中使用了GrabCut
。
然后我查看了类似的 iOS 应用并找到了 After Focus。他们根据用户的提示(前景,背景)快速分割图像。
我想知道如何分割图像。
GrabCut
算法基本来源于图论。关键方面是将图像分为两个部分:
- 前景
- 背景
现在用户在图像上绘制许多线(白色和黑色)来表示前景和背景。这些线上的每个像素都被认为是 graph 中的一个 node。还有 两个额外的 ** 节点称为 **sink(背景) 和 source(前景)
画线上的每个像素都连接到具有特定权重的source和sink。
这些权重是多少?:
- 如果一个像素(节点)被用户标记为background,它连接到sink节点,更高权重和源节点具有更低权重。
- 如果一个像素(节点)被用户标记为前景,它连接到源节点,higher 权重和 sink 节点具有 lower 权重。
因此每个像素(节点)都连接到 sink 和 source 节点。
用户绘制的线上的每个像素(节点)也以特定的权重相互连接:
- 前景中的每个像素(节点)通过具有更高权重的边缘相互连接。
- 同样,背景中的每个像素(节点)都通过具有更高权重的边缘相互连接。
- 但是前景中的每个像素(节点)都连接到背景中具有较低权重的另一个像素(节点),反之亦然。
最后,GrabCut
使用了一个名为 minimum_cut
的参数。此参数扫描整个图像(图形),其中像素(节点)通过不同权重的边缘相互连接。此 minimum_cut
变量沿所有边缘进行切割,使整个图像的总权重尽可能小。
因此你得到两个单独的图像前景和背景。
有关该主题的更多信息: