def form_4i(): # define former former = omrlib.Former() # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=20, detect_mark_horizon_window=20, detect_mark_step_length=5, detect_mark_max_stepnum=100) # define image clip setting former.set_clip(do_clip=True, clip_left=0, clip_right=0, clip_top=330, clip_bottom=650) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path=local_path + 'omrimage4/', substr_list='I318' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=6, col_number=31, valid_area_row_start=1, valid_area_row_end=5, valid_area_col_start=3, valid_area_col_end=30, location_row_no=6, location_col_no=31) # define code cluster, contianing many areas # _group: (min_no, max_no), _coord: (left_col, top_row) cluster_group = [(1 + 5 * j, 5 + 5 * j) for j in range(5)] cluster_coord = [(1, 3 + 6 * j) for j in range(5)] for gno, loc in zip(cluster_group, cluster_coord): former.set_area( area_group=gno, # area group from min=a to max=b (a, b) area_coord=loc, # area location left_top = (row, col) area_direction= 'v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) return former
def form_22(): # define former former = omrlib.Former() # define image file former.get_file_list( path=local_path + 'omrimage2/', substr_list='OMR01.jpg' # assign substr in filename+pathstr ) # define mark location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=6, col_number=31, valid_area_row_start=1, valid_area_row_end=5, valid_area_col_start=1, valid_area_col_end=30, location_row_no=6, location_col_no=31) # define cluster # _group: (min_no, max_no), _coord: (left_col, top_row) cluster_group = [(1, 5), (6, 10), (11, 15), (16, 20), (21, 25)] cluster_coord = [(1, 2), (1, 8), (1, 14), (1, 20), (1, 26)] for gno, loc in zip(cluster_group, cluster_coord): former.set_area( area_group=gno, # area group from min=a to max=b (a, b) area_coord=loc, # area location left_top = (row, col) area_direction= 'v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define image clip setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=20, detect_mark_horizon_window=20, detect_mark_step_length=5, detect_mark_max_stepnum=100) return former
def form_497(): former = omrlib.Former() # clip image setting # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/497/726121/', substr_list='jpg') # check mark setting former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=45, col_number=38, valid_area_row_start=12, valid_area_row_end=44, valid_area_col_start=2, valid_area_col_end=38, location_row_no=45, location_col_no=1) # define area former.set_area( area_group=(1, 15), # area group from min=a to max=b (a, b) area_coord=(12, 24), # area location left_top = (row, col) area_direction='h', # area direction V:top to bottom, H:left to right group_direction='v', # group direction from left to right group_code='0123456789', # group code set for encoding group_mode='D' # 'M':multi_choice, 'S':single_choice ) # define cluster # group for each area: (min_no, max_no) cluster_group = [(101 + j * 5, 105 + j * 5) for j in range(6)] # location for each area: (left_col, top_row) cluster_coord = [(39, 4 + j * 6) for j in range(6)] for group_scope, loc_coord in zip(cluster_group, cluster_coord): former.set_area( area_group=group_scope, # area group from min=a to max=b (a, b) area_coord=loc_coord, # area location left_top = (row, col) area_direction= 'v', # area direction V:top to bottom, H:left to right group_direction='h', # group direction from left to right group_code='ABCD', # group code set for encoding group_mode='S' if loc_coord[1] < 28 else 'M' # 'M':multi_choice, 'S':single_choice ) return former
def form_201(): former = omrlib.Former() # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/201/783240/', substr_list='jpg') # check mark setting former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=55, col_number=38, valid_area_row_start=1, valid_area_row_end=54, valid_area_col_start=4, valid_area_col_end=38, location_row_no=55, location_col_no=1) # define area former.set_area( area_group=(1, 15), # area group from min=a to max=b (a, b) area_coord=(14, 24), # area location left_top = (row, col) area_direction='h', # area direction V:top to bottom, H:left to right group_direction='v', # group direction from left to right group_code='0123456789', # group code set for encoding group_mode='D' # 'M':multi_choice, 'S':single_choice ) # define cluster # group for each area: (min_no, max_no) cluster_group = [(101 + i * 10, 110 + i * 10) for i in range(4)] + [(141, 145)] # location for each area: (left_col, top_row) cluster_coord = [(44, 4), (44, 10), (44, 18), (44, 24), (44, 31)] for group_scope, loc_coord in zip(cluster_group, cluster_coord): former.set_area( area_group=group_scope, # area group from min=a to max=b (a, b) area_coord=loc_coord, # area location left_top = (row, col) area_direction= 'v', # area direction V:top to bottom, H:left to right group_direction='h', # group direction from left to right group_code='ABCD' if loc_coord[1] < 31 else 'ABCDEFG', # group code set for encoding group_mode='S' # 'M':multi_choice, 'S':single_choice ) return former
def form_109(): former = omrlib.Former() # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/109/', substr_list='jpg') # check mark setting former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=61, col_number=38, valid_area_row_start=2, valid_area_row_end=61, valid_area_col_start=4, valid_area_col_end=38, location_row_no=61, location_col_no=1) # define group_area, including mulit_groups former.set_area( area_group=(1, 15), # group no from a to b (a, b) area_coord=(14, 24), # group_area left_top_location = (row, col) area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D' # if <bool> else 'M' ) # define cluster_area_group_code # group no list: (min_no, max_no) cluster_area_group = [(101 + 5 * n, 105 + 5 * n) for n in range(11)] # area lt_corner: (left_col, top_row) cluster_area_coord = [] # 4 clusters for i in range(4): # 3 areas cluster_area_coord += [(43, 5 + i * 9)] cluster_area_coord += [(49, 5 + i * 9)] if i < 3: cluster_area_coord += [(55, 5 + i * 9)] for group_scope, loc_coord in zip(cluster_area_group, cluster_area_coord): former.set_area( area_group=group_scope, area_coord=loc_coord, area_direction='v', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCDE', # group code for painting point group_mode='S' # if group_min2max[0] in range(, ) else 'M','D' ) return former
def form_1(): # define former former = omrlib.Former() # define image file former.get_file_list( path=local_path + 'omrimage1/', substr_list='jpg' # assign substr in filename+pathstr ) # define mark location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=14, col_number=37, valid_area_row_start=1, valid_area_row_end=10, valid_area_col_start=23, valid_area_col_end=36, location_row_no=14, location_col_no=37) # define area former.set_area( area_group=(1, 14), # area group from min=a to max=b (a, b) area_coord=(1, 23), # area location left_top = (row, col) area_direction='h', # area direction V:top to bottom, H:left to right group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting block group_mode='D' # group mode 'M': multi_choice, 'S': single_choice ) # define image clip setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=20, detect_mark_horizon_window=20, detect_mark_step_length=5, detect_mark_max_stepnum=100) return former
def form_101(): former = omrlib.Former() # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/101/783240/', substr_list='jpg') # check mark setting former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=50, col_number=38, valid_area_row_start=2, valid_area_row_end=50, valid_area_col_start=2, valid_area_col_end=38, location_row_no=1, location_col_no=1) # define group_area, including mulit_groups former.set_area( area_group=(1, 15), # group no from a to b (a, b) area_coord=(12, 24), # group_area left_top_location = (row, col) area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D' # if <bool> else 'M' ) # define cluster_area_group_code # group no list: (min_no, max_no) cluster_area_group = [(101, 106), (107, 112), (113, 118), (119, 124), (125, 130), (131, 133)] # area lt_corner: (left_col, top_row) cluster_area_coord = [(42, 4 + i * 6) for i in range(6)] for group_scope, loc_coord in zip(cluster_area_group, cluster_area_coord): former.set_area( area_group=group_scope, area_coord=loc_coord, area_direction='v', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCD', # group code for painting point group_mode='S' if group_scope[0] < 113 else 'M' # if group_min2max[0] in range(, ) else 'M','D' ) return former
def form_414_omr01(): former = omrlib.Former() # clip image setting # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/414', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) for f in former.form['image_file_list']: if 'Omr02' in f: former.form['image_file_list'].remove(f) former.set_mark_format(row_number=45, col_number=38, valid_area_row_start=12, valid_area_row_end=44, valid_area_col_start=2, valid_area_col_end=38, location_row_no=45, location_col_no=1) # define group_area, including mulit_groups former.set_area( area_group=(1, 15), area_coord=(12, 24), area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D') # define area_cluster, including multi group_areas cluster_area_group = [(101 + i * 3, 103 + i * 3) for i in range(5)] # group no: (min, max) cluster_area_coord = [(41, 5 + i * 7) for i in range(5) ] # area coord: (left col no, top row no) for group_min2max, area_coord in zip(cluster_area_group, cluster_area_coord): former.set_area( area_group=(group_min2max[0], group_min2max[1]), area_coord=area_coord, area_direction='v', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCD' # group code for painting point ) return former
def form_204(): former = omrlib.Former() # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/204/', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=55, col_number=38, valid_area_row_start=13, valid_area_row_end=53, valid_area_col_start=4, valid_area_col_end=38, location_row_no=55, location_col_no=1) former.set_area(area_group=(1, 15), area_coord=(14, 24), area_direction='h', group_direction='V', group_code='0123456789', group_mode='D') for i, col in enumerate([4, 10, 18, 24]): former.set_area(area_group=(101 + i * 10, 110 + i * 10), area_coord=(44, col), area_direction='v', group_direction='h', group_code='ABCD') former.set_area(area_group=(156, 160), area_coord=(44, 31), area_direction='v', group_direction='h', group_code='ABCDEFG') return former
def form_408(): former = omrlib.Former() # clip image setting # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/408', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=50, col_number=38, valid_area_row_start=12, valid_area_row_end=49, valid_area_col_start=7, valid_area_col_end=38, location_row_no=50, location_col_no=1) # define group_area, including mulit_groups former.set_area( area_group=(1, 15), area_coord=(12, 24), area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D') # define area_cluster, including multi group_areas cluster_area_group = [(101 + i * 10, 110 + i * 10) for i in range(4)] # group no: (min, max) cluster_area_coord = [(39, 7 + i * 8) for i in range(4) ] # area coord: (left col no, top row no) for group_min2max, area_coord in zip(cluster_area_group, cluster_area_coord): former.set_area( area_group=group_min2max, area_coord=area_coord, area_direction='v', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCD', # group code for painting point group_mode='S') return former
def form_314(): former = omrlib.Former() # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/314/723084/', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=44, col_number=26, valid_area_row_start=13, valid_area_row_end=43, valid_area_col_start=2, valid_area_col_end=26, location_row_no=44, location_col_no=1) # define a group_area for mulit_groups former.set_area( area_group=(1, 15), area_coord=(13, 12), area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D') # define some group_areas (define multi group_area) g_area_lefttop_coord = [(41, 4), (42, 4)] g_area_no_min_max = [(101, 104), (105, 108)] for coord, gno in zip(g_area_lefttop_coord, g_area_no_min_max): # group: group_no = gno[0] to gno[1], left_top = coord former.set_area( area_group=(gno[0], gno[1]), area_coord=coord, area_direction='h', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCD' # group code for painting point ) return former
def form_315(): former = omrlib.Former() # clip image setting # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/315/738111/', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=56, col_number=26, valid_area_row_start=2, valid_area_row_end=55, valid_area_col_start=2, valid_area_col_end=26, location_row_no=1, location_col_no=1) # define a group_area for mulit_groups former.set_area( area_group=(1, 15), area_coord=(13, 12), area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D') # define area_cluster: many group_areas g_area_lefttop_coord = [(44, 5), (44, 13), (44, 21)] g_area_no_min_max = [(101, 110), (111, 120), (121, 130)] for coord, gno in zip(g_area_lefttop_coord, g_area_no_min_max): # group: group_no = gno[0] to gno[1], left_top = coord former.set_area( area_group=(gno[0], gno[1]), area_coord=coord, area_direction='v', # area from top down to bottom group_direction='h', # group direction from left to right group_code='ABCD' # group code for painting point ) return former
def form_397(): former = omrlib.Former() # clip image setting # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.get_file_list(path='d:/work/data/y18/397', substr_list='jpg') former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=45, col_number=38, valid_area_row_start=12, valid_area_row_end=44, valid_area_col_start=2, valid_area_col_end=38, location_row_no=45, location_col_no=1) # define group_area, including mulit_groups former.set_area( area_group=(1, 15), area_coord=(12, 24), area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D') # define area_cluster, including multi group_areas cluster_area_group = [(101 + i * 5, 105 + i * 5) for i in range(6)] cluster_area_coord = [(39, 4 + i * 6) for i in range(6)] for group_min2max, area_coord in zip(cluster_area_group, cluster_area_coord): # group: group_no = g[0] to g[1], area left_top = coord former.set_area( area_group=(group_min2max[0], group_min2max[1]), area_coord=area_coord, area_direction='v', # area from top down to bottom group_direction='h', group_code='ABCD', # group code for painting point group_mode='S' if group_min2max[0] < 121 else 'M') return former
def form_21(): former = omrlib.Former() former.get_file_list(path=local_path + 'omrimage2/', substr_list='omr01.jpg') # clip image setting former.set_clip(do_clip=True, clip_left=0, clip_right=35, clip_top=0, clip_bottom=90) former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) former.set_mark_format(row_number=11, col_number=20, valid_area_row_start=1, valid_area_row_end=10, valid_area_col_start=1, valid_area_col_end=19, location_row_no=11, location_col_no=20) # define area_cluster, including multi group_areas # group2 = {i + j * 5: [(i, 2 + j * 6), 4, 'H', 'ABCD', 'S'] for i in range(1, 6) cluster_area_group = [(1, 19)] # group no list: (min, max) cluster_area_coord = [(1, 1)] for group_min2max, area_coord in zip(cluster_area_group, cluster_area_coord): former.set_area( area_group=group_min2max, area_coord=area_coord, area_direction='h', # area from top down to bottom group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting point group_mode='D' # if group_min2max[0] in range(, ) else 'M' ) return former
def form_203(): former = omrlib.Former() former.get_file_list(path='d:/work/data/y18/203/', substr_list='jpg') # clip image setting former.set_clip(do_clip=False, clip_left=0, clip_right=0, clip_top=0, clip_bottom=0) former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(False) former.set_mark_format(row_number=51, col_number=38, valid_area_row_start=13, valid_area_row_end=50, valid_area_col_start=5, valid_area_col_end=38, location_row_no=51, location_col_no=1) former.set_area(area_group=(1, 15), area_coord=(13, 24), area_direction='h', group_direction='V', group_code='0123456789', group_mode='D') col_pos = [5, 14, 23, 32] for no, col in enumerate(col_pos): former.set_area(area_group=(101 + 10 * no, 110 + 10 * no), area_coord=(40, col), area_direction='v', group_direction='h', group_code='ABCD', group_mode='S') return former
def form_0(): # define former former = omrlib.Former() # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=15, detect_mark_horizon_window=12, detect_mark_step_length=5, detect_mark_max_stepnum=20) # define image clip setting former.set_clip(do_clip=True, clip_left=0, clip_right=0, clip_top=150, clip_bottom=0) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path=local_path + 'omrimage0/', substr_list='jpg' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=11, col_number=31, valid_area_row_start=1, valid_area_row_end=10, valid_area_col_start=1, valid_area_col_end=30, location_row_no=11, location_col_no=31) # define cluster former.set_cluster( cluster_group_list=[(1 + j * 5, 5 + j * 5) for j in range(5) ], # group scope (min_no, max_no) per area cluster_coord_list=[(1, 3 + 6 * j) for j in range(5)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster former.set_cluster( cluster_group_list=[(26 + j * 5, 30 + j * 5) for j in range(5) ], # group scope (min_no, max_no) per area cluster_coord_list=[(6, 3 + 6 * j) for j in range(5)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define score_dict # {group:{code:score,}} former.set_score(do_score=True, score_dict={ 1: { 'D': 1.5, 'A': 2, 'C': 0.5 }, 2: { 'A': 3 }, 3: { 'B': 1 }, 4: { 'B': 2 }, 5: { 'C': 1 } }) return former
def form_6(): # define former former = omrlib.Former() # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=20, detect_mark_horizon_window=20, detect_mark_step_length=5, detect_mark_max_stepnum=100) # define image clip setting former.set_clip(do_clip=True, clip_left=0, clip_right=20, clip_top=330, clip_bottom=0) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path=local_path + 'omrimage6/', substr_list='S86' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=40, col_number=26, valid_area_row_start=1, valid_area_row_end=39, valid_area_col_start=1, valid_area_col_end=25, location_row_no=40, location_col_no=26) # define cluster1 former.set_cluster( cluster_group_list=[(1 + 5 * j, 5 + 5 * j) for j in range(4) ], # group scope (min_no, max_no) per area cluster_coord_list=[(2, 3 + 6 * j) for j in range(4)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='M' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster2 former.set_cluster( cluster_group_list=[(21 + 5 * j, 25 + 5 * j) for j in range(4) ], # group scope (min_no, max_no) per area cluster_coord_list=[(7, 3 + 6 * j) for j in range(4)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='M' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster3 former.set_cluster( cluster_group_list=[(41 + 5 * j, 45 + 5 * j) for j in range(4) ], # group scope (min_no, max_no) per area cluster_coord_list=[(12, 3 + 6 * j) for j in range(4)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='M' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster4 former.set_cluster( cluster_group_list=[(61 + 5 * j, 65 + 5 * j) for j in range(4) ], # group scope (min_no, max_no) per area cluster_coord_list=[(17, 3 + 6 * j) for j in range(4)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster5 former.set_cluster( cluster_group_list=[(81, 84)], # group scope (min_no, max_no) per area cluster_coord_list=[(22, 3)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster6 former.set_cluster( cluster_group_list=[(85 + 5 * j, 89 + 5 * j) for j in range(4) ], # group scope (min_no, max_no) per area cluster_coord_list=[(26, 3 + 6 * j) for j in range(4)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster7 former.set_cluster( cluster_group_list=[(105, 108) ], # group scope (min_no, max_no) per area cluster_coord_list=[(31, 3)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster8 former.set_cluster( cluster_group_list=[(109 + 5 * j, 113 + 5 * j) for j in range(2) ], # group scope (min_no, max_no) per area cluster_coord_list=[(35, 3 + 9 * j) for j in range(2)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='M' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster9 former.set_cluster( cluster_group_list=[(119, 120) ], # group scope (min_no, max_no) per area cluster_coord_list=[(35, 21)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCDE', # group code for painting block group_mode='M' # group mode 'M': multi_choice, 'S': single_choice ) # define score_dict # {group:{code:score,}} former.set_score(do_score=True, score_dict={ 1: { 'A': 1 }, 2: { 'c': 1 }, 3: { 'D': 1 }, 4: { 'e': 1 }, 5: { 'c': 1 }, 6: { 'A': 1 }, 7: { 'B': 1 }, 8: { 'e': 1 }, 9: { 'D': 1 }, 10: { 'e': 10 }, }) return former
def form_7(): # define former former = omrlib.Former() # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=15, detect_mark_horizon_window=12, detect_mark_step_length=5, detect_mark_max_stepnum=20) # define image clip setting former.set_clip(do_clip=True, clip_left=0, clip_right=0, clip_top=130, clip_bottom=0) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path='d:/study/dataset/omrimage7/', substr_list='jpg' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=16, col_number=31, valid_area_row_start=1, valid_area_row_end=15, valid_area_col_start=1, valid_area_col_end=30, location_row_no=16, location_col_no=31) # define cluster1 former.set_cluster( cluster_group_list=[(1 + j * 5, 5 + j * 5) for j in range(5) ], # group scope (min_no, max_no) per area cluster_coord_list=[(1, 3 + j * 6) for j in range(5)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster2 former.set_cluster( cluster_group_list=[(26 + j * 5, 30 + j * 5) for j in range(5) ], # group scope (min_no, max_no) per area cluster_coord_list=[(6, 3 + j * 6) for j in range(5)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define cluster3 former.set_cluster( cluster_group_list=[(51, 55)], # group scope (min_no, max_no) per area cluster_coord_list=[(11, 3)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define code area, containing many groups former.set_area( area_group=(56, 60), # area group from min=a to max=b (a, b) area_coord=(11, 9), # area location left_top = (row, col) area_direction='v', # area direction V:top to bottom, H:left to right group_direction='h', # group direction from left to right group_code='ABCDEFGH', # group code for painting block group_mode= 'D' # group mode 'M': multi_choice, 'S': single_choice, 'D':digit ) # define score_dict # {group:{code:score,}} former.set_score(do_score=False, score_dict={ 1: { 'A': 1 }, 2: { 'A': 1 }, 3: { 'A': 1 }, 4: { 'A': 1 }, 5: { 'A': 1 } }) return former
def form_ws_dell(): # define former former = openomr.Former() # define model parameters former.set_model_para( valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=15, detect_mark_horizon_window=12, detect_mark_step_length=5, detect_mark_max_stepnum=20 ) # define image clip setting former.set_clip( do_clip=True, clip_left=0, clip_right=720, clip_top=300, clip_bottom=530 ) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path='d:/work/data/g17/ws/', substr_list='jpg' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format( row_number=6, col_number=26, valid_area_row_start=1, valid_area_row_end=5, valid_area_col_start=1, valid_area_col_end=25, location_row_no=6, location_col_no=26 ) # define cluster former.set_cluster( cluster_group_list=[(1, 5), (6, 10)], # group scope (min_no, max_no) per area cluster_coord_list=[(1, 3), (1, 9)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction='h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define score_dict # {group:{code:score,}} former.set_score( do_score=False, score_dict={ 1: {'A': 1}, 2: {'B': 1}, 3: {'C': 1}, 4: {'D': 1}, 5: {'A': 2}, } ) return former
def form_8(): # define former former = omrlib.Former() # define model parameters former.set_model_para(valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=15, detect_mark_horizon_window=12, detect_mark_step_length=5, detect_mark_max_stepnum=20) # define image clip setting ''' former.set_clip( do_clip=True, clip_left=60, clip_right=800, clip_top=330, clip_bottom=630 ) ''' former.set_clip_box(do_clip=True, clip_box_left=45, clip_box_right=850, clip_box_top=330, clip_box_bottom=500) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path=local_path + '/omrimage8', # 'd:/study/dataset/omrimage8/', substr_list='_01' # assign substr in path to filter ) # define mark format: row/column number, valid area, location former.set_mark_format(row_number=6, col_number=31, valid_area_row_start=1, valid_area_row_end=5, valid_area_col_start=3, valid_area_col_end=30, location_row_no=6, location_col_no=31) # define cluster former.set_cluster( cluster_group_list=[(1, 5), (6, 10), (11, 12)], # group scope (min_no, max_no) per area cluster_coord_list=[(1, 3 + 6 * j) for j in range(3)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction= 'h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define score_dict # {group:{code:score,}} former.set_score(do_score=False, score_dict={ 1: { 'A': 1 }, 2: { 'A': 1 }, 3: { 'A': 1 }, 4: { 'A': 1 }, 5: { 'A': 1 }, 6: { 'A': 1 }, 7: { 'A': 1 }, 8: { 'A': 1 }, 9: { 'A': 1 }, 10: { 'A': 1 } }) return former
def form_xxx(): # define former former = openomr.Former() # define model parameters former.set_model_para( valid_painting_gray_threshold=35, valid_peak_min_width=3, valid_peak_min_max_width_ratio=5, detect_mark_vertical_window=15, detect_mark_horizon_window=12, detect_mark_step_length=5, detect_mark_max_stepnum=20 ) # define image clip setting # left_top_coner: left(x, column), top(y, row), # right_bottom_coner: right(x, column), bottom(y, row) former.set_clip_box( do_clip=True, clip_box_left=0, clip_box_top=300, clip_box_right=760, clip_box_bottom=490 ) # define location for checking mark former.set_check_mark_from_bottom(True) former.set_check_mark_from_right(True) # define image files list former.get_file_list( path='f:/studies/data/data/wss/', substr_list='jpg' # assign substr in path to filter ) # define mark format: row/column number[1-n], valid area[1-n], location[1-n] former.set_mark_format( row_number=6, col_number=26, valid_area_row_start=1, valid_area_row_end=5, valid_area_col_start=1, valid_area_col_end=25, location_row_no=6, location_col_no=26 ) # define code area, containing many groups former.set_area( area_group=(1, 15), # area group from min=a to max=b (a, b) area_coord=(10, 20), # area location left_top = (row, col) area_direction='h', # area direction V:top to bottom, H:left to right group_direction='v', # group direction from left to right group_code='0123456789', # group code for painting block group_mode='D' # group mode 'M': multi_choice, 'S': single_choice, 'D':digit ) # define cluster former.set_cluster( cluster_group_list=[(100, 105), (106, 110)], # group scope (min_no, max_no) per area cluster_coord_list=[(1, 3), (1, 9)], # left_top coord per area area_direction='v', # area direction V:top to bottom, H:left to right group_direction='h', # group direction 'V','v': up to down, 'H','h': left to right group_code='ABCD', # group code for painting block group_mode='S' # group mode 'M': multi_choice, 'S': single_choice ) # define score_dict # {group:{code:score,}} former.set_score( do_score=False, score_dict={ 1: {'A': 1}, 2: {'A': 1}, 3: {'A': 1}, 4: {'A': 1}, 5: {'A': 1}, } ) return former