From 0436f6a7caac71fc119c6e70a8b0cd1a8fe1f9d7 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Fri, 16 Nov 2018 19:33:59 +0000 Subject: [PATCH] Added template and created some return value for ocr. --- aoiOcr.py | 25 +++++++----- Ocr.py | 37 ++++++++++++++++++ 2 files changed, 50 insertions(+), 12 deletions(-) diff --git a/Ocr.py b/Ocr.py index 970fb70..f680669 100644 --- a/Ocr.py +++ b/Ocr.py @@ -10,9 +10,10 @@ self.filename = filename self.invalid = None self.QRData = None - self.settings = settings + self.settings={'answer_treshold':0.25,} if settings is None else settings self.errors = [] self.warnings = [] + self.sid=None self.sid_classifier = sid_classifier if filename is not None: self.loadImage(filename) @@ -228,3 +229,37 @@ sid_mask ) return es + + + def get_code_data(self): + qrdata = bytes.decode(self.QRData, 'utf8') + if self.QRDecode[0].type=='EAN13': + return {'exam_id': int(qrdata[0:7]), + 'page_no': int(qrdata[7]), + 'paper_id': int(qrdata[-5:-1]), + 'faculty_id': None, + 'sid': None + } + else: + data=qrdata.split(',') + retval={'exam_id': int(data[1]), + 'page_no': int(data[3]), + 'paper_id':int(data[2]), + 'faculty_id':int(data[0]), + } + if(len(data)>4): + retval['sid']=data[4] + + return retval + + def get_paper_ocr_data(self): + data=self.get_code_data() + data['qr']=self.QRData + data['errors']=self.errors + data['warnings']=self.warnings + data['up_position']=(list(self.xMarkerLocations[1]/self.imgWidth), list(self.yMarkerLocations[1]/self.imgHeight)) + data['right_position']=(list(self.xMarkerLocations[1]/self.imgWidth), list(self.yMarkerLocations[1]/self.imgHeight)) + data['ans_matrix']=((np.array(self.answerMatrix)>self.settings['answer_treshold'])*1).tolist() + if data['sid'] is None: + data['sid']=self.get_enhanced_sid() + return data diff --git a/aoiOcr.py b/aoiOcr.py index 5a27df0..74e4fdb 100644 --- a/aoiOcr.py +++ b/aoiOcr.py @@ -2,18 +2,21 @@ from sklearn.externals import joblib -settings={'sid_mask':'11xx0xxx',} -classifier = joblib.load('filename.joblib') +settings = {"sid_mask": "11xx0xxx", "answer_treshold": 0.25} +classifier = joblib.load("filename.joblib") -#p=Paper(filename='testpage300dpi_scan1.png') +#p = Paper(filename="testpage300dpi_scan1.png") p=Paper(filename='sizif111.tif', sid_classifier=classifier, settings=settings) -#p=Paper(filename='processed_scans/20141016095134535_0028.tif') +# p=Paper(filename='processed_scans/20141016095134535_0028.tif') -print(p.QRData) -print(p.errors) +# print(p.QRData) +# print(p.errors) -print(p.getSkewAngle()) -print(p.locateUpMarkers()) -print(p.locateRightMarkers()) -print(p.answerMatrix) -p.get_enhanced_sid() +# print(p.getSkewAngle()) +# print(p.locateUpMarkers()) +# print(p.locateRightMarkers()) +# print(p.answerMatrix) +# p.get_enhanced_sid() + + +print(p.get_paper_ocr_data()) -- Gitblit v1.9.3