繁体   English   中英

OpenCV:如何在不降低质量的情况下清除身份证图像背景

[英]OpenCV : How to clear Image Background of ID Card without losing quality

我想在不降低质量的情况下清除 ID 的图像背景,只保留白色背景的文本

使用以下代码效率不高,会产生高噪声和失真

 img = cv2.imread(imge)

# Convert into grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# define range of black color in HSV
lower_val = np.array([0,0,0])
upper_val = np.array([179,255,135])

# Threshold the HSV image to get only black colors
mask = cv2.inRange(hsv, lower_val, upper_val)

# invert mask to get black symbols on white background
mask_inv1 = cv2.bitwise_not(mask)

mask_inv = cv2.blur(mask_inv1,(5,5))

如何使用这些图像实现干净的背景

样品

在此处输入图像描述

在此处输入图像描述

Output

在此处输入图像描述 在此处输入图像描述

使用Rembg得到完美的 output 如下

Rembg是一款用于去除图像背景的离线工具。 您可以在 python 中使用 pip 简单地安装 Rembg package

pip install rembg

之后,

rembg i path/to/input.png path/to/output.png

输出1

输出2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM