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

如何用OpenCV在去除收据阴影后清理背景并保留字符信息

收据图像去噪与文本提取优化需求

我已用Python代码实现收据图像的阴影去除,但因膨胀(dilation)和中值模糊(medianBlur)操作,字符周围仍存在噪声。尝试过阈值化处理,却会丢失部分字符信息。现寻求能清理背景同时保留字符完整性与清晰度的算法,以实现有效的文本提取。

现有阴影去除代码

import cv2
import pytesseract
import sys
import numpy as np


sys.stdout.reconfigure(encoding='utf-8')
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

imRGB = cv2.imread(r'D:\Senior-project\images\028.jpg')


split_color_channels = cv2.split(imRGB)
print(split_color_channels)

color_channels_result = []
color_norm_channels_result = []

for color_channel in split_color_channels:

    img_dilation = cv2.dilate(color_channel, np.ones((7,7), np.uint8))

    blur_img = cv2.medianBlur(img_dilation, 21)

    diff_img = 255 - cv2.absdiff(color_channel, blur_img)

    norm_img = cv2.normalize(diff_img,None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX)
    
    color_channels_result.append(diff_img)
    color_norm_channels_result.append(norm_img)
result = cv2.merge(color_channels_result)
result_norm = cv2.merge(color_norm_channels_result)
print(result_norm.shape)


cv2.imwrite(r'image.jpg', result_norm)

image = cv2.imread(r'D:\1204314 - Computer Vision and Image Processing\Week1\Lab0101\image.jpg')
print(image.shape)

图像对比

原始图像

原始收据图像

阴影去除后图像

阴影去除后的收据图像


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:20:08