目录
一、总述 4
二、提取遮挡物 5
1、图片一中栏杆位置的提取 6
2、图片二中栏杆位置的提取 11
三、FFM 算法修复图片一 16
1、权重的计算 18
2、快速查找最佳修复点 18
3、算法流程 19
4、修复结果 21
四、criminisi 算法修复图片二 23
1、修复优先级 24
2、寻找最佳匹配 26
3、算法流程 26
4、结果 27
五、criminisi 算法优化 28
六、结果 31
1、FFM 算法修复图片一 31
2、FFM 算法修复图片二 32
3、criminisi 算法和 FFM 算法修复图片二 33
七、总结 35
八、参考资料 36
一、总述
本次大作业要求将图片前景的黑色栏杆去除,恢复遮挡部分。要求修改的图片有两张,第一张图片的前景栏杆较窄,第二张图片的前景栏杆大部分较窄,有一根栏杆较粗。
(原图片一和图片二)
为了去除遮挡部分,首先需要找到遮挡部分的位置,即 mask,这一步使用一系列图像处理的方法来完成。
针对第一张图片,由于遮挡物较窄,我使用了 Fast Marching Method 算法来实现去遮挡,该算法运算较快,对窄遮挡物去除效果较好,但对宽遮挡物(宽度大于 15 像素)进行修复时会出现模糊现象(Telea, 2004)。
因此,针对第二张图片的宽栏杆部分,我使用了 criminisi 算法来进 行修复,该算法运算较慢,但对宽遮挡物修复效果极佳(Criminisi, Perez, &
Toyama, 2003)。
此外,我对 criminisi 算法做了一点改动,大大提高了它的运算速度,同时保证修复质量。
为了便于可执行文件的使用,我制作简单的 UI 界面。
去遮挡算法难以用矩阵运算实现,只能使用 for 循环,因此运算速度整体较慢。为了减少运算时间,我缩小了图片尺寸。