OCR-字体颜色与背景颜色区分不明显的调研

需解决的问题

对于一些图片,字体和颜色区分度不高(白色字体的图片进行图像增强时容易使字体更加),模型识别时存在漏检现象,图像增强后有些文字将会变得不清晰甚至消失。

76824bc413c347468b6e31e3cc0b4830.png

f380e8a92ede4e1abeb759bd71e302b4.png

 解决的方法——图像的二值化

以下使用了七种方法进行测试

Python代码:

import cv2

thresh_value = 127

img = cv2.imread(r'C:\Users\Ruidada\Desktop\color\mix.png',0)
method = [cv2.THRESH_BINARY,cv2.THRESH_BINARY_INV,cv2.THRESH_TRUNC,cv2.THRESH_TOZERO,cv2.THRESH_TOZERO_INV]

images = []
for i in range(len(method)):
    ret, thresh = cv2.threshold(img, thresh_value, 255, method[i])
    cv2.imwrite(r'C:\Users\Ruidada\Desktop\color\%d.jpg'%(i),thresh)
# 下面两图结果差不多,比上面结果好很多(除了第四种)
ret,result = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.imwrite(r'C:\Users\Ruidada\Desktop\color\9.1.jpg',result)
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (1, 1))
result = cv2.dilate(result, kernel)
result = cv2.dilate(result, kernel)

cv2.imwrite(r'C:\Users\Ruidada\Desktop\color\9.2.jpg',result)

原图

二值化后:

从七个结果反馈可以看出第四种方法效果是最好的,几乎没有出现内容缺失或是不清晰的情况,最后两个方法效果差一些,存在内容缺失的情况,但是字体更加的明显。

后续的一些猜想改进:或可以将原本是白色字体的转化成黑色字体,这样或许进行图像增强将不会出现内容不清晰或是缺失的现象,二值化后字体或许能更加的清晰(还得继续......)。 

猜你喜欢

转载自blog.csdn.net/Rick_rui/article/details/127782292