上传者: nuoyanli
|
上传时间: 2021-01-17 20:08:03
|
文件大小: 686B
|
文件类型: PY
基本思路: 微分方程求解,**用邻近的像素替换那些坏标记,使其看起来像是邻居** 。
假设图像里的一个区域要修复。算法从这个区域的边界开始,逐渐地进入区域,把边界内的所有东西填充上。它取要修复的部分周围的一个像素周围的一小片邻居。这个像素被周围已知的像素的标准加权和替换掉。选择权重是很重要的。要修复的点周围像素的权重较高。和正常边界近的,还有在边界轮廓上的像素的权重较高。当像素被修复以后,它会通过快速匹配方法($FMM$)移动到最近的像素。$FMM$保证那些已知像素周围的像素首先被修复,所以这个就像人工启发式的操作一样。
$OpenCV$提供了两种算法。两者都可以通过相同的函数访问,$cv2.inpaint()$。
第一种算法基于$Alexandru Telea$于2004年发表的“基于快速行进方法的图像修复技术”。它基于快速行进方法。考虑图像中要修复的区域。算法从该区域的边界开始,然后进入区域内,逐渐填充边界中的所有内容。它需要在邻近的像素周围的一个小邻域进行修复。该像素由邻居中所有已知像素的归一化加权和代替。选择权重是一个重要的问题。对于靠近该点的那些像素,靠近边界的法线和位