图像修复
Inpaint是一个C++库,提供图像修复和图像补全方法的实现。图像修复是一种恢复或修复图像区域的过程,对于不知道原始图像的观察者来说,这种修复是不可察觉的。
虽然修复指的是恢复较小的区域,如划痕和其他视频缺陷,但图像补全则处理大面积图像部分的移除/恢复。
Inpaint专注于物体移除任务,因此针对大面积重建进行了优化。下面是两幅图像的并排视图。左侧为原始图像,右侧为用户选择移除绳索后,由Inpaint生成的修改后的图像。
原图 | 修复后 |
---|---|
从源代码构建
要从源代码构建Inpaint,您需要以下先决条件:
尽管Inpaint应该可以在多个平台和架构上构建,但测试是在以下系统上进行的:
- Windows 7/8/10 MSVC10/MSVC14 x86/x64 OpenCV 2.x/3.x
如果构建在特定平台上失败,请随时创建问题。我也很乐意接受任何拉取请求。
图像修复
构建完成后,您可能想尝试使用inpaint_image_criminisi
- 运行
inpaint_image_criminisi <图像>
。 - 使用用户界面顶部的滑块调整补丁和模板大小。补丁大小指的是修复过程中使用的纹素大小。它应该大致等于您打算修复的最小纹理特征尺寸。模板大小指的是以下两个步骤中解释的交互式绘图工具的半径。
- 按住鼠标左键并移动鼠标,标记要修复的目标区域。
- 按住鼠标右键并移动鼠标,标记可以复制样本到目标区域的源区域。如果跳过此步骤,整个图像(不包括源区域)将被用作源区域。
- 按
e
键在编辑/修复模式之间切换。 - 按
x
键退出。
许可证
Copyright Christoph Heindl 2014-2017
Inpaint是自由软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发或修改它,
可以选择使用许可证的第3版,或(由您选择)任何更新的版本。
Inpaint的发布是希望它能够有用,但不提供任何保证;甚至不提供对适销性或特定用途适用性的暗示保证。
有关更多详细信息,请参阅GNU通用公共许可证。
您应该已经收到了与Inpaint一起提供的GNU通用公共许可证的副本。如果没有,请参阅<http://www.gnu.org/licenses/>。