我的问题是关于构建一个检测图像内部数字的简单程序,我做了一些研究,并在堆栈上发现了这个主题Simple OCR digits,我发现它非常有教育意义,所以我想根据自己的需要来使用它。
我的训练数据图像如下:
我用来构建数据集的代码是:(我对Abid Rahman的代码进行了一些修改,以便它可以解决我的问题)
{
"fault": {
"faultstring": "Invalid API call as no apiproduct match found",
"detail": {
"errorcode": "keymanagement.service.InvalidAPICallAsNoApiProductMatchFound"
}
}
}
我使用相同的训练数据图像作为测试部分,以获得最佳的结果准确度,看看我是否正确的方式:
import sys
import numpy as np
import cv2
im = cv2.imread('data_set_trans.png')
im3 = im.copy()
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(5,5),0)
thresh = cv2.adaptiveThreshold(blur,255,1,1,11,2)
################# Now finding Contours ###################
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
samples = np.empty((0,100))
responses = []
keys = [i for i in range(48,58)]
for cnt in contours:
if cv2.contourArea(cnt)>20:
[x,y,w,h] = cv2.boundingRect(cnt)
if h>=10:
cv2.rectangle(im,(x,y),(x+w,y+h),(0,0,255),2)
roi = thresh[y:y+h,x:x+w]
roismall = cv2.resize(roi,(10,10))
cv2.imshow('norm',im)
print "Begin wait"
key = cv2.waitKey(1)
key = raw_input('What is the number ?') #cv2.waitKey didnt work for me so i add this line
if key == -1: # (-1 to quit)
sys.exit()
else:
responses.append(int(key))
sample = roismall.reshape((1,100))
samples = np.append(samples,sample,0)
responses = np.array(responses,np.float32)
responses = responses.reshape((responses.size,1))
print "training complete"
np.savetxt('generalsamples.data',samples)
np.savetxt('generalresponses.data',responses)
结果如下:
你可以看到它完全错了。
我不知道我错过了什么,或者我的情况是否更加特殊,并且无法通过这个数字OCR系统处理????
如果有人可以通过任何想法帮助我
我注意到我使用的是python 2.7 open-cv 2.4.11 numpy 1.9和mac os 10.10.4
由于
答案 0 :(得分:2)
我找到了正确的方法,它只需要更多自定义代码。
检测计数之前的相同过程:
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(5,5),0)
thresh = cv2.adaptiveThreshold(blur,255,1,1,11,2)
不
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
thresh = cv2.adaptiveThreshold(gray,255,1,1,11,2)
和
cv2.rectangle(im,(x,y),(x+w,y+h),(0,0,255),2)
不
cv2.rectangle(im,(x,y),(x+w,y+h),(0,255,0),2)
我得到99%的准确率,良好的开始百分比
无论如何,谢谢你