引言
这两天看了Learn OpenCV 上关于图像修复(Image Inpainting)的相关文章,图像修复可能听起来是一项很难的技术,实际上确实如此。
有时相片上出现了划痕,我们第一时间可能想到的修复方式可能就是PS,然而利用Opencv写几十行代码就可以轻松的修复简单的划痕。
图像修复是什么
图像修复时计算机视觉中一种利用某种算法填充图像或者视频内的区域的方法,我们用二进制mask标识要修复的区域,并用其周边区域的信息完成修复。
修复的算法
文章中介绍了两种算法
cv2.INPAINT_NS: 基于Navier-Stokes的修复
如果你学过流体力学,NS方程一定是你绕不开的一个方程。
它极难寻找解析解,因此我们通常要进行一些假设消去某些项。
例如我们会做出流体不可压的假设,有时会忽略流体的黏性等等。
具体如何把牛顿流体与图像降噪进行类比,可以参考论文:
NS
我们来看图像与牛顿流体的类比
论文中提到了该类比表,其中将图像灰度类比为流函数,图像的等照度线(等灰度线?)类比为流体的流速(流函数的梯度),光滑度类比为流体旋涡,各向异性的散射类比为流体黏性。
论文在最后证明了利用NS方程进行图像降噪方法的解