You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV INPAINT_NS图像修复方法产生异常伪影问题咨询

OpenCV INPAINT_NS图像修复方法产生异常伪影问题咨询

我在做项目的时候尝试用OpenCV提出的图像修复方法,结果有点出乎意料,尤其是NS(INPAINT_NS)这个方法——它在蒙版区域的中间生成了奇怪的线条。

我看到有论文是这么描述这个方法的:

在用户选择未知区域后,算法首先沿着从已知区域到未知区域的边缘遍历,自动把信息传输到修复区域。它利用了等照度线(也就是图中那些连接光强度或亮度相同点的线条)。填充的时候,会让到达未知区域边界的等照度线在内部延续,以此实现信息向未知区域中心的平滑过渡。

为了轻松复现这些伪影,我特意做了一张测试图,里面是旋转渐变圆的阵列,还有旋转的蒙版条:

  • 测试阵列图像
  • 测试蒙版图像

之后我用这段代码做了修复:

import numpy as np
import cv2 as cv2
image = cv2.imread('testing_array.png', cv2.IMREAD_GRAYSCALE)
mask = cv2.imread('testing_mask.png', cv2.IMREAD_GRAYSCALE)
dst = cv2.inpaint(image,mask,2,cv2.INPAINT_NS)
cv2.imwrite("testing_output.png",dst)

看修复结果就很奇怪:当渐变是垂直方向的时候,修复质量特别好,但只要渐变方向一改变,效果就垮得特别快。可按照论文里的描述,这个方法应该能处理非严格垂直的渐变才对。

修复输出图像

我现在搞不清楚,这种情况是这个方法本身的预期表现,还是我得去排查是不是实现层面出了问题?

使用的版本信息:

  • Python: 3.13.1
  • OpenCV: 4.11.9

备注:内容来源于stack exchange,提问作者Ben Banks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:17:58