如何用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
相关产品推荐
相关产品推荐

