如何在 MATLAB 中使用 Graph Cut 统计图像补全模型的补丁偏移量

Posted

技术标签:

【中文标题】如何在 MATLAB 中使用 Graph Cut 统计图像补全模型的补丁偏移量【英文标题】:How to Use Graph Cut for the Statistics of Patch Offsets for Image Completion Model in MATLAB 【发布时间】:2021-01-14 17:34:10 【问题描述】:

我正在尝试将 Shai Bagon 的 (@Shai) Graph Cut MATLAB Toolbox GCMex 用于来自 Statistics of Patch Offsets for Image Completion (Image Completion Approaches Using the Statistics of Similar Patches) 的模型。

模型由下式给出:

假设标签 (Shifts) 的数量为 4(上 1、下 2、右 3 或左 4)以简化操作。 我仍然不确定如何设置数据结构(数组)以使用求解器。

有人知道吗?

【问题讨论】:

【参考方案1】:

我不确定我的 GCMex 实现是否支持这种类型的平滑项。

如果我理解正确,您需要为每个相邻的ij 计算一个不同 LxL 权重矩阵。底层的 c++ 包(由 Boykov 等人提供)确实支持这一点,但我没有为此选项创建接口。

更新

假设您有n 像素和l 可能的标签。 当前的 GCMex 接口支持以下形式的成对权重:

E(i, L(i), j, L(j)) = w(i,j) * S(L(i), L(j)) 

也就是说,成对惩罚的主要“来源”是一个固定lxl矩阵S(L(i), L(j)),它定义了分配相邻像素i和@987654333的惩罚@ 分别标记L(i)L(j)lxl 的权重取决于标签上ij 像素的位置 L(i)L(j). 唯一的空间依赖性来自一个标量 w(i,j),它通过一个取决于ij 位置的标量调制S

但是,在您的情况下,您实际需要的是每对 ijlxl 矩阵。

我认为你应该看看void setSmoothness(smoothFnCoord cost);

【讨论】:

如果有支持,您是否有机会描述阵列?这样我就可以在C中实现了? 顺便说一句,由于我没有适当的声誉,因此我无法投票给您的答案。 所以这样的数组中所需元素的数量是不可行的,因此使用函数处理程序?我还认为该模型要求称重取决于位置和标签,对吗? @David 好像是这样

以上是关于如何在 MATLAB 中使用 Graph Cut 统计图像补全模型的补丁偏移量的主要内容,如果未能解决你的问题,请参考以下文章

目标背景分割Graph Cut based Object Segmentation目标分割,目标轮廓提取算法的MATLAB仿真

图像分割之从Graph Cut到Grab Cut

图像分割之Graph Cut(图割)

[bzoj3514][CodeChef GERALD07] Chef ans Graph Queries [LCT+主席树]

如何在 Unix 中使用带有多个字符分隔符的 cut?

如何在命令行中使用带有 cut 的正则表达式?