计算机视觉
图像处理

OpenCV的图像修复

图像修复是图像复原中的一个重要内容,其目的是利用图像现有的信息来恢复丢失的信息。可用于 旧照片中丢失信息的恢复,视频文字去除以及视频错误隐藏等。简言之,图像修复就是对图像上信息缺损区域进行信息填充的过程,其目的就是为了对有信息缺损的 图像进行复原,并且使得观察者无法察觉到图像曾经缺损或者已经修复。

目前存在两大类图像修复技术:一类是用于修复小尺度缺损的数字图像修补(inpainting)技 术。即,利用待修补区域的边缘信息,同时采用一种由粗到精的方法来估计等照度线的方向,并采用传播机制将信息传播到待修补的区域内,以便达到较好的修补效 果;另外一类是用于填充图像大块丢失信息的图像补全技术。目前,这一技术分为以下两种方法:一种是基于图像分解的修复方法,其主要思想是将图像分解为结构 部分和纹理部分。其中,结构部分用inpainting的 技术来修复,而纹理部分则采用纹理合成的方法来填充。另一种方法是用基于块的纹理合成技术来填充丢失的信息,其主要思想是:首先从待修补区域的边界上选取 一个像素点,同时以该点为中心,根据图像的纹理特征,选择大小合适的纹理块,然后在待修补区域的周围寻找与之最相近的纹理匹配块来替代该纹理块。近几年 来,利用纹理合成来修复大块丢失信息的图像合成技术得到了相当的研究,也取得了一定的成果。需要提醒的是,图像修复技术是一种对视觉感知过程的学习和理 解。它是一个不确定问题,没有唯一解的存在,解的合理性取决于视觉系统的接受程度。换言之,为了达到较好的视觉效果,我们必须让修复效果更加符合视觉感知 的特性,使得图像看起来浑然一体,没有修改过的痕迹。

按照适用范围的不同,图像修复算法可 以范围三类:平缓区域的修复算法、结构性区域的修复算法、纹理区域的修复算法。基于结构的修复算法对小范围的损坏有较好的效果,但当区域较大时,往往会产 生一定程度的模糊。且受限于该方法的初始条件,不能对纹理图像进行修复。相比而言,基于结构的修复算法是通过信息扩散进行修复,是一种基于点的分析;而基 于纹理的修复方法则追求图像块与图像块之间的相似性,是一种基于块的分析方法。基于结构的修复方法在处理时,只利用待修复区域的外环信息;而基于纹理的修 复方法在处理时,进行全图搜索以找到最匹配的块,因而信息利用更为充分,从而可以处理较大区域的修复。

 

Opencv中有图像修复的函数,其算法参考文献为Alexandru Telea 于2004年发表于Journal of Graphic Tools上的“An Image Inpainting Technique Based On

the Fast Marching Method”。

该算法的原理如下:

最后,发两张该算法的处理效果,其中,左侧图片为存在待修复区域的图片,右侧为修复后的结果:

转载注明来源:CV视觉网 » OpenCV的图像修复

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

0不错 0超赞 0无聊 0扯淡 0不解 0路过

评论 4

评论前必须登录!