补丁优先级及其对 Criminsi 基于范例的修复的影响

2024-04-18

我正在尝试实现基于示例的修复,如提议的Criminsi http://research.microsoft.com/pubs/67276/criminisi_tip2004.pdf等等人。以其原始格式(在进行进一步优化之前)。

我有一些理论上的疑问,想澄清一下。

我不确定补丁优先级和填充顺序的确定如何将线性结构传播到用户选择的目标区域。

据我了解,Criminsi 建议如下:

  1. 确定填充前沿 dΩ。
  2. 计算位于填充上的补丁的补丁优先级 [C(p)D(p)] 正面。
  3. 将纹理传播到补丁中 - 按照补丁的顺序 优先事项。
  4. 更新置信值。
  5. 根据剩余的未填充部分重新计算填充前沿 dΩ。

[重复这5个步骤,直到填满所有目标区域]。

现在,如果对算法的这种理解是正确的(并且,如果解释错误,请纠正我),我有以下疑问:

  • 如果我总是只从填充前端填充补丁,并且如果 补丁固定在其空间位置(w.r.t上的其他补丁) fill-front),然后我不明白填充的顺序如何 很重要。通过直接对源进行采样来填充补丁 区域,在所有迭代中保持不变。因此,我不 了解填充顺序将如何导致任何像素级别 传播纹理上的差异。据我收集的资料来看,最好的 来自源区域的匹配应保持不变,无论 命令。我在这里缺少什么?

  • 基于此video http://www.youtube.com/watch?v=UYk9_fTZbAs(并假设它是正确的),补丁填充 并不总是只发生在填充前沿。这是如何运作的? 这是否意味着我们要计算所有补丁的优先级 立即确定目标区域并根据它们继续填充它们 优先事项?那么,填充前沿的确定有何影响以及 Criminsi 为什么要确定 dΩ?我明白克里明西的意思 该方法比传统的洋葱皮技术领先一步。 但具体如何呢?

在我深入研究 2-3 天的紧张编码之前,我真的很想澄清这些问题。

请帮忙。

提前致谢。

+++++++++++++++++++++++++++++++++++++++++

我在实现该算法时面临的另一个问题是:

在传播结构和纹理信息时,我直接对源区域进行采样,以获取两个补丁中已填充像素的最小 SSD。

困扰我的问题是:SSD 是什么?我尝试了 RGB/HSV 值的 SSD,但没有成功。我刚刚开始参考Criminisi for SSD,但我只是想知道......有没有更简单的方法?

任何帮助,将不胜感激。


前面填写:

这篇论文的想法是修复信息最可靠的第一个补丁,即填充前沿。 在这个细边框中,补丁的一部分由原始图像(在开始处)或先前的结果组成。 因此,视频是错误的(顺便说一句,结果也不太好)。

