图像或者说图片经常被噪声腐蚀,或者说是旧照片的划痕。
图像修复技术简单来说,就是利用那些被破坏区域的边缘,即是边缘的颜色和结构,繁殖和混合到损坏的图像中,来进行修复图像。下面的OpenCV代码主要做的是将图像中的字迹进行消除的效果。
如果图像损坏的区域不是太大,修复效果可以达到很好的效果。毕竟修复的能力是有限的。
inpaint函数
在OpenCV中,图像修补技术由inpaint函数实现,用来从扫描图像中清除灰尘和划痕,或者从静态图像或视频中去除不需要的物体。
函数声明如下:
void inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags)
第一个参数,InputArray类型的src,也就是输入图像,用Mat类对象就可以了。并且要是8位单通道或者三通道图像。
第二个参数,InputArray类型的inpaintMask,修复掩膜,为8位单通道图像。其中非0像素表示要修复的区域。
第三个参数,OutputArray类型的dst,函数调用后的运算结果保存在这里,和输入图像有着一样的大小和类型。
第四个参数,double类型的inpaintRadius,需要修补的每个点的圆形邻域,为修复算法参考的半径。
第五个参数ÿ