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

如何通过图像预处理优化模糊图像的EasyOCR文本识别结果

优化模糊图像的EasyOCR文本识别方案

针对模糊图像导致EasyOCR识别不准确的问题,可通过以下图像预处理方法和参数调整来提升识别精度:

一、核心图像预处理方法

1. 锐化增强文本边缘

通过拉普拉斯算子强化字符边缘,让模糊的文本轮廓更清晰:

def sharpen_image(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    laplacian = cv2.Laplacian(gray, cv2.CV_64F)
    sharpened = gray - 0.3 * laplacian
    # 确保像素值在0-255范围内
    sharpened = np.uint8(np.clip(sharpened, 0, 255))
    return sharpened

2. 自适应阈值二值化

针对模糊图像的光照不均问题,自适应阈值能精准分离文本与背景:

def adaptive_threshold(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
                                  cv2.THRESH_BINARY_INV, 11, 2)
    return thresh

3. 非局部均值去噪

去除模糊带来的噪声干扰,同时保留文本细节:

def denoise_image(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    denoised = cv2.fastNlMeansDenoising(gray, h=10)
    return denoised

二、整合后的完整运行代码

将预处理步骤串联,并修正原代码中未定义stretch的错误:

import cv2
import numpy as np
import easyocr

# 初始化EasyOCR阅读器(支持英文、韩文)
reader = easyocr.Reader(['en','ko'])

# 组合预处理流程
def preprocess_image(img):
    # 转为灰度图
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 去噪
    denoised = cv2.fastNlMeansDenoising(gray, h=10)
    # 锐化
    laplacian = cv2.Laplacian(denoised, cv2.CV_64F)
    sharpened = denoised - 0.3 * laplacian
    sharpened = np.uint8(np.clip(sharpened, 0, 255))
    # 自适应二值化
    thresh = cv2.adaptiveThreshold(sharpened, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
                                  cv2.THRESH_BINARY_INV, 11, 2)
    return thresh

# 读取输入图像
img = cv2.imread('/content/image (2).png')
# 执行预处理
processed_img = preprocess_image(img)
# 文本识别
response = reader.readtext(processed_img)
# 提取并拼接识别结果
text = " ".join([r[1] for r in response])
print(text)

三、额外优化技巧

  • 调整EasyOCR识别参数:在readtext中加入contrast_ths=0.3(过滤低对比度区域)、adjust_contrast=0.5(自动调整对比度)等参数,进一步适配模糊图像。
  • 图像放大:若原图像分辨率偏低,可先用cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)放大图像,再执行预处理和识别。
  • 尝试预处理组合:根据实际图像效果调整预处理顺序,比如先锐化再去噪,或替换为双边滤波cv2.bilateralFilter实现更柔和的去噪效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:45:19