如何将图片中不想要的部分P掉

以前一直不知道那些玩PS的人是如何将图片中不想要的部分P掉的。偶尔遇到这种需求的时候,我都是手工选中并复制需要抹掉的部分周围的区域,然后粘贴覆盖要抹掉的区域,不断重复这个过程直到不想要的部分全部被覆盖;最后为了避免粘贴的像素和四周形成明显的交界,我会使用虚化或喷漆之类的工具涂抹交界区域,尽量使被抹掉的区域和四周的区域融合在一起。这种方法在处理背景比较简单(比如接近纯色且没什么花纹)的图片时还能凑合用,但只要背景稍微有点复杂就不能胜任了,因为无法让粘贴的像素和四周区域自然融合;而且这种方法费时费力,有时候还要一个像素一个像素地操作,直觉上感觉就不是正确的方法,至少不是最佳实践。

前段时间偶然在一节Photoshop课程上得知了一个方法,就是Photoshop的内容识别填充功能(Content Aware Fill)。只要用选择工具将想要去掉的部分圈中,然后点几下鼠标就可以将不想要的部分P掉了。

GIMP也有类似的功能。在菜单栏中的 工具 -> 涂画工具 中有一个GIMP自带的“复原”(Heal)工具,在工具栏上是一个止血贴图标:

这个工具的使用方法是,点击选择这个工具之后,将笔刷大小调整为能够覆盖图片中想抹掉的那部分的尺寸;然后按住Ctrl(在Mac上即是Command)键,鼠标指针就会变成一个十字准星;这时在想抹掉的那部分区域附近的背景中点击选取一个区域。之后复原工具就会用选取区域中的像素来覆盖我们想抹掉的那部分区域。比如我想抹掉下图中的火焰,就按住Ctrl(或Command)在火焰附近选取一个区域。

然后点击想抹掉的那块区域,火焰就被抹掉了。

这个工具的用法本质上和我以前的复制粘贴法同理,只不过它会自动处理粘贴的像素和周围区域之间的融合问题。但它仍需要用户手动选择所要复制的像素,不如Photoshop的内容识别填充那么智能。

不过借助一个第三方插件Resynthesizer,GIMP也可以变得像Photoshop那么方便。但是这个插件的安装却不是那么方便。插件的github主页上只提供了Linux上的构建方法,并且源码包里的构建脚本在运行时还要依赖GNOME。要想在Windows或Mac上使用这个插件的话一般只能使用第三方已经集成好的安装包。在Mac上的话,可以使用GIMP on OS X项目提供的已经集成了Resynthesizer的GIMP版本,而且这个版本还集成了一些其它有用的插件。不过这个网站提供的GIMP版本有一个问题是对非英文字符支持得并不好,编辑图片时使用的文字工具无法输入也无法粘贴非英文字符。(写这篇文章的时候GIMP on OS X的最新版本是2.8.18。)

在装有Resynthesizer的GIMP中,我们可以用选择工具选中希望抹掉的区域。比如我想抹掉下图里的路牌,就用自由选择工具(即套索,Lasso)圈住路牌。

然后点击菜单栏里的 滤镜(Filters) -> 增强(Enhance) -> Heal selection…,GIMP就会弹出一个对话框,让用户设置一个半径值。Resynthesizer会利用选取区域外的这个半径内的像素覆盖选区内的像素。

点击OK后,等待Resynthesizer运算一段时间,选中的区域就被抹掉了。

不过实际上有时候并不能一次就达到理想的效果,可以看到抹除区域和四周之间还是有比较明显的分界线:

我又使用了GIMP自带的复原(Heal)工具结合Resynthesizer进行了多次修补,并调节了一下Resynthesizer的Heal selection的半径参数,效果才逐渐好起来。

所以Resynthesizer也不能完全取代GIMP自带的复原工具。不过不管怎样,GIMP自带的复原(Heal)工具和Resynthesizer结合使用,比起我以前用的纯手工复制粘贴法,效率和效果都好多了。

关于Resynthesizer可参考这篇文章:Getting Around in GIMP – Heal Selection (Resynthesizer)

除了Resynthesizer还可以使用G’MIC的Repair -> Inpaint [patch-based]功能。G’MIC也作为插件被集成到了GIMP on OS X中。它比Resynthesizer有更多可调的参数:

另外和Resynthesizer不同的是,G’MIC需要用户先用某种颜色(即上图中的Mask color参数)覆盖想抹掉的区域,因为它只会处理Mask color所标记的像素。

关于G’MIC可参考这篇文章:Getting Around in GIMP – G’MIC Inpainting (Content Aware Fill)

发表评论

电子邮件地址不会被公开。 必填项已用*标注