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

使用OpenCV v4.5.x增强彩色图像凸显文本以适配OCR识别

OpenCV 4.5.x 图像预处理方案(适配OCR识别)

针对非黑背景、模糊白色文本,以及中间白色竖线干扰的问题,以下是一套直接可用的预处理流程,完全基于OpenCV 4.5.x实现:

核心步骤拆解

1. 灰度转换

先将彩色图像转为灰度图,减少计算量,聚焦文本与背景的亮度差异:

import cv2 as cv
import numpy as np

# 读取目标图像
img = cv.imread("your_image_path.jpg")
# 转为灰度图
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

2. 消除模糊(锐化文本)

针对略模糊的文本,用非锐化掩模增强边缘清晰度,比单纯高斯模糊更适合文本类图像:

# 生成模糊版灰度图作为掩模
blurred = cv.GaussianBlur(gray, (5, 5), 0)
# 原图与模糊图加权叠加,实现锐化
unsharp = cv.addWeighted(gray, 1.5, blurred, -0.5, 0)

参数说明:1.5是原图权重,-0.5是模糊图权重,可根据模糊程度微调(模糊越重,原图权重可适当提高)。

3. 最大化对比度+背景转黑

用自适应高斯阈值处理,能根据局部区域的亮度自动调整阈值,完美解决非均匀背景的问题,直接将背景压为黑色,文本保留白色:

# 自适应阈值处理,反转结果实现黑底白字
thresh = cv.adaptiveThreshold(
    unsharp, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY_INV, 11, 2
)

参数说明:11是局部区域大小(奇数),2是阈值调整量,可根据文本大小微调。

4. 去除白色竖线干扰

利用形态学开运算,先腐蚀掉细竖线,再膨胀恢复文本的原有形状:

# 创建垂直方向的结构元素(匹配竖线的宽度和长度)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 5))
# 开运算去除竖线
cleaned = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel, iterations=1)

如果竖线更粗,可将结构元素的高度调整为7或9;若仍有零星噪声,可追加中值滤波:

cleaned = cv.medianBlur(cleaned, 3)

完整运行代码

将上述步骤整合,直接运行即可得到适合OCR的预处理图像:

import cv2 as cv
import numpy as np

def preprocess_for_ocr(image_path):
    # 读取图像
    img = cv.imread(image_path)
    if img is None:
        raise ValueError("无法读取图像,请检查路径")
    
    # 灰度转换
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    
    # 锐化去模糊
    blurred = cv.GaussianBlur(gray, (5, 5), 0)
    unsharp = cv.addWeighted(gray, 1.5, blurred, -0.5, 0)
    
    # 自适应阈值转黑底白字
    thresh = cv.adaptiveThreshold(
        unsharp, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY_INV, 11, 2
    )
    
    # 去除竖线干扰
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 5))
    cleaned = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel, iterations=1)
    
    # 可选:去除零星噪声
    cleaned = cv.medianBlur(cleaned, 3)
    
    return cleaned

# 使用示例
processed_img = preprocess_for_ocr("sample.jpg")
# 保存预处理后的图像
cv.imwrite("ocr_ready.jpg", processed_img)

内容的提问来源于stack exchange,提问作者steve

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:07:02