需解决的问题
对于一些图片,字体和颜色区分度不高(白色字体的图片进行图像增强时容易使字体更加),模型识别时存在漏检现象,图像增强后有些文字将会变得不清晰甚至消失。
解决的方法——图像的二值化
以下使用了七种方法进行测试
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)
原图
二值化后:
从七个结果反馈可以看出第四种方法效果是最好的,几乎没有出现内容缺失或是不清晰的情况,最后两个方法效果差一些,存在内容缺失的情况,但是字体更加的明显。
后续的一些猜想改进:或可以将原本是白色字体的转化成黑色字体,这样或许进行图像增强将不会出现内容不清晰或是缺失的现象,二值化后字体或许能更加的清晰(还得继续......)。