我正在尝试在OpenCV-Python(cv2)中实现"数字识别OCR".它仅用于学习目的.我想在OpenCV中学习KNearest和SVM功能.
我有每个数字的100个样本(即图像).我想和他们一起训练.
letter_recog.pyOpenCV示例附带了一个示例.但我仍然无法弄清楚如何使用它.我不明白什么是样本,响应等.另外,它首先加载一个txt文件,我首先不明白.
稍后搜索一下,我可以在cpp示例中找到一个letter_recognition.data.我使用它并在letter_recog.py模型中为cv2.KNearest创建了一个代码(仅用于测试):
import numpy as np
import cv2
fn = 'letter-recognition.data'
a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') })
samples, responses = a[:,1:], a[:,0]
model = cv2.KNearest()
retval = model.train(samples,responses)
retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10)
print results.ravel()
它给了我一个20000的数组,我不明白它是什么.
问题:
1)letter_recognition.data文件是什么?如何从我自己的数据集构建该文件?
2)什么results.reval()表示?
3)我们如何使用letter_recognition.data文件(KNearest或SVM)编写简单的数字识别工具?
我想从图像中提取希伯来语文本。
\n\n我尝试过使用 pytesseract,但它会混淆一些字母(例如 ' 而不是 \xd7\x99 或 \xd7\xa0 而不是 \xd7\x9b)
\n\n我尝试对图像进行一些操作(例如调整大小、消除噪声和二值化),这有一点帮助,但仍然出现很多错误。
\n\n我花了几个小时寻找更好的文本提取工具但找不到。
\n\n所以这是我的问题:
\n\nA) 有没有我可以使用但我可能错过的工具?
\n\nB) 如果没有,创建我自己的步骤是什么?
\n\n预先感谢\nAmichai
\n有人知道python/ruby中的库可以分析图像并提取文本吗?
或者一本关于图像处理的书......
PS:文本采用varius字体和格式,但清晰,Tl; Dr:No captcha或类似.