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

如何去除含文字图像的重影背景以优化文字提取效果

带重影干扰的图像文字提取优化方案

现有流程仅做全局亮度、对比度调整加全局Otsu阈值分割,对偏移浅重影的过滤能力不足,很容易把淡色鬼影误判为文本前景,以下是可直接落地的优化方案,按实现成本从低到高排列,叠加使用可得到干净的文本二值结果。

基线参考

输入样本

重影干扰原始输入图

现有流程输出(残留重影噪声)

当前方法处理结果

现有实现代码

enhancer = ImageEnhance.Brightness(img)
img = enhancer.enhance(1.62)  # 原参考值1.8
enhancer2 = ImageEnhance.Contrast(img)
img = enhancer2.enhance(1.8)  # 原参考值2
img = np.array(img)
thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

优化步骤

1. 预处理替换全局亮度对比度调整,用形态学操作提取真实笔画

重影的本质是偏移的淡墨痕,和真实文本相比灰度更浅、笔画更细,用匹配真实笔画宽度的形态学核做黑帽操作,可以直接把真实文本笔画从背景里分离,过滤大部分浅重影:

import cv2
import numpy as np
from PIL import ImageEnhance

# 先转灰度图
gray = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2GRAY)
# 核大小匹配文本笔画宽度,常规印刷/扫描文本取3-5即可
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
# 黑帽操作提取暗部前景
blackhat = cv2.morphologyEx(gray, cv2.MORPH_BLACKHAT, kernel)

2. 替换全局Otsu阈值为自适应局部阈值

全局Otsu基于全图灰度分布计算分割阈值,对局部淡重影、光照不均的适配性差,改用高斯加权的自适应局部阈值,仅按局部窗口的灰度特征判定前景,可避免把局部淡重影误判为文本:

thresh = cv2.adaptiveThreshold(
    blackhat, 255,
    cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
    cv2.THRESH_BINARY,
    blockSize=15, # 窗口大小需大于单字笔画宽度,必须为奇数
    C=8 # 阈值偏移量,数值越大对浅噪声的过滤越强
)

3. 后处理增加连通域噪声过滤

阈值处理后残留的少量重影残片,面积远小于真实字符笔画,通过连通域检测直接过滤小面积噪声块即可:

n, labels, stats, _ = cv2.connectedComponentsWithStats(thresh, connectivity=8)
clean_result = np.zeros_like(thresh)
for idx in range(1, n):
    area = stats[idx, cv2.CC_STAT_AREA]
    # 面积阈值根据图像分辨率、文本字号调整,小于阈值的块判定为噪声丢弃
    if area > 5:
        clean_result[labels == idx] = 255

4. 固定偏移重影可增加对齐减影步骤

如果整批图像的重影方向、偏移量固定(比如扫描进纸偏移导致的规则重影),可将原图按偏移量平移后和原图做差,直接抵消重影部分:

# 示例:重影相对真实文本向右下偏移2像素
shifted_img = np.roll(np.roll(gray, 2, axis=0), 2, axis=1)
diff_img = cv2.subtract(gray, shifted_img)
# 对差值图做后续阈值处理即可完全消除固定重影

参数调整注意事项

  • 形态学核大小、自适应阈值窗口参数和图像DPI、文本字号强相关,先取1-2张样本调试到最优值,同设备采集的整批图像可通用参数
  • 不要过度拉高亮度、对比度参数,否则会削掉真实文本的细笔画,反而降低后续OCR识别准确率

内容的提问来源于stack exchange,提问作者isaac.af95

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:24:29