commit 08c0a99e81744a130725213759ea815f15bb07e6
parent d48b63598a57cd0348b26436a6a34afba64b1fc8
Author: Marcel <MTRNord@users.noreply.github.com>
Date: Fri, 7 Oct 2016 22:37:37 +0200
First version of script (see resources list)
Diffstat:
| M | code/main.py | | | 44 | ++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 44 insertions(+), 0 deletions(-)
diff --git a/code/main.py b/code/main.py
@@ -1 +1,45 @@
+############## Code from: http://stackoverflow.com/questions/9413216/simple-digit-recognition-ocr-in-opencv-python #################
+import sys
+import numpy as np
+import cv2
+
+im = cv2.imread('pitrain.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)>50:
+ [x,y,w,h] = cv2.boundingRect(cnt)
+
+ if h>28:
+ 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)
+ key = cv2.waitKey(0)
+
+ if key == 27: # (escape to quit)
+ sys.exit()
+ elif key in keys:
+ responses.append(int(chr(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)