From 5460bf601a854c842342a740df0f6d36ad785bbc Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 21 Nov 2018 21:12:48 +0000 Subject: [PATCH] Some extra editing --- aoi_ocr/__pycache__/Ocr.cpython-36.pyc | 0 aoiOcr.py | 47 ++++++++++++----------- aoi_ocr/__pycache__/sid_process.cpython-36.pyc | 0 aoi_ocr/sid_process.py | 17 ++++---- .idea/sonarIssues.xml | 35 +++++++++++++++++ 5 files changed, 69 insertions(+), 30 deletions(-) diff --git a/.idea/sonarIssues.xml b/.idea/sonarIssues.xml index 58cb300..937f57f 100644 --- a/.idea/sonarIssues.xml +++ b/.idea/sonarIssues.xml @@ -18,7 +18,32 @@ <set /> </value> </entry> + <entry key="$USER_HOME$/PycharmProjects/berki-parse/aoi_gen/Problem.py"> + <value> + <set /> + </value> + </entry> + <entry key="$USER_HOME$/PycharmProjects/berki-parse/aoi_gen/Variable.py"> + <value> + <set /> + </value> + </entry> + <entry key="$USER_HOME$/PycharmProjects/berki-parse/testcases/dvovod3.txt"> + <value> + <set /> + </value> + </entry> + <entry key="$USER_HOME$/PycharmProjects/berki-parse/testcases/silaCurka1.txt"> + <value> + <set /> + </value> + </entry> <entry key="$PROJECT_DIR$/../../django/sizif-web/aoi/MainDocker/Dockerfile"> + <value> + <set /> + </value> + </entry> + <entry key="$PROJECT_DIR$/../../django/sizif-web/aoi/README.md"> <value> <set /> </value> @@ -38,6 +63,16 @@ <set /> </value> </entry> + <entry key="$PROJECT_DIR$/../../django/sizif-web/aoi/exam/templates/exam/exam_detail.html"> + <value> + <set /> + </value> + </entry> + <entry key="$PROJECT_DIR$/../../django/sizif-web/aoi/exam/templates/exam/exam_new.html"> + <value> + <set /> + </value> + </entry> <entry key="$PROJECT_DIR$/../../django/sizif-web/aoi/exam/templates/exam/postprocess.html"> <value> <set /> diff --git a/aoiOcr.py b/aoiOcr.py index eff067f..2986f9a 100644 --- a/aoiOcr.py +++ b/aoiOcr.py @@ -1,19 +1,20 @@ from aoi_ocr.Ocr import Paper from sklearn.externals import joblib import pkg_resources -path = '/filename.joblib' # always use slash -filepath = pkg_resources.resource_filename('aoi_ocr', path) + +path = "/filename.joblib" # always use slash +filepath = pkg_resources.resource_filename("aoi_ocr", path) from glob import glob settings = {"sid_mask": "11x0xxxx", "answer_threshold": 0.25} classifier = joblib.load(filepath) -#p = Paper(filename="testpage300dpi_scan1.png") -#p=Paper(filename='sizif111.tif', sid_classifier=classifier, settings={"sid_mask": "11xx0xxx", "answer_threshold": 0.25}) -#p=Paper(filename='processed_scans/20141016095134535_0006.tif', sid_classifier=classifier, settings=settings) -#p = Paper(filename="processed_scans/20151111080408825_0001.tif",sid_classifier=classifier,settings=settings,) -#p=Paper(filename='processed_scans/20151028145444607_0028.tif', sid_classifier=classifier, settings=settings) +# p = Paper(filename="testpage300dpi_scan1.png") +# p=Paper(filename='sizif111.tif', sid_classifier=classifier, settings={"sid_mask": "11xx0xxx", "answer_threshold": 0.25}) +# p=Paper(filename='processed_scans/20141016095134535_0006.tif', sid_classifier=classifier, settings=settings) +# p = Paper(filename="processed_scans/20151111080408825_0001.tif",sid_classifier=classifier,settings=settings,) +# p=Paper(filename='processed_scans/20151028145444607_0028.tif', sid_classifier=classifier, settings=settings) pa = [ "processed_scans/20141016095134535_0006.tif", "processed_scans/20141016095134535_0028.tif", @@ -24,16 +25,16 @@ "processed_scans/20141028095553745_0018.tif", "processed_scans/20151013180545275_0011.tif", "processed_scans/20160408140801098_0004.tif", - "processed_scans/20160510075445995_0026.tif" + "processed_scans/20160510075445995_0026.tif", ] -#p=Paper(filename=pa[9], sid_classifier=classifier, settings=settings) -p=Paper(filename='test3.tif', sid_classifier=classifier, settings=settings) +# p=Paper(filename=pa[9], sid_classifier=classifier, settings=settings) +p = Paper(filename="test3.tif", sid_classifier=classifier, settings=settings) # print(p.QRData) # print(p.errors) # print(p.getSkewAngle()) -# print(p.locateUpMarkers()) +# print(p.locateUpMarkers())%% # print(p.locateRightMarkers()) # print(p.answerMatrix) # p.get_enhanced_sid() @@ -43,17 +44,19 @@ exit(0) filelist = glob("processed_scans/*.tif") -wrong_sid=0; -total=0 +wrong_sid = 0 +total = 0 for f in sorted(filelist): print("processing: {}".format(f)) - p=Paper(filename=f, sid_classifier=classifier, settings=settings).get_paper_ocr_data() - print(f,p) - if(p['page_no']==0): - total+=1 - if(len(p['errors'])!=0): - wrong_sid+=1 - if total%10 == 0: - print("Total:{}, wrong SID: {}".format(total,wrong_sid)) + p = Paper( + filename=f, sid_classifier=classifier, settings=settings + ).get_paper_ocr_data() + print(f, p) + if p["page_no"] == 0: + total += 1 + if len(p["errors"]) != 0: + wrong_sid += 1 + if total % 10 == 0: + print("Total:{}, wrong SID: {}".format(total, wrong_sid)) -print("Total:{}, wrong SID: {}".format(total,wrong_sid)) +print("Total:{}, wrong SID: {}".format(total, wrong_sid)) diff --git a/aoi_ocr/__pycache__/Ocr.cpython-36.pyc b/aoi_ocr/__pycache__/Ocr.cpython-36.pyc index f8fb55b..6280498 100644 --- a/aoi_ocr/__pycache__/Ocr.cpython-36.pyc +++ b/aoi_ocr/__pycache__/Ocr.cpython-36.pyc Binary files differ diff --git a/aoi_ocr/__pycache__/sid_process.cpython-36.pyc b/aoi_ocr/__pycache__/sid_process.cpython-36.pyc index 9b04616..ecbcc1c 100644 --- a/aoi_ocr/__pycache__/sid_process.cpython-36.pyc +++ b/aoi_ocr/__pycache__/sid_process.cpython-36.pyc Binary files differ diff --git a/aoi_ocr/sid_process.py b/aoi_ocr/sid_process.py index d8798f1..dac85e4 100644 --- a/aoi_ocr/sid_process.py +++ b/aoi_ocr/sid_process.py @@ -4,7 +4,7 @@ import pkg_resources -templatefile = '/template-8.png' # always use slash +templatefile = "/template-8.png" # always use slash template8 = pkg_resources.resource_filename(__name__, templatefile) @@ -15,14 +15,14 @@ return np.ones((x, y), np.uint8) -def find_biggest_blob(image, original_image,sid_mask): +def find_biggest_blob(image, original_image, sid_mask): if sid_mask[0] == "1": move_left = 35 elif sid_mask[0] == "x": move_left = 40 else: move_left = 0 - # Remove noise + # Remove noise image2 = cv2.morphologyEx( original_image, cv2.MORPH_OPEN, kernel(2, 2), iterations=3 ) @@ -40,6 +40,7 @@ image = image[y : y + h, x + 25 - move_left : x + w - 40] # +25,-25 return image + def sid_compare(sid_no, sid_mask): """ Function compares student id number with student id mask if the recognised number is valid according to the mask @@ -53,7 +54,7 @@ return True -def segment_by_contours(image, original_image, classifier,sid_mask): +def segment_by_contours(image, original_image, classifier, sid_mask): """ First algorithm. it segments numerals with contours. It works with numbers where individual numerals does not touch. :param image: @@ -63,8 +64,8 @@ """ sid_no = "" - image=find_biggest_blob(image,original_image,sid_mask) - cv2.imwrite("/tmp/sid_contour1.png",image) + image = find_biggest_blob(image, original_image, sid_mask) + cv2.imwrite("/tmp/sid_contour1.png", image) im2, ctrs, hier = cv2.findContours( image.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE ) @@ -100,7 +101,7 @@ """ sid_no = "" sid_len = len(sid_mask) - image=find_biggest_blob(image,original_image,sid_mask) + image = find_biggest_blob(image, original_image, sid_mask) cv2.imwrite("/tmp/sidblock2.png", image) imgHeight, imgWidth = image.shape[0:2] numWidth = int(imgWidth / (sid_len)) @@ -190,7 +191,7 @@ cv2.imwrite("/tmp/enSID0.png", image) # Remove noise - #image = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel(2, 2), iterations=3) + # image = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel(2, 2), iterations=3) # Closing. Connect non connected parts image = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel(5, 1), iterations=4) -- Gitblit v1.9.3