图像轮廓与图像分隔修复(9):图像修补
一,图像修补的概念认知;
二,实现图像修补:inpaint()函数;
三,综合示例程序:图像修补;
一,图像修补的概念认知
在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或者是镜头上的灰尘或水滴,或者是旧照片的划痕,或者由于图像的部分本身已经损坏。而“图像修复”( Inpainting),就是妙手回春,解决这些问题的良方。图像修复技术简单来说,就是利用那些已经被破坏区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像中,以达到图像修补的目的。图8.34~8.36就是示例程序截图,演示将图像中的字迹移除的效果。如图:
如果被破坏的区域不是太大,并且在被破坏区域边缘包含足够多的纹理和颜色,那么图像修补技术可以很好地恢复图像。当然,当图像损坏区域过大时,我们“妙手回春”的能力也是有限的。如图8.37、8.38所示。
二,实现图像修补:inpaint()函数
在新版OpenCV中,图像修补技术由 inpaint函数实现,它可以用来从扫描的照片中清除灰尘和划痕,或者从静态图像或视频中去除不需要的物体。其原型声明如下。
第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可,且需为8位单通道或者三通道图像。
第二个参数,InputArray类型的 inpaintMask,修复掩膜,为8位的单通道图像。其中的非零像素表示需要修补的区域。