我有一个非常具体的场景文本检测和解析问题。我甚至不确定你是否可以说它是一个真正的场景文本。
我可以立即开始在该图像上应用一些OCR,但我相信可以应用进一步的文本本地化。要实现此图像: 您是否知道任何此类文本定位算法?我已经尝试过Busta &#39; <#39; EAST by argman &#39;&#39; EAST他们工作得体。关于此特定任务的任何算法?
在文本本地化后,我认为现在是应用OCR的最佳时机。现在我感到迷茫。 您建议使用哪种OCR?我已经尝试过Tesseract&#39;但它只是运作不好。是否更好的想法是使用例如文件字符为文档字符制作自己的OCR。 Tensorflow吗
答案 0 :(得分:1)
尝试增加图像的对比度。您可以使用:
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