我有一个非常具体的场景文本检测和解析问题。我甚至不确定你是否能说这是一个真实的场景文本。
我从一张身份证照片中提取了一个姓名字段:
我可以立即开始在图像上应用一些OCR,但我相信还可以应用进一步的文本本地化。为了实现这一形象:
你知道任何这样的文本本地化算法吗?我已经试过“FASText by Busta”、“EAST by argman”,他们工作得很得体。有关于这个特定任务的算法吗?
在文本本地化之后,我认为现在是应用OCR的最佳时机。现在我感到迷茫了。您推荐使用哪一种?我已经试过“Tesseract”了,但效果不太好。使用Tensorflow为文档字符制作自己的OCR是否更好?
发布于 2018-05-29 13:26:03
试着增加图像的对比度。您可以使用:
import matplotlib.pyplot as plt
import cv2
import numpy as np
def cvt_BGR2RGB(img):
return cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
def contrast(img,show=False):
# CLAHE (Contrast Limited Adaptive Histogram Equalization)
clahe=cv2.createCLAHE(clipLimit=3., tileGridSize=(8,8))
lab=cv2.cvtColor(img, cv2.COLOR_BGR2LAB) # convert from BGR to LAB color space
l,a,b=cv2.split(lab) # split on 3 different channels
l2=clahe.apply(l) # apply CLAHE to the L-channel
lab=cv2.merge((l2,a,b)) # merge channels
img2=cv2.cvtColor(lab, cv2.COLOR_LAB2BGR) # convert from LAB to BGR
if show:
#plot the original and contrasted image
f=plt.figure(figsize=(15,15))
ax1=f.add_subplot(121)
img1_cvt=cvt_BGR2RGB(img)
plt.imshow(img1_cvt)
ax2=f.add_subplot(122)
img2_cvt=cvt_BGR2RGB(img2)
plt.imshow(img2_cvt)
plt.show()
return img,img2
也许那时你可以使用pyteserract
https://stackoverflow.com/questions/50565610
复制相似问题