Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import cv2
- import numpy as np
- ####### training part ###############
- samples = np.loadtxt('generalsamples.data',np.float32)
- responses = np.loadtxt('generalresponses.data',np.float32)
- responses = responses.reshape((responses.size,1))
- model = cv2.KNearest()
- model.train(samples,responses)
- ############################# testing part #########################
- im = cv2.imread('pi.png')
- out = np.zeros(im.shape,np.uint8)
- gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
- thresh = cv2.adaptiveThreshold(gray,255,1,1,11,2)
- contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
- 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,255,0),2)
- roi = thresh[y:y+h,x:x+w]
- roismall = cv2.resize(roi,(10,10))
- roismall = roismall.reshape((1,100))
- roismall = np.float32(roismall)
- retval, results, neigh_resp, dists = model.find_nearest(roismall, k = 1)
- string = str(int((results[0][0])))
- cv2.putText(out,string,(x,y+h),0,1,(0,255,0))
- cv2.imshow('im',im)
- cv2.imshow('out',out)
- cv2.waitKey(0)
- im = cv2.imread('/home/kris/Рабочий стол/IwQY6.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)
Add Comment
Please, Sign In to add comment