我需要从一些图像中读取文本,图像清晰且噪声极低。
所以我最初的想法是,获取文本应该非常容易。 (我所知的一点)
我测试了一些python库,但没有取得很大的成功(pytesser),它们可能会获得10%的正确率。
我转向Googles tesseract-occ,但它仍然差强人意。
这是一个例子:
结果如下:
nemnamons
Ill
w_on
lhggerllo
' 59
' as
\M_P2ma\
vuu uu
Cafllode omer
Mom | Dyna
Mom | Dyna
lnggerllo
2vMnne= Tr2rspnn| Factory (Hexmy;
lalgeflll Uxzlconflg
w_o«
w_o«
cammem
我究竟做错了什么?还是OCR识别真的不好吗?
最佳答案
您将需要对图像进行预处理,例如去除噪点,以获得更好的结果。以后,您可以使用诸如pytesseract
之类的库从图像中提取文本:
def get_string(img_path):
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Remove some noise
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
cv2.imwrite("removed_noise.png", img)
# Recognize text with tesseract for python
result = pytesseract.image_to_string(Image.open("removed_noise.png"))
return result
关于python - OCR库从图像中读取文本(最好是python),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23493908/