如果您不遵循填充前端方法,那么您需要一些全局优化过程来确保结果的正确性(请参阅流行的基于图切的纹理 http://www.cc.gatech.edu/cpl/projects/graphcuttextures/例如)。

补丁传播:

修复补丁时,您只需复制与当前 $\Omega$ 域相交的源补丁(位于更大的源区域内)的内容。 源区域是固定的,但不是您放置它的位置,这取决于当前填充的前像素。

优先级功能:

这里的直觉是,既然您要复制源补丁,那么您应该首先复制纹理最多的补丁。 这是为什么?假设您有一个纯半黑(左半白(右))图像,并且修复域位于中间。 如果没有优先权,您可能会先复制纯黑色或白色的色块。 使用优先功能,您将检测填充前沿中属于黑白区域边界的像素,在正确的位置复制一些半黑半白的色块,然后仅在相关位置添加纯黑/白色的色块。

为什么顺序很重要,即使前面很小

在下面评论的示例中,我们假设前面有 5 个像素 (1, 2, 3, 4, 5) 的填充,优先级顺序为 (3, 4, 5, 2, 1)。

由于填充前沿非常小,因此可以推断要修复的剩余区域非常小。 因此,用于填充孔的面片将相交。

然后,发生的事情是:

  1. 您复制像素 3 的源补丁。剩余的孔是空的,您可以复制与 $\Omega$ 相交的所有补丁
  2. 您寻找与像素 4 匹配的补丁。找到后,将其复制到 $\Omega$minus与前一个补丁(像素 3 的补丁)的交集。如果你交换3和4的优先级,那么你将不会保留源补丁的相同部分。
  3. 处理下一个填充前像素等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

补丁优先级及其对 Criminsi 基于范例的修复的影响 的相关文章

  • 3D 空间中的激光投影仪校准

    我正在研究一种在现实世界中校准激光投影仪的解决方案 该项目有几个目标 1 Take in a minimum of four points measured in the real world in 3d space that repres
  • 如何从Python使用OpenCV的C++函数?

    我正在使用 OpenCV 的 Python 绑定 它真的很棒 但是 C 版本中的某些函数在 Python 绑定 BackgroundSubstractorMOG2 和许多特征检测算法中缺失 从 Python 调用它们的最简单方法是什么 我希
  • 筛选提取-opencv

    我正在尝试开始使用 C OpenCv 进行筛选特征提取 我需要使用 SIFT 提取特征 将它们在原始图像 例如一本书 和场景之间进行匹配 然后计算相机姿势 到目前为止我已经找到了这个算法 http opencv itseez com doc
  • 从图像中识别数字

    我正在尝试编写一个应用程序来查找图像内的数字并将它们相加 如何识别图像中的书写数字 图像中有很多框 我需要获取左侧的数字并将它们相加得出总数 我怎样才能实现这个目标 编辑 我对图像进行了 java tesseract ocr 但没有得到任何
  • 如何在Python中删除图像的背景

    我有一个包含全角人类图像的数据集 我想删除这些图像中的所有背景 只留下全角人物 我的问题 有没有Python代码可以做到这一点 我是否需要每次都指定人员对象的坐标 这是使用 Python OpenCV 的一种方法 读取输入 转换为灰色 阈值
  • 用于色彩空间转换的 IMTransform 视频处理器的设置

    我正在尝试使用视频处理器 MFT 进行一些基本的色彩空间转换 我的相机本身支持 NV12 我需要 RGB24 来编写一些着色器 以提供类似卡通的效果 下面是用于执行 MF 的 Media 类的定义 class Media public IM
  • 打开 CV 通用 Mat 函数头

    在 OpenCV 中 访问一个像素是很常见的 Mat像这样的对象 float b A at
  • 使用python opencv从zip加载图像

    我能够成功地从 zip 加载图像 with zipfile ZipFile test zip r as zfile data zfile read test jpg how to open this using imread or imde
  • 水平计数加工织物中的白色簇

    我对织物材质进行了处理 得到如下图所示的图像 原图 处理后的图像 现在 我想找到连续的白色簇的数量 如果所有簇都是均匀且完全水平的 我将运行一个循环来计算强度的上升和下降 以找到簇的数量 但事实并非如此 如果我通过上述方法取几行的中值 平均
  • 为什么输出窗口无法显示结果。图像处理-线条检测

    该霍夫变换程序应该在执行时显示源图像 输出图像 带有图像的边缘检测结果窗口 但是 即使源图像和边缘检测结果 输出图像窗口也不会显示任何内容 链接https github com eToTheEcs hough transform blob
  • Tkinter 嵌套主循环

    我正在写一个视频播放器tkinter python 所以基本上我有一个可以播放视频的 GUI 现在 我想实现一个停止按钮 这意味着我将有一个mainloop 对于 GUI 还有另一个嵌套mainloop 播放 停止视频并返回 GUI 启动窗
  • 防止 ffmpeg 在降低视频分辨率的同时改变颜色强度

    我有一个用例 我需要缩小规模716x1280mp4 视频到358x640 原件的一半 我使用的命令是 ffmpeg i input mp4 vf scale 640 640 force original aspect ratio decre
  • OpenCV 的 findHomography 产生无意义的结果

    我正在制作一个程序 使用 OpenCV 2 43 中的 ORB 跟踪功能 我遵循并使用了建议从这里 https stackoverflow com questions 9919505 how can i extract fast featu
  • 如何使用PIL读取原始图像?

    我有一个原始图像 其中每个像素对应一个 16 位无符号整数 我正在尝试使用 PIL Image fromstring 函数进行读取 如以下代码所示 if name main if len sys argv 4 print Error mis
  • 使用 OpenCL 支持构建 OpenCV

    在 CMake 中 我使用 OpenCL Enable ON 构建了 OpenCV 它自动检测到OPENCL INCLUDE DIR路径但是OPENCL LIBRARY即使单击配置后也是空的 为了OPENCL LIBRARY我也没有看到浏览
  • 尝试捕获默认 iSight 相机时 OpenCV 崩溃

    我正在尝试让 openCV 在我的 Macbook Pro 10 8 5 视网膜型号 上运行 并且我想使用默认的 iSight 摄像头进行输入 因为如果我不这样做 我不想随身携带或购买 USB 摄像头不需要 我正在使用 OpenCV 用户文
  • 从 GIF 提取帧到 PNG 时丢失数据?

    当我尝试使用 fraxel 的答案时 http stackoverflow com questions 10269099 pil convert gif frames to jpg 在图像上http 24 media tumblr com
  • Python OpenCV:检测大体运动方向?

    我仍在编写一个书籍扫描脚本 现在 我所需要的只是能够自动检测翻页 这本书占据了 90 的屏幕 我使用一个粗糙的网络摄像头进行运动检测 所以当我翻页时 运动方向基本上是同一个方向 我修改了一个运动跟踪脚本 但导数却无济于事 usr bin e
  • 如何在 Python 中使用 PIL 将一张图像合成到另一张图像上?

    我需要拍摄一张图像并将其放置到新生成的白色背景上 以便将其转换为可下载的桌面壁纸 所以这个过程是这样的 生成尺寸为 1440x900 的新的全白图像 将现有图像放在顶部居中 另存为单张图像 在 PIL 中 我看到ImageDraw对象 但没
  • 将二进制文件转换为图像

    我需要找到一种将二进制文件转换为图像的快速方法 二进制文件由 N 个NN 矩阵 我想将 0 与一种颜色关联 将 1 与另一种颜色关联 我需要对超过 1000 个二进制文件执行此操作 如果可能的话 我想避免使用 MatLab 有没有任何工具

随机推荐

  • HTTPResponse 对象 -- JSON 对象必须是 str,而不是“字节”

    我一直在尝试更新一个名为的小型 Python 库libpynexmo https github com marcuz libpynexmo使用 Python 3 我一直被这个功能困住了 def send request json self
  • 创建一个临时表并从中选择

    当我运行此命令时 出现错误 未声明的变量 temp
  • 调整组件大小时 JPanel 闪烁

    首先 我想澄清一下 我知道这个问题已经被问过很多次了 但是 我还没有找到对我有用的答案 我正在尝试制作一款需要分辨率的游戏 因此 我开始工作 使一个组件适应另一个组件的大小 同时保持纵横比 但我遇到了一个问题 那就是对象会发生某种轻弹或调整
  • 如何在 WebdriverIO 中单击 CTRL+M (Control + M)

    我必须发出一个CTRL MWebdriverIO 中的操作 但它不起作用 我尝试过使用不同的方法 例如 browser keys Control keys m browser keys Control KeyM NULL browser k
  • 如何为 HDFS 递归列出子目录?

    我在 HDFS 中递归创建了一组目录 如何列出所有目录 对于普通的 UNIX 文件系统 我可以使用以下命令来做到这一点 find path type d print 但我想为 HDFS 得到类似的东西 递归列出目录内容hadoop dfs
  • 仅绘制 y 轴,不绘制其他内容

    我想创建一个仅显示 y 轴 包括网格 数字和标签 的图 但我不想显示绘图或 x 轴 这可以吗 创建绘图时 您只需指定一些选项 特别要注意的是axes type and xlab plot runif 10 runif 10 xlim c 0
  • 如何在java中使用gson解码json字符串?

    我有一个json字符串 社交网络Qaiku的流 我怎样才能用Java解码它 我已经搜索过 但任何结果都对我有用 谢谢 对象反序列化的标准方法如下 Gson gson new Gson MyType obj gson fromJson jso
  • 为什么删除相关行 boot() 中的行不会被触发?

    在我的 Laravel 5 7 应用程序中 我有 2 个表 Tag TagDetail 一对一关系 第二个表将图像上传到存储和图像字段 我想使用引导方法自动删除相关行和图像 结果删除与 TagDetail 相关的 Tag 行被删除 但 Ta
  • 如何返回派生类型?

    我有一个 Validator 类及其派生类 当我尝试返回指向派生类的指针时 方法返回基类 验证器 而不是派生类 class Validator public std string m name BaseValidator static co
  • 对象类和数组 - 为什么它返回“null”? [java]

    我编写了一个小类 它创建一个包含 3 个数组的报表对象 在创建对象时 这些数组用值进行初始化 然而 当我测试该类以查看例如部门数组中的内容时 它会打印出数组元素为空 为什么 class Report declare instance var
  • 更新整数列中的特定位

    我有一个 mysql 表 其中用户权限存储为位掩码 user permissions Admin 31 User 13 16 8 4 2 1 Admin gt 1 1 1 1 1 gt 16 8 4 2 1 gt 31 User gt 0
  • android中的react-native-snap-carousel上手动水平滚动的问题

    我正在使用react native snap carousel来显示横幅 它在 iOS 中的手动滚动和间隔后自动滚动都运行良好 但在 Android 中手动滚动时面临两个问题 对于某些设备 特别是三星 它会卡在第三个索引处 手动完成时 但自
  • 在 Mac 上开发 .Net 应用程序? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是 Net 开发人员 开始使用 Mac OS 我在这个系统上唯一怀念的是 VISUAL STUDIO 我不想使用两个系统 你认为如何开发 Ne
  • Impala 表中的压缩

    我想了解 Impala 表中的压缩 但找不到可供研究的材料 有哪些不同的技术以及我在哪里可以找到研究它的材料 主要技术为compaction是为了避免small file problem这取决于您的用例 例如 您可能有一个将小文件写入的进程
  • 函数式 GUI 编程可能吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近发现了 FP bug 试图学习 Haskell 到目前为止所看到的东西给我留下了深刻的印象 一流的函数 惰性求值和所有其他好处 我还不是专
  • Jfrog CLI 不尊重配置的 API 密钥

    我正在使用 Powershell DSC 设置 Windows Server 2012 R2 盒子 作为配置过程的一部分 我将配置 jfrog exe 并作为服务帐户执行配置命令 jfrog rt config url localArtif
  • 读取 WCF 消息正文两次 - “消息无法读取”

    我有一个 WCF 消息 Channels Message 我正在尝试使用 GetBody 提取正文 但是 我注意到我只能执行一次 如果我尝试再次使用 GetBody 我会收到 此消息无法支持该操作 因为它已被读取 知道如何重新阅读邮件正文吗
  • F# 有异步验证库吗?

    我在代码中经常使用 asyncResult 但它会在第一个错误时退出 asyncResult let a allGood let b thisReturnsError let c neverExecuted 但有时我想执行所有函数并总结错误
  • 具有多个条件的 SqlAlchemy 案例

    我正在尝试做这样的事情 x db session query Candidate func count case Jobs interview type PHONE SCREEN and Jobs interview type INCLIN
  • 补丁优先级及其对 Criminsi 基于范例的修复的影响

    我正在尝试实现基于示例的修复 如提议的Criminsi http research microsoft com pubs 67276 criminisi tip2004 pdf等等人 以其原始格式 在进行进一步优化之前 我有一些理论上的疑问